瀏覽代碼

- centralize account
- default: show activity

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>

tobiasKaminsky 6 年之前
父節點
當前提交
0160d50283

+ 9 - 2
src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java

@@ -64,6 +64,7 @@ import com.owncloud.android.authentication.AccountUtils;
 import com.owncloud.android.authentication.PassCodeManager;
 import com.owncloud.android.datamodel.ArbitraryDataProvider;
 import com.owncloud.android.datamodel.ExternalLinksProvider;
+import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.common.ExternalLink;
 import com.owncloud.android.lib.common.ExternalLinkType;
@@ -344,10 +345,16 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
     }
 
     private void filterDrawerMenu(Menu menu, Account account) {
+        OCCapability capability = null;
+        if (account != null) {
+            FileDataStorageManager storageManager = new FileDataStorageManager(account, getContentResolver());
+            capability = storageManager.getCapability(account.name);
+        }
+        
         DrawerMenuUtil.filterForBottomToolbarMenuItems(menu, getResources());
         DrawerMenuUtil.filterSearchMenuItems(menu, account, getResources());
-        DrawerMenuUtil.filterTrashbinMenuItem(menu, account, getContentResolver());
-        DrawerMenuUtil.filterActivityMenuItem(menu, account, getContentResolver());
+        DrawerMenuUtil.filterTrashbinMenuItem(menu, account, capability);
+        DrawerMenuUtil.filterActivityMenuItem(menu, capability);
 
         DrawerMenuUtil.setupHomeMenuItem(menu, getResources());
 

+ 5 - 14
src/main/java/com/owncloud/android/utils/DrawerMenuUtil.java

@@ -21,13 +21,12 @@
 package com.owncloud.android.utils;
 
 import android.accounts.Account;
-import android.content.ContentResolver;
 import android.content.res.Resources;
+import android.support.annotation.Nullable;
 import android.view.Menu;
 
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountUtils;
-import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.lib.resources.status.OCCapability;
 import com.owncloud.android.lib.resources.status.OwnCloudVersion;
 
@@ -67,11 +66,8 @@ public class DrawerMenuUtil {
         }
     }
 
-    public static void filterTrashbinMenuItem(Menu menu, Account account, ContentResolver contentResolver) {
-        if (account != null) {
-            FileDataStorageManager storageManager = new FileDataStorageManager(account, contentResolver);
-            OCCapability capability = storageManager.getCapability(account.name);
-
+    public static void filterTrashbinMenuItem(Menu menu, @Nullable Account account, @Nullable OCCapability capability) {
+        if (account != null && capability != null) {
             if (AccountUtils.getServerVersion(account).compareTo(OwnCloudVersion.nextcloud_14) < 0 ||
                     capability.getFilesUndelete().isFalse() || capability.getFilesUndelete().isUnknown()) {
                 filterMenuItems(menu, R.id.nav_trashbin);
@@ -79,15 +75,10 @@ public class DrawerMenuUtil {
         }
     }
 
-    public static void filterActivityMenuItem(Menu menu, Account account, ContentResolver contentResolver) {
-        if (account != null) {
-            FileDataStorageManager storageManager = new FileDataStorageManager(account, contentResolver);
-            OCCapability capability = storageManager.getCapability(account.name);
-
-            if (capability.isActivityEnabled().isFalse() || capability.isActivityEnabled().isUnknown()) {
+    public static void filterActivityMenuItem(Menu menu, @Nullable OCCapability capability) {
+        if (capability != null && capability.isActivityEnabled().isFalse()) {
                 filterMenuItems(menu, R.id.nav_activity);
             }
-        }
     }
 
     public static void removeMenuItem(Menu menu, int id, boolean remove) {