Show share with users option if the server supports search users function
authormasensio <masensio@solidgear.es>
Mon, 5 Oct 2015 09:25:24 +0000 (11:25 +0200)
committerDavid A. Velasco <dvelasco@solidgear.es>
Fri, 30 Oct 2015 14:08:14 +0000 (15:08 +0100)
owncloud-android-library
src/com/owncloud/android/authentication/AccountUtils.java
src/com/owncloud/android/files/FileMenuFilter.java

index f02dffb..875fce9 160000 (submodule)
@@ -1 +1 @@
-Subproject commit f02dffb1d3c46305c70d246f696cde7b8c3b0971
+Subproject commit 875fce9f9c19190ba976cfc3634c63029362eda5
index 87766b5..2f05a3e 100644 (file)
@@ -289,4 +289,15 @@ public class AccountUtils {
         return serverVersion;\r
     }\r
 \r
+    public static boolean hasSearchUsersSupport(Account account){\r
+        OwnCloudVersion serverVersion = null;\r
+        if (account != null) {\r
+            AccountManager accountMgr = AccountManager.get(MainApp.getAppContext());\r
+            String serverVersionStr = accountMgr.getUserData(account, Constants.KEY_OC_VERSION);\r
+            if (serverVersionStr != null) {\r
+                serverVersion = new OwnCloudVersion(serverVersionStr);\r
+            }\r
+        }\r
+        return (serverVersion != null ? serverVersion.isSearchUsersSupported() : false);\r
+    }\r
 }\r
index f45d69f..6d53c99 100644 (file)
@@ -29,6 +29,7 @@ import android.view.Menu;
 import android.view.MenuItem;
 
 import com.owncloud.android.R;
+import com.owncloud.android.authentication.AccountUtils;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.files.services.FileDownloader;
 import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
@@ -57,7 +58,8 @@ public class FileMenuFilter {
      *                          {@link FileUploader} and {@link FileDownloader} services
      * @param context           Android {@link Context}, needed to access build setup resources.
      */
-    public FileMenuFilter(OCFile targetFile, Account account, ComponentsGetter cg, Context context) {
+    public FileMenuFilter(OCFile targetFile, Account account, ComponentsGetter cg,
+                          Context context) {
         mFile = targetFile;
         mAccount = account;
         mComponentsGetter = cg;
@@ -105,6 +107,7 @@ public class FileMenuFilter {
      * @param toHide            List to save the options that must be shown in the menu.
      */
     private void filter(List<Integer> toShow, List <Integer> toHide) {
+        boolean shareWithUsersEnable = false;
         boolean synchronizing = false;
         if (mComponentsGetter != null && mFile != null && mAccount != null) {
             OperationsServiceBinder opsBinder = mComponentsGetter.getOperationsServiceBinder();
@@ -118,6 +121,7 @@ public class FileMenuFilter {
                 // uploading
                 (uploaderBinder != null && uploaderBinder.isUploading(mAccount, mFile))
             );
+            shareWithUsersEnable = AccountUtils.hasSearchUsersSupport(mAccount);
         }
 
         /// decision is taken for each possible action on a file in the menu
@@ -198,15 +202,14 @@ public class FileMenuFilter {
         }
 
         // SHARE FILE, with Users
-        if (!shareAllowed || mFile == null) {
+        if (!shareAllowed || !shareWithUsersEnable || mFile == null) {
             toHide.add(R.id.action_share_with_users);
         } else {
             toShow.add(R.id.action_share_with_users);
         }
 
         // UNSHARE FILE, with Users
-        // TODO add check on SHARE available on server side?
-        if ( !shareAllowed || (mFile == null || !mFile.isShareByLink())) {
+        if ( !shareAllowed || !shareWithUsersEnable || (mFile == null || !mFile.isShareByLink())) {
             toHide.add(R.id.action_unshare_with_users);
         } else {
             toShow.add(R.id.action_unshare_with_users);