| Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanel.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanel.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanel.java
|
| index 3a3a5568e0c5e49e623f231b05a6a2dcf94a97de..f10eefed984cc31dedd85a9ed232ea5e4ff7c12d 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanel.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanel.java
|
| @@ -8,6 +8,7 @@ import android.content.Context;
|
|
|
| import org.chromium.base.VisibleForTesting;
|
| import org.chromium.chrome.browser.ChromeActivity;
|
| +import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager.PanelPriority;
|
| import org.chromium.chrome.browser.compositor.bottombar.contextualsearch.ContextualSearchPanelAnimation;
|
| import org.chromium.chrome.browser.compositor.layouts.LayoutUpdateHost;
|
| import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer;
|
| @@ -55,7 +56,9 @@ public class OverlayPanel extends ContextualSearchPanelAnimation
|
| FLING,
|
| OPTIN,
|
| OPTOUT,
|
| - CLOSE_BUTTON;
|
| + CLOSE_BUTTON,
|
| + SUPPRESS,
|
| + UNSUPPRESS;
|
| }
|
|
|
| /**
|
| @@ -88,6 +91,11 @@ public class OverlayPanel extends ContextualSearchPanelAnimation
|
| */
|
| private OverlayPanelHost mOverlayPanelHost;
|
|
|
| + /**
|
| + * OverlayPanel manager handle for notifications of opening and closing.
|
| + */
|
| + protected OverlayPanelManager mPanelManager;
|
| +
|
| // ============================================================================================
|
| // Constructor
|
| // ============================================================================================
|
| @@ -95,10 +103,15 @@ public class OverlayPanel extends ContextualSearchPanelAnimation
|
| /**
|
| * @param context The current Android {@link Context}.
|
| * @param updateHost The {@link LayoutUpdateHost} used to request updates in the Layout.
|
| + * @param panelManager The {@link OverlayPanelManager} responsible for showing panels.
|
| */
|
| - public OverlayPanel(Context context, LayoutUpdateHost updateHost) {
|
| + public OverlayPanel(Context context, LayoutUpdateHost updateHost,
|
| + OverlayPanelManager panelManager) {
|
| super(context, updateHost);
|
| mContentFactory = this;
|
| +
|
| + mPanelManager = panelManager;
|
| + mPanelManager.registerPanel(this);
|
| }
|
|
|
| /**
|
| @@ -110,6 +123,7 @@ public class OverlayPanel extends ContextualSearchPanelAnimation
|
|
|
| @Override
|
| protected void onClosed(StateChangeReason reason) {
|
| + mPanelManager.notifyPanelClosed(this, reason);
|
| destroy();
|
| }
|
|
|
| @@ -144,6 +158,23 @@ public class OverlayPanel extends ContextualSearchPanelAnimation
|
| }
|
|
|
| /**
|
| + * Request that this panel be shown.
|
| + * @param reason The reason the panel is being shown.
|
| + */
|
| + public void requestPanelShow(StateChangeReason reason) {
|
| + if (mPanelManager != null) {
|
| + mPanelManager.requestPanelShow(this, reason);
|
| + }
|
| + }
|
| +
|
| + @Override
|
| + public void peekPanel(StateChangeReason reason) {
|
| + // TODO(mdjones): This is making a protected API public and should be removed. Animation
|
| + // should only be controlled by the OverlayPanelManager.
|
| + super.peekPanel(reason);
|
| + }
|
| +
|
| + /**
|
| * @param url The URL that the panel should load.
|
| */
|
| public void loadUrlInPanel(String url) {
|
| @@ -173,6 +204,37 @@ public class OverlayPanel extends ContextualSearchPanelAnimation
|
| mActivity = activity;
|
| }
|
|
|
| + /**
|
| + * Notify the panel's content that it has been touched.
|
| + */
|
| + public void notifyPanelTouched() {
|
| + getOverlayPanelContent().notifyPanelTouched();
|
| + }
|
| +
|
| + /**
|
| + * Acknowledges that there was a touch in the search content view, though no immediate action
|
| + * needs to be taken. This should be overridden by child classes.
|
| + * TODO(mdjones): Get a better name for this.
|
| + */
|
| + public void onTouchSearchContentViewAck() {
|
| + }
|
| +
|
| + /**
|
| + * Get a panel's display priority. This has a default to MEDIUM and should be overridden by
|
| + * child classes.
|
| + * @return The panel's display priority.
|
| + */
|
| + public PanelPriority getPriority() {
|
| + return PanelPriority.MEDIUM;
|
| + }
|
| +
|
| + /**
|
| + * @return True if a panel can be suppressed. This should be overridden by each panel.
|
| + */
|
| + public boolean canBeSuppressed() {
|
| + return false;
|
| + }
|
| +
|
| // ============================================================================================
|
| // Content
|
| // ============================================================================================
|
|
|