Bug 1266383 - (Pre) BrowserAppDelegate - Add methods for tabs tray shown/hidden. r=ahunt
MozReview-Commit-ID: JGL9EtRBKy0
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -6,16 +6,17 @@
package org.mozilla.gecko;
import android.Manifest;
import android.app.DownloadManager;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Environment;
import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
import android.support.annotation.WorkerThread;
import org.json.JSONArray;
import org.mozilla.gecko.adjust.AdjustHelperInterface;
import org.mozilla.gecko.annotation.RobocopTarget;
import org.mozilla.gecko.AppConstants.Versions;
import org.mozilla.gecko.DynamicToolbar.VisibilityTransition;
import org.mozilla.gecko.Tabs.TabEvents;
import org.mozilla.gecko.animation.PropertyAnimator;
@@ -2155,25 +2156,33 @@ public class BrowserApp extends GeckoApp
} else {
if (mDoorHangerPopup != null) {
mDoorHangerPopup.disable();
}
mTabsPanel.show(panel);
// Hide potentially visible "find in page" bar (Bug 1177338)
mFindInPageBar.hide();
+
+ for (final BrowserAppDelegate delegate : delegates) {
+ delegate.onTabsTrayShown(this, mTabsPanel);
+ }
}
}
@Override
public void hideTabs() {
mTabsPanel.hide();
if (mDoorHangerPopup != null) {
mDoorHangerPopup.enable();
}
+
+ for (final BrowserAppDelegate delegate : delegates) {
+ delegate.onTabsTrayHidden(this, mTabsPanel);
+ }
}
@Override
public boolean autoHideTabs() {
if (areTabsShown()) {
hideTabs();
return true;
}
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserAppDelegate.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserAppDelegate.java
@@ -2,16 +2,18 @@
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.gecko;
import android.os.Bundle;
+import org.mozilla.gecko.tabs.TabsPanel;
+
/**
* Abstract class for extending the behavior of BrowserApp without adding additional code to the
* already huge class.
*/
public abstract class BrowserAppDelegate {
/**
* Called when the BrowserApp activity is first created.
*/
@@ -41,9 +43,19 @@ public abstract class BrowserAppDelegate
* Called when BrowserApp activity is no longer visible to the user.
*/
public void onStop(BrowserApp browserApp) {}
/**
* The final call before the BrowserApp activity is destroyed.
*/
public void onDestroy(BrowserApp browserApp) {}
+
+ /**
+ * Called when the tabs tray is opened.
+ */
+ public void onTabsTrayShown(BrowserApp browserApp, TabsPanel tabsPanel) {}
+
+ /**
+ * Called when the tabs tray is closed.
+ */
+ public void onTabsTrayHidden(BrowserApp browserApp, TabsPanel tabsPanel) {}
}