Преглед изворни кода

further optimize menu item filtering code

AndyScherzinger пре 7 година
родитељ
комит
6952e647bc

+ 19 - 13
src/main/java/com/owncloud/android/files/FileMenuFilter.java

@@ -104,22 +104,13 @@ public class FileMenuFilter {
             List<Integer> toHide = new ArrayList<>();
 
             filter(toShow, toHide, inSingleFileFragment);
-
-            MenuItem item;
+            
             for (int i : toShow) {
-                item = menu.findItem(i);
-                if (item != null) {
-                    item.setVisible(true);
-                    item.setEnabled(true);
-                }
+                showMenuItem(menu.findItem(i));
             }
 
             for (int i : toHide) {
-                item = menu.findItem(i);
-                if (item != null) {
-                    item.setVisible(false);
-                    item.setEnabled(false);
-                }
+                hideMenuItem(menu.findItem(i));
             }
         }
     }
@@ -132,13 +123,28 @@ public class FileMenuFilter {
         }
     }
 
-    public static void hideMenuItem(MenuItem item) {
+    private static void hideMenuItem(MenuItem item) {
         if (item != null) {
             item.setVisible(false);
             item.setEnabled(false);
         }
     }
 
+    private static void showMenuItem(MenuItem item) {
+        if (item != null) {
+            item.setVisible(true);
+            item.setEnabled(true);
+        }
+    }
+
+    public static void hideMenuItems(MenuItem... items) {
+        if (items != null) {
+            for (MenuItem item : items) {
+                hideMenuItem(item);
+            }
+        }
+    }
+
     /**
      * Performs the real filtering, to be applied in the {@link Menu} by the caller methods.
      *

+ 15 - 11
src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java

@@ -255,24 +255,28 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
         }
 
         // restriction for this fragment
-        FileMenuFilter.hideMenuItem(menu.findItem(R.id.action_see_details));
-        FileMenuFilter.hideMenuItem(menu.findItem(R.id.action_select_all));
-        FileMenuFilter.hideMenuItem(menu.findItem(R.id.action_move));
-        FileMenuFilter.hideMenuItem(menu.findItem(R.id.action_copy));
-        FileMenuFilter.hideMenuItem(menu.findItem(R.id.action_favorite));
-        FileMenuFilter.hideMenuItem(menu.findItem(R.id.action_unset_favorite));
-        FileMenuFilter.hideMenuItem(menu.findItem(R.id.action_search));
+        FileMenuFilter.hideMenuItems(
+                menu.findItem(R.id.action_see_details),
+                menu.findItem(R.id.action_select_all),
+                menu.findItem(R.id.action_move),
+                menu.findItem(R.id.action_copy),
+                menu.findItem(R.id.action_favorite),
+                menu.findItem(R.id.action_unset_favorite),
+                menu.findItem(R.id.action_search)
+        );
 
         // dual pane restrictions
         if (!getResources().getBoolean(R.bool.large_land_layout)){
-            FileMenuFilter.hideMenuItem(menu.findItem(R.id.action_switch_view));
-            FileMenuFilter.hideMenuItem(menu.findItem(R.id.action_sync_account));
-            FileMenuFilter.hideMenuItem(menu.findItem(R.id.action_sort));
+            FileMenuFilter.hideMenuItems(
+                    menu.findItem(R.id.action_switch_view),
+                    menu.findItem(R.id.action_sync_account),
+                    menu.findItem(R.id.action_sort)
+            );
         }
 
         // share restrictions
         if (getFile().isSharedWithMe() && !getFile().canReshare()) {
-            FileMenuFilter.hideMenuItem(menu.findItem(R.id.action_send_share_file));
+            FileMenuFilter.hideMenuItems(menu.findItem(R.id.action_send_share_file));
         }
     }