| Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer.java
|
| index df3a5811d30c8ac17afa9c932212f332f7556837..e7755d5245c27d890da62c151b230b46fb91e626 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer.java
|
| @@ -18,12 +18,15 @@ import org.chromium.ui.resources.ResourceManager;
|
| * A SceneLayer to render layers for ContextualSearchLayout.
|
| */
|
| @JNINamespace("chrome::android")
|
| -public class ContextualSearchSceneLayer extends SceneLayer {
|
| +public class ContextualSearchSceneLayer extends SceneOverlayLayer {
|
|
|
| // NOTE: If you use SceneLayer's native pointer here, the JNI generator will try to
|
| // downcast using reinterpret_cast<>. We keep a separate pointer to avoid it.
|
| private long mNativePtr;
|
|
|
| + /** If the scene layer has been initialized. */
|
| + private boolean mIsInitialized;
|
| +
|
| private final float mDpToPx;
|
|
|
| public ContextualSearchSceneLayer(float dpToPx) {
|
| @@ -44,6 +47,13 @@ public class ContextualSearchSceneLayer extends SceneLayer {
|
| ContextualSearchPeekPromoControl peekPromoControl,
|
| ContextualSearchPromoControl promoControl,
|
| ContextualSearchIconSpriteControl spriteControl) {
|
| + // Don't try to update the layer if not initialized or showing.
|
| + if (resourceManager == null || !panel.isShowing()) return;
|
| +
|
| + if (!mIsInitialized) {
|
| + nativeCreateContextualSearchLayer(mNativePtr, resourceManager);
|
| + mIsInitialized = true;
|
| + }
|
|
|
| int searchContextViewId = searchBarControl.getSearchContextViewId();
|
| int searchTermViewId = searchBarControl.getSearchTermViewId();
|
| @@ -110,6 +120,8 @@ public class ContextualSearchSceneLayer extends SceneLayer {
|
| R.drawable.contextual_search_promo_ripple,
|
| searchPeekPromoTextViewId,
|
| mDpToPx,
|
| + panel.getBasePageBrightness(),
|
| + panel.getBasePageY() * mDpToPx,
|
| panel.getContentViewCore(),
|
| searchPromoVisible,
|
| searchPromoHeightPx,
|
| @@ -141,8 +153,20 @@ public class ContextualSearchSceneLayer extends SceneLayer {
|
| isProgressBarVisible,
|
| progressBarHeight * mDpToPx,
|
| progressBarOpacity,
|
| - progressBarCompletion,
|
| - resourceManager);
|
| + progressBarCompletion);
|
| + }
|
| +
|
| + @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
|
| @@ -159,10 +183,19 @@ public class ContextualSearchSceneLayer extends SceneLayer {
|
| @Override
|
| public void destroy() {
|
| super.destroy();
|
| + mIsInitialized = false;
|
| mNativePtr = 0;
|
| }
|
|
|
| private native long nativeInit();
|
| + private native void nativeCreateContextualSearchLayer(
|
| + long nativeContextualSearchSceneLayer,
|
| + ResourceManager resourceManager);
|
| + private native void nativeSetContentTree(
|
| + long nativeContextualSearchSceneLayer,
|
| + SceneLayer contentTree);
|
| + private native void nativeHideTree(
|
| + long nativeContextualSearchSceneLayer);
|
| private native void nativeUpdateContextualSearchLayer(
|
| long nativeContextualSearchSceneLayer,
|
| int searchBarBackgroundResourceId,
|
| @@ -180,6 +213,8 @@ public class ContextualSearchSceneLayer extends SceneLayer {
|
| int peekPromoRippleResourceId,
|
| int peekPromoTextResourceId,
|
| float dpToPx,
|
| + float basePageBrightness,
|
| + float basePageYOffset,
|
| ContentViewCore contentViewCore,
|
| boolean searchPromoVisible,
|
| float searchPromoHeight,
|
| @@ -211,6 +246,5 @@ public class ContextualSearchSceneLayer extends SceneLayer {
|
| boolean isProgressBarVisible,
|
| float progressBarHeight,
|
| float progressBarOpacity,
|
| - int progressBarCompletion,
|
| - ResourceManager resourceManager);
|
| + int progressBarCompletion);
|
| }
|
|
|