Unshare public link in ShareFileFragment
[pub/Android/ownCloud.git] / src / com / owncloud / android / files / FileOperationsHelper.java
index e27f84e..ccbcf07 100644 (file)
@@ -139,7 +139,42 @@ public class FileOperationsHelper {
                 .show();
     }
 
                 .show();
     }
 
-    public void shareFileWithLink(OCFile file) {
+
+    /**
+     * Helper method to share a file via a public link. Starts a request to do it in {@link OperationsService}
+     *
+     * @param file      The file to share.
+     */
+    public void shareFileViaLink(OCFile file) {
+        if (isSharedSupported()) {
+            if (file != null) {
+                mFileActivity.showLoadingDialog(
+                        mFileActivity.getApplicationContext().
+                        getString(R.string.wait_a_moment)
+                );
+                Intent service = new Intent(mFileActivity, OperationsService.class);
+                service.setAction(OperationsService.ACTION_CREATE_SHARE_VIA_LINK);
+                service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+                service.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
+                mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
+
+            } else {
+                Log_OC.wtf(TAG, "Trying to share a NULL OCFile");
+                // TODO user-level error?
+            }
+
+        } else {
+            // Show a Message
+            Toast t = Toast.makeText(
+                    mFileActivity, mFileActivity.getString(R.string.share_link_no_support_share_api),
+                    Toast.LENGTH_LONG
+            );
+            t.show();
+        }
+    }
+
+
+    public void shareFileWithLinkOLD(OCFile file) {
 
         if (isSharedSupported()) {
             if (file != null) {
 
         if (isSharedSupported()) {
             if (file != null) {
@@ -194,6 +229,33 @@ public class FileOperationsHelper {
 
 
     /**
 
 
     /**
+     * Helper method to share a file with a known sharee. Starts a request to do it in {@link OperationsService}
+     *
+     * @param file          The file to share.
+     * @param shareeName    Name (user name or group name) of the target sharee.
+     * @param shareType     The share type determines the sharee type.
+     */
+    public void shareFileWithSharee(OCFile file, String shareeName, ShareType shareType) {
+        if (file != null) {
+            // TODO check capability?
+            mFileActivity.showLoadingDialog(mFileActivity.getApplicationContext().
+                    getString(R.string.wait_a_moment));
+
+            Intent service = new Intent(mFileActivity, OperationsService.class);
+            service.setAction(OperationsService.ACTION_CREATE_SHARE_WITH_SHAREE);
+            service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+            service.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
+            service.putExtra(OperationsService.EXTRA_SHARE_WITH, shareeName);
+            service.putExtra(OperationsService.EXTRA_SHARE_TYPE, shareType);
+            mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
+
+        } else {
+            Log_OC.wtf(TAG, "Trying to share a NULL OCFile");
+        }
+    }
+
+
+    /**
      * @return 'True' if the server supports the Share API
      */
     public boolean isSharedSupported() {
      * @return 'True' if the server supports the Share API
      */
     public boolean isSharedSupported() {
@@ -205,7 +267,13 @@ public class FileOperationsHelper {
     }
 
 
     }
 
 
-    public void unshareFileWithLink(OCFile file) {
+    /**
+     * Helper method to unshare a file publicly shared via link.
+     * Starts a request to do it in {@link OperationsService}
+     *
+     * @param file      The file to unshare.
+     */
+    public void unshareFileViaLink(OCFile file) {
 
         // Unshare the file: Create the intent
         Intent unshareService = new Intent(mFileActivity, OperationsService.class);
 
         // Unshare the file: Create the intent
         Intent unshareService = new Intent(mFileActivity, OperationsService.class);
@@ -251,6 +319,11 @@ public class FileOperationsHelper {
         }
     }
 
         }
     }
 
+    /**
+     * Show an instance of {@link ShareType} for sharing or unsharing the {@OCFile} received as parameter.
+     *
+     * @param file  File to share or unshare.
+     */
     public void showShareFile(OCFile file){
         Intent intent = new Intent(mFileActivity, ShareActivity.class);
         intent.putExtra(mFileActivity.EXTRA_FILE, file);
     public void showShareFile(OCFile file){
         Intent intent = new Intent(mFileActivity, ShareActivity.class);
         intent.putExtra(mFileActivity.EXTRA_FILE, file);
@@ -460,4 +533,5 @@ public class FileOperationsHelper {
         }
         return false;
     }
         }
         return false;
     }
+
 }
 }