Bug 1352133 - Handle selected tab not yet existing when exiting BrowserSearch. r?nechen draft
authorJan Henning <jh+bugzilla@buttercookie.de>
Thu, 28 Dec 2017 15:29:24 +0100
changeset 714707 75b1490ad5a974b9584b8228b32e82e82cafffea
parent 714705 317153e0b8ae78c00c3be3256fa22cf57d40b2fc
child 714708 60b5534abf0107cb644c026d726c328533380b79
child 714709 bc757d6f3547c9c9df49e1d482d8a35fb016d5ca
push id94006
push usermozilla@buttercookie.de
push dateThu, 28 Dec 2017 15:02:14 +0000
reviewersnechen
bugs1352133
milestone59.0a1
Bug 1352133 - Handle selected tab not yet existing when exiting BrowserSearch. r?nechen Early during startup there might not be a selected tab yet, so we can't use its data to decide which home panel to show again. Fortunately showHomePager can be called with a null panelId, in which case it will eventually simply fall back to using the default home panel from our settings. MozReview-Commit-ID: GbmozJeYZVb
mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -3136,20 +3136,30 @@ public class BrowserApp extends GeckoApp
         getWindow().setBackgroundDrawableResource(android.R.color.white);
     }
 
     private void hideBrowserSearch() {
         if (!mBrowserSearch.getUserVisibleHint()) {
             return;
         }
 
+        final Tab selectedTab = Tabs.getInstance().getSelectedTab();
+        final String panelId;
+        final Bundle panelData;
+        if (selectedTab != null) {
+            panelId = selectedTab.getMostRecentHomePanel();
+            panelData = selectedTab.getMostRecentHomePanelData();
+        } else {
+            panelId = null;
+            panelData = null;
+        }
+
         // To prevent overdraw, the HomePager is hidden when BrowserSearch is displayed:
         // reverse that.
-        showHomePager(Tabs.getInstance().getSelectedTab().getMostRecentHomePanel(),
-                Tabs.getInstance().getSelectedTab().getMostRecentHomePanelData());
+        showHomePager(panelId, panelData);
 
         mBrowserSearchContainer.setVisibility(View.INVISIBLE);
 
         getSupportFragmentManager().beginTransaction()
                 .hide(mBrowserSearch).commitAllowingStateLoss();
         mBrowserSearch.setUserVisibleHint(false);
 
         getWindow().setBackgroundDrawable(null);