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); |
} |