Browse Source

OC-2834: Access to unshare link from PreviewMediaFragment

masensio 11 years ago
parent
commit
3f701c5bb8

+ 1 - 0
res/values/strings.xml

@@ -250,4 +250,5 @@
 	<string name="share_link_no_support_share_api">Sorry, sharing is not enabled on your server. Please contact your administrator.</string>
 	<string name="share_link_file_no_exist">Unable to share this file or folder. Please, make sure it exists</string>
 	<string name="share_link_file_error">An error occurred while trying to share this file or folder</string>
+	<string name="unshare_link_file_error">An error occurred while trying to unshare this file or folder</string>
 </resources>

+ 18 - 2
src/com/owncloud/android/ui/activity/FileActivity.java

@@ -43,6 +43,7 @@ import com.owncloud.android.lib.operations.common.RemoteOperation;
 import com.owncloud.android.lib.operations.common.RemoteOperationResult;
 import com.owncloud.android.lib.operations.common.RemoteOperationResult.ResultCode;
 import com.owncloud.android.operations.CreateShareOperation;
+import com.owncloud.android.operations.UnshareLinkOperation;
 
 import com.owncloud.android.ui.dialog.LoadingDialog;
 import com.owncloud.android.utils.Log_OC;
@@ -353,7 +354,11 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp
         Log_OC.d(TAG, "Received result of operation in FileActivity - common behaviour for all the FileActivities ");
         if (operation instanceof CreateShareOperation) {
             onCreateShareOperationFinish((CreateShareOperation) operation, result);
-        }
+            
+        } else if (operation instanceof UnshareLinkOperation) {
+            onUnshareLinkOperationFinish((UnshareLinkOperation)operation, result);
+        
+        } 
     }
 
     private void onCreateShareOperationFinish(CreateShareOperation operation, RemoteOperationResult result) {
@@ -362,7 +367,7 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp
             Intent sendIntent = operation.getSendIntent();
             startActivity(sendIntent);
             
-        } else if (result.getCode() == ResultCode.FILE_NOT_FOUND)  {        // Error --> SHARE_NOT_FOUND
+        } else if (result.getCode() == ResultCode.SHARE_NOT_FOUND)  {        // Error --> SHARE_NOT_FOUND
                 Toast t = Toast.makeText(this, getString(R.string.share_link_file_no_exist), Toast.LENGTH_LONG);
                 t.show();
         } else {    // Generic error
@@ -373,6 +378,17 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp
     }
     
     
+    private void onUnshareLinkOperationFinish(UnshareLinkOperation operation, RemoteOperationResult result) {
+        dismissLoadingDialog();
+        
+        if (!result.isSuccess()){    // Generic error
+            // Show a Message, operation finished without success
+            Toast t = Toast.makeText(this, getString(R.string.unshare_link_file_error), Toast.LENGTH_LONG);
+            t.show();
+        }
+        
+    }
+    
     /**
      * Show loading dialog 
      */

+ 7 - 11
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -1315,24 +1315,20 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
         
     }
 
-    private void onUnshareLinkOperationFinish(UnshareLinkOperation operation, RemoteOperationResult result) {
-        if (result.getCode() == ResultCode.FILE_NOT_FOUND) {
-            // Show a Message
-            Toast t = Toast.makeText(this, getString(R.string.share_link_file_no_exist), Toast.LENGTH_LONG);
-            t.show();
+    
+    private void onCreateShareOperationFinish(CreateShareOperation operation, RemoteOperationResult result) {
+        if (result.isSuccess()) {
+            refeshListOfFilesFragment();
         }
-
-        refeshListOfFilesFragment();
-
-        dismissLoadingDialog();
     }
 
-    private void onCreateShareOperationFinish(CreateShareOperation operation, RemoteOperationResult result) {
+    
+    private void onUnshareLinkOperationFinish(UnshareLinkOperation operation, RemoteOperationResult result) {
         if (result.isSuccess()) {
             refeshListOfFilesFragment();
         }
     }
-
+    
     
     /**
      * Updates the view associated to the activity after the finish of an operation trying to remove a 

+ 11 - 0
src/com/owncloud/android/ui/preview/PreviewMediaFragment.java

@@ -316,6 +316,10 @@ public class PreviewMediaFragment extends FileFragment implements
                 shareFileWithLink();
                 return true;
             }
+            case R.id.action_unshare_file: {
+                unshareFileWithLink();
+                return true;
+            }
             case R.id.action_open_file_with: {
                 openFile();
                 return true;
@@ -334,6 +338,8 @@ public class PreviewMediaFragment extends FileFragment implements
         }
     }
     
+
+
     /**
      * {@inheritDoc}
      */
@@ -342,6 +348,11 @@ public class PreviewMediaFragment extends FileFragment implements
         super.onPrepareOptionsMenu(menu);
     }
 
+    private void unshareFileWithLink() {
+        stopPreview(false);
+        FileActivity activity = (FileActivity)((FileFragment.ContainerActivity)getActivity());
+        activity.getFileOperationsHelper().unshareFileWithLink(getFile(), activity);
+    }
     
     private void shareFileWithLink() {
         stopPreview(false);