Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/readermode/ReaderModePanel.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/readermode/ReaderModePanel.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/readermode/ReaderModePanel.java |
| index cedcb0870288cc0a76c922edd374b2bcfb7956f1..d4b42f1dbec6cc3d0398f31a34cb3e79f2a86b65 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/readermode/ReaderModePanel.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/readermode/ReaderModePanel.java |
| @@ -7,6 +7,7 @@ package org.chromium.chrome.browser.compositor.bottombar.readermode; |
| import android.content.Context; |
| import org.chromium.chrome.R; |
| +import org.chromium.chrome.browser.compositor.LayerTitleCache; |
| import org.chromium.chrome.browser.compositor.bottombar.OverlayContentDelegate; |
| import org.chromium.chrome.browser.compositor.bottombar.OverlayContentProgressObserver; |
| import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel; |
| @@ -16,8 +17,9 @@ import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelContentViewD |
| import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager; |
| import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager.PanelPriority; |
| 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.ReaderModeSceneLayer; |
| -import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer; |
| +import org.chromium.chrome.browser.compositor.scene_layer.SceneOverlayLayer; |
| import org.chromium.chrome.browser.dom_distiller.DomDistillerTabUtils; |
| import org.chromium.chrome.browser.dom_distiller.ReaderModeManagerDelegate; |
| import org.chromium.chrome.browser.externalnav.ExternalNavigationHandler; |
| @@ -57,11 +59,14 @@ public class ReaderModePanel 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 {@link OverlayPanelManager} used to control panel show/hide. |
| + * @param contentViewDelegate Notifies the activity that a ContentViewCore has been created. |
| */ |
| - public ReaderModePanel(Context context, LayoutUpdateHost updateHost, |
| + public ReaderModePanel(Context context, LayoutUpdateHost updateHost, EventFilterHost eventHost, |
| OverlayPanelManager panelManager, |
| OverlayPanelContentViewDelegate contentViewDelegate) { |
| - super(context, updateHost, panelManager); |
| + super(context, updateHost, eventHost, panelManager); |
| mSceneLayer = createNewReaderModeSceneLayer(); |
| mContentViewDelegate = contentViewDelegate; |
| } |
| @@ -115,30 +120,35 @@ public class ReaderModePanel extends OverlayPanel { |
| } |
| // ============================================================================================ |
| - // Scene layer |
| + // Scene Overlay |
| // ============================================================================================ |
| + /** |
| + * Create a new scene layer for this panel. This should be overridden by tests as necessary. |
| + */ |
| + protected ReaderModeSceneLayer createNewReaderModeSceneLayer() { |
| + return new ReaderModeSceneLayer(mContext.getResources().getDisplayMetrics().density); |
| + } |
| + |
| @Override |
| - public SceneLayer getSceneLayer() { |
| + public SceneOverlayLayer getUpdatedSceneOverlayTree(LayerTitleCache layerTitleCache, |
| + ResourceManager resourceManager, float yOffset) { |
| + if (isPanelOpened()) { |
|
pedro (no code reviews)
2016/05/04 22:59:34
As I said before, this method should not have any
mdjones
2016/05/05 00:46:20
Moved.
|
| + focusPanelContent(); |
| + } |
| + |
| + mSceneLayer.update(resourceManager, this, getBarTextViewId(), mReaderBarTextOpacity); |
| + |
| return mSceneLayer; |
| } |
| @Override |
| - public void updateSceneLayer(ResourceManager resourceManager) { |
| - if (mSceneLayer == null) return; |
| - |
| + public boolean updateOverlay(long time, long dt) { |
| // This will cause the ContentViewCore to size itself appropriately for the panel (includes |
| // top controls height). |
| updateTopControlsState(); |
| - mSceneLayer.update(resourceManager, this, getBarTextViewId(), mReaderBarTextOpacity); |
| - } |
| - |
| - /** |
| - * Create a new scene layer for this panel. This should be overridden by tests as necessary. |
| - */ |
| - protected ReaderModeSceneLayer createNewReaderModeSceneLayer() { |
| - return new ReaderModeSceneLayer(mContext.getResources().getDisplayMetrics().density); |
| + return super.updateOverlay(time, dt); |
| } |
| // ============================================================================================ |
| @@ -275,6 +285,7 @@ public class ReaderModePanel extends OverlayPanel { |
| @Override |
| protected void onClosed(StateChangeReason reason) { |
| super.onClosed(reason); |
| + if (mSceneLayer != null) mSceneLayer.hideTree(); |
| if (mManagerDelegate == null) return; |
| mManagerDelegate.onClosed(reason); |
| } |