/* ownCloud Android client application
* Copyright (C) 2011 Bartek Przybylski
- * Copyright (C) 2012-2013 ownCloud Inc.
+ * Copyright (C) 2012-2014 ownCloud Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2,
import com.owncloud.android.operations.SynchronizeFolderOperation;
import com.owncloud.android.operations.UnshareLinkOperation;
import com.owncloud.android.syncadapter.FileSyncAdapter;
-import com.owncloud.android.ui.dialog.EditNameDialog;
+import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
import com.owncloud.android.ui.dialog.SslUntrustedCertDialog;
-import com.owncloud.android.ui.dialog.EditNameDialog.EditNameDialogListener;
import com.owncloud.android.ui.dialog.SslUntrustedCertDialog.OnSslUntrustedCertListener;
import com.owncloud.android.ui.fragment.FileDetailFragment;
import com.owncloud.android.ui.fragment.FileFragment;
import com.owncloud.android.ui.preview.PreviewMediaFragment;
import com.owncloud.android.ui.preview.PreviewVideoActivity;
import com.owncloud.android.utils.DisplayUtils;
+import com.owncloud.android.utils.ErrorMessageAdapter;
import com.owncloud.android.utils.Log_OC;
*/
public class FileDisplayActivity extends HookActivity implements
-FileFragment.ContainerActivity, OnNavigationListener,
-OnSslUntrustedCertListener, EditNameDialogListener {
+FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener {
private ArrayAdapter<String> mDirectories;
mRightFragmentContainer = findViewById(R.id.right_fragment_container);
if (savedInstanceState == null) {
createMinFragments();
- } else {
- Log_OC.d(TAG, "Init the secondFragment again");
- if (mDualPane) {
- initFragmentsWithFile();
- }
}
// Action bar setup
boolean retval = true;
switch (item.getItemId()) {
case R.id.action_create_dir: {
- EditNameDialog dialog = EditNameDialog.newInstance(getString(R.string.uploader_info_dirname), "", -1, -1, this);
+ CreateFolderDialogFragment dialog =
+ CreateFolderDialogFragment.newInstance(getCurrentDir());
dialog.show(getSupportFragmentManager(), "createdirdialog");
break;
}
protected void onResume() {
super.onResume();
Log_OC.e(TAG, "onResume() start");
+
+ // refresh list of files
+ refreshListOfFilesFragment();
// Listen for sync messages
IntentFilter syncIntentFilter = new IntentFilter(FileSyncAdapter.EVENT_FULL_SYNC_START);
@Override
protected void onPause() {
- super.onPause();
Log_OC.e(TAG, "onPause() start");
if (mSyncBroadcastReceiver != null) {
unregisterReceiver(mSyncBroadcastReceiver);
unregisterReceiver(mDownloadFinishReceiver);
mDownloadFinishReceiver = null;
}
+
+
Log_OC.d(TAG, "onPause() end");
+ super.onPause();
}
Toast.LENGTH_LONG);
msg.show();
}
- ((FileDetailFragment)details).updateFileDetails(false, false);
+ if (uploadWasFine || getFile().fileExists()) {
+ ((FileDetailFragment)details).updateFileDetails(false, true);
+ } else {
+ cleanSecondFragment();
+ }
// Force the preview if the file is an image
if (uploadWasFine && PreviewImageFragment.canBePreviewed(getFile())) {
if (component.equals(new ComponentName(FileDisplayActivity.this, FileDownloader.class))) {
Log_OC.d(TAG, "Download service connected");
mDownloaderBinder = (FileDownloaderBinder) service;
- if (mWaitingToPreview != null) {
- requestForDownload();
+ if (mWaitingToPreview != null)
+ if (getStorageManager() != null) {
+ mWaitingToPreview = getStorageManager().getFileById(mWaitingToPreview.getFileId()); // update the file
+ if (!mWaitingToPreview.isDown()) {
+ requestForDownload();
+ }
}
} else if (component.equals(new ComponentName(FileDisplayActivity.this, FileUploader.class))) {
*/
private void onRemoveFileOperationFinish(RemoveFileOperation operation, RemoteOperationResult result) {
dismissLoadingDialog();
+
+ Toast msg = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
+ Toast.LENGTH_LONG);
+ msg.show();
+
if (result.isSuccess()) {
- Toast msg = Toast.makeText(this, R.string.remove_success_msg, Toast.LENGTH_LONG);
- msg.show();
OCFile removedFile = operation.getFile();
FileFragment second = getSecondFragment();
if (second != null && removedFile.equals(second.getFile())) {
+ if (second instanceof PreviewMediaFragment) {
+ ((PreviewMediaFragment)second).stopPreview(true);
+ }
+ setFile(getStorageManager().getFileById(removedFile.getParentId()));
cleanSecondFragment();
}
if (getStorageManager().getFileById(removedFile.getParentId()).equals(getCurrentDir())) {
refreshListOfFilesFragment();
}
-
+ invalidateOptionsMenu();
} else {
- Toast msg = Toast.makeText(this, R.string.remove_fail_msg, Toast.LENGTH_LONG);
- msg.show();
if (result.isSslRecoverableException()) {
mLastSslUntrustedServerResult = result;
showUntrustedCertDialog(mLastSslUntrustedServerResult);
refreshListOfFilesFragment();
} else {
dismissLoadingDialog();
- if (result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME) {
- Toast.makeText(FileDisplayActivity.this, R.string.filename_forbidden_characters, Toast.LENGTH_LONG).show();
- } else {
try {
- Toast msg = Toast.makeText(FileDisplayActivity.this, R.string.create_dir_fail_msg, Toast.LENGTH_LONG);
+ Toast msg = Toast.makeText(FileDisplayActivity.this,
+ ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
+ Toast.LENGTH_LONG);
msg.show();
} catch (NotFoundException e) {
Log_OC.e(TAG, "Error while trying to show fail message " , e);
}
- }
}
}
OCFile renamedFile = operation.getFile();
if (result.isSuccess()) {
FileFragment details = getSecondFragment();
- if (details != null && details instanceof FileDetailFragment && renamedFile.equals(details.getFile()) ) {
- ((FileDetailFragment) details).updateFileDetails(renamedFile, getAccount());
+ if (details != null) {
+ if (details instanceof FileDetailFragment && renamedFile.equals(details.getFile()) ) {
+ ((FileDetailFragment) details).updateFileDetails(renamedFile, getAccount());
+ showDetails(renamedFile);
+
+ } else if (details instanceof PreviewMediaFragment && renamedFile.equals(details.getFile())) {
+ ((PreviewMediaFragment) details).updateFile(renamedFile);
+ if (PreviewMediaFragment.canBePreviewed(renamedFile)) {
+ int position = ((PreviewMediaFragment)details).getPosition();
+ startMediaPreview(renamedFile, position, true);
+ } else {
+ getFileOperationsHelper().openFile(renamedFile);
+ }
+ }
}
+
if (getStorageManager().getFileById(renamedFile.getParentId()).equals(getCurrentDir())) {
refreshListOfFilesFragment();
}
} else {
- if (result.getCode().equals(ResultCode.INVALID_LOCAL_FILE_NAME)) {
- Toast msg = Toast.makeText(this, R.string.rename_local_fail_msg, Toast.LENGTH_LONG);
- msg.show();
- // TODO throw again the new rename dialog
- } if (result.getCode().equals(ResultCode.INVALID_CHARACTER_IN_NAME)) {
- Toast msg = Toast.makeText(this, R.string.filename_forbidden_characters, Toast.LENGTH_LONG);
- msg.show();
- } else {
- Toast msg = Toast.makeText(this, R.string.rename_server_fail_msg, Toast.LENGTH_LONG);
- msg.show();
- if (result.isSslRecoverableException()) {
- mLastSslUntrustedServerResult = result;
- showUntrustedCertDialog(mLastSslUntrustedServerResult);
- }
+ Toast msg = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
+ Toast.LENGTH_LONG);
+ msg.show();
+
+ if (result.isSslRecoverableException()) {
+ mLastSslUntrustedServerResult = result;
+ showUntrustedCertDialog(mLastSslUntrustedServerResult);
}
}
}
onTransferStateChanged(syncedFile, true, true);
} else {
- Toast msg = Toast.makeText(this, R.string.sync_file_nothing_to_do_msg, Toast.LENGTH_LONG);
+ Toast msg = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
+ Toast.LENGTH_LONG);
msg.show();
}
}
*/
@Override
public void onTransferStateChanged(OCFile file, boolean downloading, boolean uploading) {
+ refreshListOfFilesFragment();
FileFragment details = getSecondFragment();
if (details != null && details instanceof FileDetailFragment && file.equals(details.getFile()) ) {
if (downloading || uploading) {
((FileDetailFragment)details).updateFileDetails(file, getAccount());
} else {
- ((FileDetailFragment)details).updateFileDetails(false, true);
- }
- }
- }
-
-
- public void onDismiss(EditNameDialog dialog) {
- if (dialog.getResult()) {
- String newDirectoryName = dialog.getNewFilename().trim();
- Log_OC.d(TAG, "'create directory' dialog dismissed with new name " + newDirectoryName);
- if (newDirectoryName.length() > 0) {
- String path = getCurrentDir().getRemotePath();
-
- // Create directory
- path += newDirectoryName + OCFile.PATH_SEPARATOR;
- getFileOperationsHelper().createFolder(path, false);
+ if (!file.fileExists()) {
+ cleanSecondFragment();
+ } else {
+ ((FileDetailFragment)details).updateFileDetails(false, true);
+ }
}
}
+
}
showDetailsIntent.putExtra(EXTRA_FILE, file);
showDetailsIntent.putExtra(EXTRA_ACCOUNT, getAccount());
startActivity(showDetailsIntent);
+
}
/**
public void cancelTransference(OCFile file) {
- Account account = getAccount();
- if (mDownloaderBinder != null && mDownloaderBinder.isDownloading(account, file)) {
- mDownloaderBinder.cancel(account, file);
- refreshListOfFilesFragment();
- onTransferStateChanged(file, false, false);
-
- } else if (mUploaderBinder != null && mUploaderBinder.isUploading(account, file)) {
- mUploaderBinder.cancel(account, file);
- refreshListOfFilesFragment();
- if (!file.fileExists()) {
- cleanSecondFragment();
-
- } else {
- onTransferStateChanged(file, false, false);
- }
+ getFileOperationsHelper().cancelTransference(file);
+ if (mWaitingToPreview != null &&
+ mWaitingToPreview.getRemotePath().equals(file.getRemotePath())) {
+ mWaitingToPreview = null;
+ }
+ if (mWaitingToSend != null &&
+ mWaitingToSend.getRemotePath().equals(file.getRemotePath())) {
+ mWaitingToSend = null;
}
+ onTransferStateChanged(file, false, false);
}
}