Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java |
| index bd9dc361f4ca6f52f149966704ce50987c1325db..ba4234f59cfe29270e027916d7b6ba65dd9caec7 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java |
| @@ -11,7 +11,9 @@ import android.os.Handler; |
| import org.chromium.base.ActivityState; |
| import org.chromium.base.ApiCompatibilityUtils; |
| import org.chromium.base.VisibleForTesting; |
| + |
| import org.chromium.chrome.R; |
| +import org.chromium.chrome.browser.compositor.LayerTitleCache; |
| import org.chromium.chrome.browser.compositor.bottombar.OverlayContentProgressObserver; |
| import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel; |
| import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelContent; |
| @@ -19,10 +21,12 @@ import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager; |
| import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager.PanelPriority; |
| import org.chromium.chrome.browser.compositor.bottombar.contextualsearch.ContextualSearchPromoControl.ContextualSearchPromoHost; |
| import org.chromium.chrome.browser.compositor.layouts.LayoutUpdateHost; |
| +import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilterHost; |
| import org.chromium.chrome.browser.compositor.scene_layer.ContextualSearchSceneLayer; |
| -import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer; |
| +import org.chromium.chrome.browser.compositor.scene_layer.SceneOverlayLayer; |
| import org.chromium.chrome.browser.contextualsearch.ContextualSearchManagementDelegate; |
| import org.chromium.chrome.browser.util.MathUtils; |
| +import org.chromium.content.browser.ContentViewCore; |
| import org.chromium.ui.resources.ResourceManager; |
| /** |
| @@ -72,12 +76,12 @@ public class ContextualSearchPanel extends OverlayPanel { |
| /** |
| * @param context The current Android {@link Context}. |
| * @param updateHost The {@link LayoutUpdateHost} used to request updates in the Layout. |
| + * @param eventHost The {@link EventFilterHost} for propagating events. |
| * @param panelManager The object managing the how different panels are shown. |
| */ |
| public ContextualSearchPanel(Context context, LayoutUpdateHost updateHost, |
| - OverlayPanelManager panelManager) { |
| - super(context, updateHost, panelManager); |
| - |
| + EventFilterHost eventHost, OverlayPanelManager panelManager) { |
| + super(context, updateHost, eventHost, panelManager); |
| mSceneLayer = createNewContextualSearchSceneLayer(); |
| mPanelMetrics = new ContextualSearchPanelMetrics(); |
| @@ -124,30 +128,34 @@ public class ContextualSearchPanel extends OverlayPanel { |
| } |
| // ============================================================================================ |
| - // Scene layer |
| + // Scene Overlay |
| // ============================================================================================ |
| - @Override |
| - public SceneLayer getSceneLayer() { |
| - return mSceneLayer; |
| + /** |
| + * Create a new scene layer for this panel. This should be overridden by tests as necessary. |
| + */ |
| + protected ContextualSearchSceneLayer createNewContextualSearchSceneLayer() { |
| + return new ContextualSearchSceneLayer(mContext.getResources().getDisplayMetrics().density); |
| } |
| @Override |
| - public void updateSceneLayer(ResourceManager resourceManager) { |
| - if (mSceneLayer == null) return; |
| - |
| + public SceneOverlayLayer getUpdatedSceneOverlayTree(LayerTitleCache layerTitleCache, |
| + ResourceManager resourceManager, float yOffset) { |
| + if (isShowing()) { |
| + updateContentFocus(); |
|
pedro (no code reviews)
2016/04/22 02:11:05
I think we should only call the code to focus/unfo
mdjones
2016/04/22 17:03:41
The contentviewcore may not be created by the time
|
| + } |
|
Theresa
2016/04/21 21:22:38
Not knowing the history of this code particularly
mdjones
2016/04/22 17:03:42
mSceneLayer is built in the constructor. The creat
|
| mSceneLayer.update(resourceManager, this, |
| getSearchBarControl(), |
| getPeekPromoControl(), |
| getPromoControl(), |
| getIconSpriteControl()); |
| + |
| + return mSceneLayer; |
| } |
| - /** |
| - * Create a new scene layer for this panel. This should be overridden by tests as necessary. |
| - */ |
| - protected ContextualSearchSceneLayer createNewContextualSearchSceneLayer() { |
| - return new ContextualSearchSceneLayer(mContext.getResources().getDisplayMetrics().density); |
| + private void focusBasePage() { |
| + ContentViewCore baseContentView = mActivity.getActivityTab().getContentViewCore(); |
| + |
|
Theresa
2016/04/21 21:22:38
Left over method? It doesn't look like this is use
mdjones
2016/04/22 17:03:42
Definitely a method I cut the code from and forgot
|
| } |
| // ============================================================================================ |
| @@ -257,6 +265,8 @@ public class ContextualSearchPanel extends OverlayPanel { |
| setProgressBarVisible(false); |
| super.onClosed(reason); |
| + |
| + if (mSceneLayer != null) mSceneLayer.hideTree(); |
|
pedro (no code reviews)
2016/04/22 02:11:05
Can't this be done by the OverlayPanel class?
mdjones
2016/04/22 17:03:41
OverlayPanel currently doesn't have a concept of S
|
| } |
| // ============================================================================================ |
| @@ -329,11 +339,6 @@ public class ContextualSearchPanel extends OverlayPanel { |
| } |
| @Override |
| - public boolean supportsContextualSearchLayout() { |
| - return mManagementDelegate != null && !mManagementDelegate.isRunningInCompatibilityMode(); |
| - } |
| - |
| - @Override |
| public void notifyBarTouched(float x) { |
| if (canDisplayContentInPanel()) { |
| getOverlayPanelContent().showContent(); |