Bug 1366681 - Try to move Add-On to the first level menu draft
authorJulian_Chu <walkingice0204@gmail.com>
Thu, 01 Jun 2017 14:08:22 +0800
changeset 601173 637de0fff0cb9b124f0e343475f8cae90cfa7e9e
parent 600616 f4e52135d9bdc6ce98bb37b450021445aed894ce
child 635185 3108ba97a85bacf35d8da0b55eebd8e4b03e5be3
push id65980
push userbmo:walkingice0204@gmail.com
push dateWed, 28 Jun 2017 07:55:18 +0000
bugs1366681
milestone56.0a1
Bug 1366681 - Try to move Add-On to the first level menu To follow designer's requirement, move this menu item to top level. However, we don't do this directly. Instead, use SwitchBoard to control visibility. MozReview-Commit-ID: 9XigQyjF6A1
mobile/android/app/src/main/res/menu-large/browser_app_menu.xml
mobile/android/app/src/main/res/menu-xlarge/browser_app_menu.xml
mobile/android/app/src/main/res/menu/browser_app_menu.xml
mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
mobile/android/base/java/org/mozilla/gecko/Experiments.java
--- a/mobile/android/app/src/main/res/menu-large/browser_app_menu.xml
+++ b/mobile/android/app/src/main/res/menu-large/browser_app_menu.xml
@@ -48,16 +48,20 @@
 
     <item android:id="@+id/find_in_page"
           android:title="@string/find_in_page" />
 
     <item android:id="@+id/desktop_mode"
           android:title="@string/desktop_mode"
           android:checkable="true" />
 
+    <item android:id="@+id/addons_top_level"
+          android:title="@string/addons"
+          android:visible="false" />
+
     <item android:id="@+id/page"
           android:title="@string/page">
 
         <menu>
 
             <item android:id="@+id/subscribe"
                   android:title="@string/contextmenu_subscribe"/>
 
--- a/mobile/android/app/src/main/res/menu-xlarge/browser_app_menu.xml
+++ b/mobile/android/app/src/main/res/menu-xlarge/browser_app_menu.xml
@@ -44,16 +44,20 @@
           android:title="@string/bookmarks_title"/>
 
     <item android:id="@+id/history_list"
           android:title="@string/history_title"/>
 
     <item android:id="@+id/find_in_page"
           android:title="@string/find_in_page" />
 
+    <item android:id="@+id/addons_top_level"
+          android:title="@string/addons"
+          android:visible="false" />
+
     <item android:id="@+id/desktop_mode"
           android:title="@string/desktop_mode"
           android:checkable="true" />
 
 
     <item android:id="@+id/page"
           android:title="@string/page">
 
--- a/mobile/android/app/src/main/res/menu/browser_app_menu.xml
+++ b/mobile/android/app/src/main/res/menu/browser_app_menu.xml
@@ -48,16 +48,20 @@
 
     <item android:id="@+id/find_in_page"
           android:title="@string/find_in_page" />
 
     <item android:id="@+id/desktop_mode"
           android:title="@string/desktop_mode"
           android:checkable="true" />
 
+    <item android:id="@+id/addons_top_level"
+          android:title="@string/addons"
+          android:visible="false" />
+
     <item android:id="@+id/page"
           android:title="@string/page">
 
         <menu>
 
             <item android:id="@+id/subscribe"
                   android:title="@string/contextmenu_subscribe"/>
 
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -3702,18 +3702,27 @@ public class BrowserApp extends GeckoApp
         } else {
             enterGuestMode.setVisible(true);
         }
 
         if (!Restrictions.isAllowed(this, Restrictable.GUEST_BROWSING)) {
             MenuUtils.safeSetVisible(aMenu, R.id.new_guest_session, false);
         }
 
+        if (SwitchBoard.isInExperiment(this, Experiments.TOP_ADDONS_MENU)) {
+            MenuUtils.safeSetVisible(aMenu, R.id.addons_top_level, true);
+            MenuUtils.safeSetVisible(aMenu, R.id.addons, false);
+        } else {
+            MenuUtils.safeSetVisible(aMenu, R.id.addons_top_level, false);
+            MenuUtils.safeSetVisible(aMenu, R.id.addons, true);
+        }
+
         if (!Restrictions.isAllowed(this, Restrictable.INSTALL_EXTENSION)) {
             MenuUtils.safeSetVisible(aMenu, R.id.addons, false);
+            MenuUtils.safeSetVisible(aMenu, R.id.addons_top_level, false);
         }
 
         // Hide panel menu items if the panels themselves are hidden.
         // If we don't know whether the panels are hidden, just show the menu items.
         bookmarksList.setVisible(prefs.getBoolean(HomeConfig.PREF_KEY_BOOKMARKS_PANEL_ENABLED, true));
         historyList.setVisible(prefs.getBoolean(HomeConfig.PREF_KEY_HISTORY_PANEL_ENABLED, true));
 
         return true;
@@ -3849,17 +3858,17 @@ public class BrowserApp extends GeckoApp
             final String OS = AppConstants.OS_TARGET;
             final String LOCALE = Locales.getLanguageTag(Locale.getDefault());
 
             final String URL = getResources().getString(R.string.help_link, VERSION, OS, LOCALE);
             Tabs.getInstance().loadUrlInTab(URL);
             return true;
         }
 
-        if (itemId == R.id.addons) {
+        if (itemId == R.id.addons || itemId == R.id.addons_top_level) {
             Tabs.getInstance().loadUrlInTab(AboutPages.ADDONS);
             return true;
         }
 
         if (itemId == R.id.logins) {
             Tabs.getInstance().loadUrlInTab(AboutPages.LOGINS);
             return true;
         }
--- a/mobile/android/base/java/org/mozilla/gecko/Experiments.java
+++ b/mobile/android/base/java/org/mozilla/gecko/Experiments.java
@@ -60,16 +60,19 @@ public class Experiments {
     public static final String ACTIVITY_STREAM = "activity-stream";
 
     // Show a setting in "experimental features" for enabling/disabling activity stream.
     public static final String ACTIVITY_STREAM_SETTING = "activity-stream-setting";
 
     // Enable Activity stream by default for users in the "opt out" group.
     public static final String ACTIVITY_STREAM_OPT_OUT = "activity-stream-opt-out";
 
+    // Show AddOns menu-item in top level menu
+    public static final String TOP_ADDONS_MENU = "top-addons-menu";
+
     // Tabs tray: Arrange tabs in two columns in portrait mode
     public static final String COMPACT_TABS = "compact-tabs";
 
     // Enable full bookmark management(full-page dialog, bookmark/folder modification, etc.)
     public static final String FULL_BOOKMARK_MANAGEMENT = "full-bookmark-management";
 
     // Enable Leanplum SDK
     public static final String LEANPLUM = "leanplum-start";