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
--- 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);