Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3918)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanel.java

Issue 1417793003: OverlayPanel Manager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove-delegate-users
Patch Set: redundant null checks... Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
// ============================================================================================
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698