Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ReaderModeSceneLayer.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ReaderModeSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ReaderModeSceneLayer.java |
index 157c5f04298c4dff43d45952795dd4762d8c32c6..2b08a78fadb8bba8b1acc9aa383642d17ff253d5 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ReaderModeSceneLayer.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ReaderModeSceneLayer.java |
@@ -14,7 +14,7 @@ import org.chromium.ui.resources.ResourceManager; |
* A SceneLayer to render layers for Reader Mode. |
*/ |
@JNINamespace("chrome::android") |
-public class ReaderModeSceneLayer extends SceneLayer { |
+public class ReaderModeSceneLayer extends SceneOverlayLayer { |
/** Pointer to native ReaderModeSceneLayer. */ |
private long mNativePtr; |
@@ -41,7 +41,10 @@ public class ReaderModeSceneLayer extends SceneLayer { |
*/ |
public void update(ResourceManager resourceManager, OverlayPanel panel, int barTextViewId, |
float barTextOpacity) { |
- if (!mIsInitialized && resourceManager != null) { |
+ // Don't try to update the layer if not initialized or showing. |
+ if (resourceManager == null || !panel.isShowing()) return; |
+ |
+ if (!mIsInitialized) { |
nativeCreateReaderModeLayer(mNativePtr, resourceManager); |
// TODO(mdjones): Rename contextual search resources below to be generic to overlay |
// panels. |
@@ -54,10 +57,10 @@ public class ReaderModeSceneLayer extends SceneLayer { |
mIsInitialized = true; |
} |
- // Don't try to update the layer if not initialized. |
- if (!mIsInitialized) return; |
nativeUpdate(mNativePtr, |
mDpToPx, |
+ panel.getBasePageBrightness(), |
+ panel.getBasePageY() * mDpToPx, |
panel.getContentViewCore(), |
panel.getOffsetX() * mDpToPx, |
panel.getOffsetY() * mDpToPx, |
@@ -73,6 +76,19 @@ public class ReaderModeSceneLayer extends SceneLayer { |
} |
@Override |
+ public void setContentTree(SceneLayer contentTree) { |
+ nativeSetContentTree(mNativePtr, contentTree); |
+ } |
+ |
+ /** |
+ * Hide the layer tree; for use if the panel is not being shown. |
+ */ |
+ public void hideTree() { |
+ if (!mIsInitialized) return; |
+ nativeHideTree(mNativePtr); |
+ } |
+ |
+ @Override |
protected void initializeNative() { |
if (mNativePtr == 0) { |
mNativePtr = nativeInit(); |
@@ -94,6 +110,11 @@ public class ReaderModeSceneLayer extends SceneLayer { |
private native void nativeCreateReaderModeLayer( |
long nativeReaderModeSceneLayer, |
ResourceManager resourceManager); |
+ private native void nativeSetContentTree( |
+ long nativeReaderModeSceneLayer, |
+ SceneLayer contentTree); |
+ private native void nativeHideTree( |
+ long nativeReaderModeSceneLayer); |
private native void nativeSetResourceIds( |
long nativeReaderModeSceneLayer, |
int barTextResourceId, |
@@ -104,6 +125,8 @@ public class ReaderModeSceneLayer extends SceneLayer { |
private native void nativeUpdate( |
long nativeReaderModeSceneLayer, |
float dpToPx, |
+ float basePageBrightness, |
+ float basePageYOffset, |
ContentViewCore contentViewCore, |
float panelX, |
float panelY, |