Bug 1401871 - Check if menu item(home_add_to_launcher) exists or not before accessing it. r?nechen draft
authorJing-wei Wu <topwu.tw@gmail.com>
Tue, 26 Sep 2017 16:12:15 +0800
changeset 670271 afb4d266aa457a929d5dbf89e955030f9a0721e7
parent 670246 cce04d836fcf13fb5923ad6789eba9ef077fab30
child 670278 3daa7f2590a89fbfdefca0f0cf8d229cab3df44c
push id81588
push userbmo:topwu.tw@gmail.com
push dateTue, 26 Sep 2017 08:15:28 +0000
reviewersnechen
bugs1401871
milestone58.0a1
Bug 1401871 - Check if menu item(home_add_to_launcher) exists or not before accessing it. r?nechen We temporarily hide `home_add_to_launcher` in API 26, which means directly accesses it without checking if it exists or not would cause NullPointerException. MozReview-Commit-ID: KXnP81ZZa6u
mobile/android/base/java/org/mozilla/gecko/home/HomeFragment.java
--- a/mobile/android/base/java/org/mozilla/gecko/home/HomeFragment.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/HomeFragment.java
@@ -203,17 +203,21 @@ public abstract class HomeFragment exten
         menu.findItem(R.id.home_set_as_homepage).setVisible(distSetAsHomepage);
 
         // Hide unused menu items for bookmark folder.
         if (info.isFolder) {
             menu.findItem(R.id.home_open_new_tab).setVisible(false);
             menu.findItem(R.id.home_open_private_tab).setVisible(false);
             menu.findItem(R.id.home_copyurl).setVisible(false);
             menu.findItem(R.id.home_share).setVisible(false);
-            menu.findItem(R.id.home_add_to_launcher).setVisible(false);
+
+            final MenuItem addToLauncherItem = menu.findItem(R.id.home_add_to_launcher);
+            if (addToLauncherItem != null) {
+                addToLauncherItem.setVisible(false);
+            }
             menu.findItem(R.id.home_set_as_homepage).setVisible(false);
 
             menu.findItem(R.id.home_as_pin).setVisible(false);
             return;
         }
 
         // If Activity Stream is disabled, simply hide "AS Pin" menu item as classic Top Sites do not
         // support pinning from outside of the Top Site tiles.