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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ContextualSearchSupportedLayout.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
Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ContextualSearchSupportedLayout.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ContextualSearchSupportedLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ContextualSearchSupportedLayout.java
index 8071843df5fbb1d73ca1e01bb1ef95e9dd9eb89a..906b7a11eeb132c606066d446346fe491aadd04b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ContextualSearchSupportedLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ContextualSearchSupportedLayout.java
@@ -12,6 +12,7 @@ import android.view.ViewGroup;
import org.chromium.chrome.browser.compositor.LayerTitleCache;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelHost;
+import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager;
import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter;
import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer;
@@ -34,9 +35,9 @@ public abstract class ContextualSearchSupportedLayout extends Layout {
protected final OverlayPanelHost mOverlayPanelHost;
/**
- * The {@link OverlayPanel} that represents the Contextual Search UI.
+ * The {@link OverlayPanelManager} used to get the active panel.
*/
- protected final OverlayPanel mSearchPanel;
+ protected final OverlayPanelManager mPanelManager;
/**
* Size of half pixel in dps.
@@ -48,10 +49,11 @@ public abstract class ContextualSearchSupportedLayout extends Layout {
* @param updateHost The {@link LayoutUpdateHost} view for this layout.
* @param renderHost The {@link LayoutRenderHost} view for this layout.
* @param eventFilter The {@link EventFilter} that is needed for this view.
- * @param panel The {@link OverlayPanel} that represents the Contextual Search UI.
+ * @param panelManager The {@link OverlayPanelManager} responsible for showing panels.
*/
public ContextualSearchSupportedLayout(Context context, LayoutUpdateHost updateHost,
- LayoutRenderHost renderHost, EventFilter eventFilter, OverlayPanel panel) {
+ LayoutRenderHost renderHost, EventFilter eventFilter,
+ OverlayPanelManager panelManager) {
super(context, updateHost, renderHost, eventFilter);
mOverlayPanelHost = new OverlayPanelHost() {
@@ -61,22 +63,23 @@ public abstract class ContextualSearchSupportedLayout extends Layout {
}
};
- mSearchPanel = panel;
+ mPanelManager = panelManager;
float dpToPx = context.getResources().getDisplayMetrics().density;
mHalfPixelDp = 0.5f / dpToPx;
}
@Override
public void attachViews(ViewGroup container) {
- mSearchPanel.setContainerView(container);
+ mPanelManager.setContainerView(container);
}
@Override
public void getAllViews(List<View> views) {
// TODO(dtrainor): If we move ContextualSearch to an overlay, pull the views from there
// instead in Layout.java.
- if (mSearchPanel != null) {
- ContentViewCore content = mSearchPanel.getContentViewCore();
+ OverlayPanel panel = mPanelManager.getActivePanel();
+ if (panel != null) {
+ ContentViewCore content = panel.getContentViewCore();
if (content != null) views.add(content.getContainerView());
}
super.getAllViews(views);
@@ -86,9 +89,9 @@ public abstract class ContextualSearchSupportedLayout extends Layout {
public void getAllContentViewCores(List<ContentViewCore> contents) {
// TODO(dtrainor): If we move ContextualSearch to an overlay, pull the content from there
// instead in Layout.java.
- if (mSearchPanel != null) {
- ContentViewCore content =
- mSearchPanel.getContentViewCore();
+ OverlayPanel panel = mPanelManager.getActivePanel();
+ if (panel != null) {
+ ContentViewCore content = panel.getContentViewCore();
if (content != null) contents.add(content);
}
super.getAllContentViewCores(contents);
@@ -96,7 +99,7 @@ public abstract class ContextualSearchSupportedLayout extends Layout {
@Override
public void show(long time, boolean animate) {
- mSearchPanel.setHost(mOverlayPanelHost);
+ mPanelManager.setPanelHost(mOverlayPanelHost);
super.show(time, animate);
}
@@ -117,19 +120,23 @@ public abstract class ContextualSearchSupportedLayout extends Layout {
// visible. For this reason, we're comparing to see if the difference between them
// is less than half pixel. If so, it means the Toolbar is visible.
final boolean isToolbarVisible = getHeight() - getHeightMinusTopControls() <= mHalfPixelDp;
- mSearchPanel.onSizeChanged(width, height, isToolbarVisible);
+
+ mPanelManager.onSizeChanged(width, height, isToolbarVisible);
}
@Override
protected boolean onUpdateAnimation(long time, boolean jumpToEnd) {
boolean parentAnimating = super.onUpdateAnimation(time, jumpToEnd);
- boolean panelAnimating = mSearchPanel.onUpdateAnimation(time, jumpToEnd);
+ OverlayPanel panel = mPanelManager.getActivePanel();
+ boolean panelAnimating = panel != null && panel.onUpdateAnimation(time, jumpToEnd);
return panelAnimating || parentAnimating;
}
@Override
protected SceneLayer getSceneLayer() {
- return mSearchPanel.getSceneLayer();
+ OverlayPanel panel = mPanelManager.getActivePanel();
+ if (panel == null) return null;
+ return panel.getSceneLayer();
}
@Override
@@ -138,8 +145,9 @@ public abstract class ContextualSearchSupportedLayout extends Layout {
ResourceManager resourceManager, ChromeFullscreenManager fullscreenManager) {
super.updateSceneLayer(viewport, contentViewport, layerTitleCache, tabContentManager,
resourceManager, fullscreenManager);
- if (!mSearchPanel.isShowing()) return;
+ OverlayPanel panel = mPanelManager.getActivePanel();
+ if (panel == null || !panel.isShowing()) return;
- mSearchPanel.updateSceneLayer(resourceManager);
+ panel.updateSceneLayer(resourceManager);
}
}

Powered by Google App Engine
This is Rietveld 408576698