Recover automatic redirection to login view when a foreground operation was tried...
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / activity / FileDisplayActivity.java
index 6df94a7..d535802 100644 (file)
@@ -378,7 +378,7 @@ OnSslUntrustedCertListener, EditNameDialogListener {
         return null;
     }
 
-    protected FileFragment getSecondFragment() {
+    public FileFragment getSecondFragment() {
         Fragment second = getSupportFragmentManager().findFragmentByTag(FileDisplayActivity.TAG_SECOND_FRAGMENT);
         if (second != null) {
             return (FileFragment)second;
@@ -983,7 +983,11 @@ OnSslUntrustedCertListener, EditNameDialogListener {
                             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())) {
@@ -1024,6 +1028,7 @@ OnSslUntrustedCertListener, EditNameDialogListener {
             }
             
             removeStickyBroadcast(intent);
+            mWaitingToPreview = null;
         }
 
         private boolean isDescendant(String downloadedRemotePath) {
@@ -1293,12 +1298,16 @@ OnSslUntrustedCertListener, EditNameDialogListener {
             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();
@@ -1349,9 +1358,21 @@ OnSslUntrustedCertListener, EditNameDialogListener {
         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();
             }
@@ -1424,14 +1445,7 @@ OnSslUntrustedCertListener, EditNameDialogListener {
 
                 // 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();
+                getFileOperationsHelper().createFolder(path, false);
             }
         }
     }
@@ -1570,10 +1584,12 @@ OnSslUntrustedCertListener, EditNameDialogListener {
         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();