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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer.java

Issue 1716653002: Implement OverlayPanels as SceneOverlays (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add todo, remove extra check in reader Created 4 years, 7 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/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..fefab47a87462f9afa222da69b5e2c0fb28777ea 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,19 @@ public class ContextualSearchSceneLayer extends SceneLayer {
isProgressBarVisible,
progressBarHeight * mDpToPx,
progressBarOpacity,
- progressBarCompletion,
- resourceManager);
+ progressBarCompletion);
+ }
+
+ @Override
+ public void setContentTree(SceneLayer contentTree) {
+ nativeSetContentTree(mNativePtr, contentTree);
David Trainor- moved to gerrit 2016/05/13 16:14:34 Should we check mIsInitialized?
mdjones 2016/05/13 20:30:07 This is still needed because the content layer nee
+ }
+
+ /**
+ * Hide the layer tree; for use if the panel is not being shown.
+ */
+ public void hideTree() {
+ nativeHideTree(mNativePtr);
David Trainor- moved to gerrit 2016/05/13 16:14:34 Same here
mdjones 2016/05/13 20:30:07 This technically wouldn't crash, but it does save
}
@Override
@@ -159,10 +182,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 +212,8 @@ public class ContextualSearchSceneLayer extends SceneLayer {
int peekPromoRippleResourceId,
int peekPromoTextResourceId,
float dpToPx,
+ float basePageBrightness,
+ float basePageYOffset,
ContentViewCore contentViewCore,
boolean searchPromoVisible,
float searchPromoHeight,
@@ -211,6 +245,5 @@ public class ContextualSearchSceneLayer extends SceneLayer {
boolean isProgressBarVisible,
float progressBarHeight,
float progressBarOpacity,
- int progressBarCompletion,
- ResourceManager resourceManager);
+ int progressBarCompletion);
}

Powered by Google App Engine
This is Rietveld 408576698