Bug 1414084 - Part 10 - Init MenuItemInfo list right from the start. r?grisha draft
authorJan Henning <jh+bugzilla@buttercookie.de>
Sun, 18 Mar 2018 17:47:33 +0100
changeset 823885 060b82ea32b1323dbf029cbb2d943f38f0bf5d23
parent 823884 f87beb9188f46e8336daf7d9b607c3bcf0e8c766
child 823886 e64c101eff5ed12e98a3eb83224008b547c7aeb4
push id117809
push usermozilla@buttercookie.de
push dateSun, 29 Jul 2018 18:19:15 +0000
reviewersgrisha
bugs1414084
milestone63.0a1
Bug 1414084 - Part 10 - Init MenuItemInfo list right from the start. r?grisha The small savings in initialising this on demand the first time a menu item is added, are not worth the additional complexity in null checks and the like. MozReview-Commit-ID: Lcz09Ds8NxJ
mobile/android/base/java/org/mozilla/gecko/AddonUICache.java
--- a/mobile/android/base/java/org/mozilla/gecko/AddonUICache.java
+++ b/mobile/android/base/java/org/mozilla/gecko/AddonUICache.java
@@ -50,17 +50,17 @@ public class AddonUICache implements Bun
         public boolean checked;
         public boolean enabled = true;
         public boolean visible = true;
         public int parent;
     }
 
     private static final AddonUICache instance = new AddonUICache();
 
-    private List<MenuItemInfo> mAddonMenuItemsCache;
+    private final List<MenuItemInfo> mAddonMenuItemsCache = new ArrayList<>();
     private int mAddonMenuNextID = ADDON_MENU_OFFSET;
     private Menu mMenu;
 
     private boolean mInitialized;
 
     public static AddonUICache getInstance() {
         return instance;
     }
@@ -125,17 +125,17 @@ public class AddonUICache implements Bun
     /**
      * Starts handling add-on menu items for the given {@link Menu} and also adds any
      * menu items that have already been cached.
      */
     public void onCreateOptionsMenu(Menu menu) {
         mMenu = menu;
 
         // Add add-on menu items, if any exist.
-        if (mMenu != null && mAddonMenuItemsCache != null && !mAddonMenuItemsCache.isEmpty()) {
+        if (mMenu != null) {
             for (MenuItemInfo item : mAddonMenuItemsCache) {
                 addAddonMenuItemToMenu(mMenu, item);
             }
         }
     }
 
     /**
      * Clears the reference to the Menu passed in {@link AddonUICache#onCreateOptionsMenu}.
@@ -145,43 +145,37 @@ public class AddonUICache implements Bun
     public void onDestroyOptionsMenu() {
         mMenu = null;
     }
 
     /**
      * Adds an addon menu item/webextension browser action to the menu.
      */
     private void addAddonMenuItem(final MenuItemInfo info) {
-        if (mAddonMenuItemsCache == null) {
-            mAddonMenuItemsCache = new ArrayList<>();
-        }
-
         mAddonMenuItemsCache.add(info);
 
         if (mMenu == null) {
             return;
         }
 
         addAddonMenuItemToMenu(mMenu, info);
     }
 
     /**
      * Removes an addon menu item/webextension browser action from the menu by its UUID.
      */
     private void removeAddonMenuItem(String uuid) {
         int id = -1;
 
         // Remove add-on menu item from cache, if available.
-        if (mAddonMenuItemsCache != null && !mAddonMenuItemsCache.isEmpty()) {
-            for (MenuItemInfo item : mAddonMenuItemsCache) {
-                if (item.uuid.equals(uuid)) {
-                    id = item.id;
-                    mAddonMenuItemsCache.remove(item);
-                    break;
-                }
+        for (MenuItemInfo item : mAddonMenuItemsCache) {
+            if (item.uuid.equals(uuid)) {
+                id = item.id;
+                mAddonMenuItemsCache.remove(item);
+                break;
             }
         }
 
         if (mMenu == null || id == -1) {
             return;
         }
 
         final MenuItem menuItem = mMenu.findItem(id);
@@ -192,27 +186,25 @@ public class AddonUICache implements Bun
 
     /**
      * Updates the addon menu/webextension browser action with the specified UUID.
      */
     private void updateAddonMenuItem(String uuid, final GeckoBundle options) {
         int id = -1;
 
         // Set attribute for the menu item in cache, if available
-        if (mAddonMenuItemsCache != null && !mAddonMenuItemsCache.isEmpty()) {
-            for (MenuItemInfo item : mAddonMenuItemsCache) {
-                if (item.uuid.equals(uuid)) {
-                    id = item.id;
-                    item.label = options.getString("name", item.label);
-                    item.checkable = options.getBoolean("checkable", item.checkable);
-                    item.checked = options.getBoolean("checked", item.checked);
-                    item.enabled = options.getBoolean("enabled", item.enabled);
-                    item.visible = options.getBoolean("visible", item.visible);
-                    break;
-                }
+        for (MenuItemInfo item : mAddonMenuItemsCache) {
+            if (item.uuid.equals(uuid)) {
+                id = item.id;
+                item.label = options.getString("name", item.label);
+                item.checkable = options.getBoolean("checkable", item.checkable);
+                item.checked = options.getBoolean("checked", item.checked);
+                item.enabled = options.getBoolean("enabled", item.enabled);
+                item.visible = options.getBoolean("visible", item.visible);
+                break;
             }
         }
 
         if (mMenu == null || id == -1) {
             return;
         }
 
         final MenuItem menuItem = mMenu.findItem(id);