Bug 1266383 - (Pre) BrowserAppDelegate - Add methods for tabs tray shown/hidden. r=ahunt draft
authorSebastian Kaspari <s.kaspari@gmail.com>
Thu, 21 Apr 2016 17:51:42 +0200
changeset 355964 80d65fcdb85559de8dccb471f999938d57fce177
parent 355939 1f2780026d1e2638dd925d33a851c12e8f32420b
child 355965 2f1c48275a28fb16a13cdb28e8856837a2345154
push id16405
push users.kaspari@gmail.com
push dateMon, 25 Apr 2016 10:45:25 +0000
reviewersahunt
bugs1266383
milestone48.0a1
Bug 1266383 - (Pre) BrowserAppDelegate - Add methods for tabs tray shown/hidden. r=ahunt MozReview-Commit-ID: JGL9EtRBKy0
mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
mobile/android/base/java/org/mozilla/gecko/BrowserAppDelegate.java
--- 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) {}
 }