Chromium Code Reviews| 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..cdf8850e36634836ff33c292ae0a785aefd3fffe 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,18 @@ public class ReaderModeSceneLayer extends SceneLayer { |
| } |
| @Override |
| + public void setContentTree(SceneLayer contentTree) { |
| + nativeSetContentTree(mNativePtr, contentTree); |
|
David Trainor- moved to gerrit
2016/05/13 16:14:34
Should we check mIsInitialized for this and below?
mdjones
2016/05/13 20:30:07
Done.
|
| + } |
| + |
| + /** |
| + * Hide the layer tree; for use if the panel is not being shown. |
| + */ |
| + public void hideTree() { |
| + nativeHideTree(mNativePtr); |
| + } |
| + |
| + @Override |
| protected void initializeNative() { |
| if (mNativePtr == 0) { |
| mNativePtr = nativeInit(); |
| @@ -94,6 +109,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 +124,8 @@ public class ReaderModeSceneLayer extends SceneLayer { |
| private native void nativeUpdate( |
| long nativeReaderModeSceneLayer, |
| float dpToPx, |
| + float basePageBrightness, |
| + float basePageYOffset, |
| ContentViewCore contentViewCore, |
| float panelX, |
| float panelY, |