import com.owncloud.android.operations.SynchronizeFileOperation;
import com.owncloud.android.operations.SynchronizeFolderOperation;
import com.owncloud.android.operations.UnshareLinkOperation;
-import com.owncloud.android.services.OperationsService;
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;
*/
public class FileDisplayActivity extends HookActivity implements
-FileFragment.ContainerActivity, OnNavigationListener,
-OnSslUntrustedCertListener, EditNameDialogListener {
+FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener {
private ArrayAdapter<String> mDirectories;
private SyncBroadcastReceiver mSyncBroadcastReceiver;
private UploadFinishReceiver mUploadFinishReceiver;
private DownloadFinishReceiver mDownloadFinishReceiver;
- //private OperationsServiceReceiver mOperationsServiceReceiver;
private RemoteOperationResult mLastSslUntrustedServerResult = null;
private boolean mDualPane;
private static final String KEY_WAITING_TO_PREVIEW = "WAITING_TO_PREVIEW";
private static final String KEY_SYNC_IN_PROGRESS = "SYNC_IN_PROGRESS";
- //private static final String KEY_REFRESH_SHARES_IN_PROGRESS = "SHARES_IN_PROGRESS";
private static final String KEY_WAITING_TO_SEND = "WAITING_TO_SEND";
public static final int DIALOG_SHORT_WAIT = 0;
private static final int DIALOG_CHOOSE_UPLOAD_SOURCE = 1;
- //private static final int DIALOG_SSL_VALIDATOR = 2;
private static final int DIALOG_CERT_NOT_SAVED = 2;
public static final String ACTION_DETAILS = "com.owncloud.android.ui.activity.action.DETAILS";
private OCFile mWaitingToPreview;
private boolean mSyncInProgress = false;
- //private boolean mRefreshSharesInProgress = false;
private String DIALOG_UNTRUSTED_CERT;
if(savedInstanceState != null) {
mWaitingToPreview = (OCFile) savedInstanceState.getParcelable(FileDisplayActivity.KEY_WAITING_TO_PREVIEW);
mSyncInProgress = savedInstanceState.getBoolean(KEY_SYNC_IN_PROGRESS);
- //mRefreshSharesInProgress = savedInstanceState.getBoolean(KEY_REFRESH_SHARES_IN_PROGRESS);
mWaitingToSend = (OCFile) savedInstanceState.getParcelable(FileDisplayActivity.KEY_WAITING_TO_SEND);
} else {
mWaitingToPreview = null;
mSyncInProgress = false;
- //mRefreshSharesInProgress = false;
mWaitingToSend = null;
}
protected void onStart() {
super.onStart();
getSupportActionBar().setIcon(DisplayUtils.getSeasonalIconId());
- /*
- refreshListOfFilesFragment();
- */
}
@Override
return null;
}
- protected FileFragment getSecondFragment() {
+ public FileFragment getSecondFragment() {
Fragment second = getSupportFragmentManager().findFragmentByTag(FileDisplayActivity.TAG_SECOND_FRAGMENT);
if (second != null) {
return (FileFragment)second;
return null;
}
- public void cleanSecondFragment() {
+ protected void cleanSecondFragment() {
Fragment second = getSecondFragment();
if (second != null) {
FragmentTransaction tr = getSupportFragmentManager().beginTransaction();
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;
}
// Listen for sync messages
IntentFilter syncIntentFilter = new IntentFilter(FileSyncAdapter.EVENT_FULL_SYNC_START);
syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_END);
- //syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_FOLDER_SIZE_SYNCED);
syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED);
syncIntentFilter.addAction(SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED);
syncIntentFilter.addAction(SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED);
mDownloadFinishReceiver = new DownloadFinishReceiver();
registerReceiver(mDownloadFinishReceiver, downloadIntentFilter);
- // Listen for messages from the OperationsService
- /*
- IntentFilter operationsIntentFilter = new IntentFilter(OperationsService.ACTION_OPERATION_ADDED);
- operationsIntentFilter.addAction(OperationsService.ACTION_OPERATION_FINISHED);
- mOperationsServiceReceiver = new OperationsServiceReceiver();
- LocalBroadcastManager.getInstance(this).registerReceiver(mOperationsServiceReceiver, operationsIntentFilter);
- */
-
Log_OC.d(TAG, "onResume() end");
}
unregisterReceiver(mDownloadFinishReceiver);
mDownloadFinishReceiver = null;
}
- /*
- if (mOperationsServiceReceiver != null) {
- LocalBroadcastManager.getInstance(this).unregisterReceiver(mOperationsServiceReceiver);
- mOperationsServiceReceiver = null;
- }
- */
+
+ dismissLoadingDialog();
+
Log_OC.d(TAG, "onPause() end");
}
currentFile = currentDir;
}
-
if (synchFolderRemotePath != null && currentDir.getRemotePath().equals(synchFolderRemotePath)) {
OCFileListFragment fileListFragment = getListOfFilesFragment();
if (fileListFragment != null) {
fileListFragment.listDirectory(currentDir);
}
}
-
setFile(currentFile);
}
mSyncInProgress = (!FileSyncAdapter.EVENT_FULL_SYNC_END.equals(event) && !SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED.equals(event));
- /*
- if (synchResult != null &&
- synchResult.isSuccess() &&
- (SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SYNCED.equals(event) ||
- FileSyncAdapter.EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED.equals(event)
- ) &&
- !mRefreshSharesInProgress &&
- getFileOperationsHelper().isSharedSupported(FileDisplayActivity.this)
- ) {
- startGetShares();
- }
- */
-
}
removeStickyBroadcast(intent);
Log_OC.d(TAG, "Setting progress visibility to " + mSyncInProgress);
(uploadedRemotePath.startsWith(currentDir.getRemotePath()));
if (sameAccount && isDescendant) {
-
refreshListOfFilesFragment();
-
}
boolean uploadWasFine = intent.getBooleanExtra(FileUploader.EXTRA_UPLOAD_RESULT, false);
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())) {
boolean isDescendant = isDescendant(downloadedRemotePath);
if (sameAccount && isDescendant) {
-
refreshListOfFilesFragment();
-
refreshSecondFragment(intent.getAction(), downloadedRemotePath, intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false));
}
}
- /**
- * Class waiting for broadcast events from the {@link OperationsService}.
- *
- * Updates the list of files when a get for shares is finished; at this moment the refresh of shares is the only
- * operation performed in {@link OperationsService}.
- *
- * In the future will handle the progress or finalization of all the operations performed in {@link OperationsService},
- * probably all the operations associated to the app model.
- */
- private class OperationsServiceReceiver extends BroadcastReceiver {
-
- @Override
- public void onReceive(Context context, Intent intent) {
- if (OperationsService.ACTION_OPERATION_ADDED.equals(intent.getAction())) {
-
- } else if (OperationsService.ACTION_OPERATION_FINISHED.equals(intent.getAction())) {
- //mRefreshSharesInProgress = false;
-
- Account account = intent.getParcelableExtra(OperationsService.EXTRA_ACCOUNT);
- RemoteOperationResult getSharesResult = (RemoteOperationResult)intent.getSerializableExtra(OperationsService.EXTRA_RESULT);
- if (getAccount() != null && account.name.equals(getAccount().name)
- && getStorageManager() != null
- ) {
- /*
- refeshListOfFilesFragment();
- */
- }
- if ((getSharesResult != null) &&
- RemoteOperationResult.ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED.equals(getSharesResult.getCode())) {
- mLastSslUntrustedServerResult = getSharesResult;
- showUntrustedCertDialog(mLastSslUntrustedServerResult);
- }
-
- //setSupportProgressBarIndeterminateVisibility(mRefreshSharesInProgress || mSyncInProgress);
- }
-
- }
-
- }
-
public void browseToRoot() {
OCFileListFragment listOfFiles = getListOfFilesFragment();
if (listOfFiles != null) { // should never be null, indeed
}
- // TODO: delete this method??
-// /**
-// * {@inheritDoc}
-// */
-//
-// @Override
-// public void onFileStateChanged() {
-// /* TODO WIP COMMENT
-// refeshListOfFilesFragment();
-// updateNavigationElementsInActionBar(getSecondFragment().getFile());
-// */
-// }
-//
-
-
@Override
protected ServiceConnection newTransferenceServiceConnection() {
return new ListServiceConnection();
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))) {
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();
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 (operation.transferWasRequested()) {
- /* WIP: delete this refresh?
- * refreshListOfFilesFragment();
- */
onTransferStateChanged(syncedFile, true, true);
} else {
}
- 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;
- RemoteOperation operation = new CreateFolderOperation(path, false, getStorageManager());
- operation.execute( getAccount(),
- FileDisplayActivity.this,
- FileDisplayActivity.this,
- getHandler(),
- FileDisplayActivity.this);
-
- showLoadingDialog();
- }
- }
- }
-
-
private void requestForDownload() {
Account account = getAccount();
if (!mDownloaderBinder.isDownloading(account, mWaitingToPreview)) {
setSupportProgressBarIndeterminateVisibility(true);
}
- /*
- private void startGetShares() {
- // Get shared files/folders
- Intent intent = new Intent(this, OperationsService.class);
- intent.putExtra(OperationsService.EXTRA_ACCOUNT, getAccount());
- startService(intent);
-
- mRefreshSharesInProgress = true;
- }
- */
-
/**
* Show untrusted cert dialog
*/
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();