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

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

Issue 1716653002: Implement OverlayPanels as SceneOverlays (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 8 months 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/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);
}

Powered by Google App Engine
This is Rietveld 408576698