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

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: 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/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..a68dae93d0752d1fa0475c55ff08637afe34741a 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) {
+ if (!mIsInitialized && resourceManager != null) {
+ nativeCreateContextualSearchLayer(mNativePtr, resourceManager);
pedro (no code reviews) 2016/05/04 22:59:34 Can we only create the layer when it becomes visib
mdjones 2016/05/05 00:46:20 With the follow-up change, that will be the case.
pedro (no code reviews) 2016/05/05 01:40:52 The follow-up change will prevent this update() me
mdjones 2016/05/05 17:48:34 Unfortunately, no. The scene layer needs to exist
pedro (no code reviews) 2016/05/05 19:12:15 I'm asking to not create the *ContextualSearch* la
mdjones 2016/05/05 20:46:02 Yes, because at this level, the two are indistingu
+ mIsInitialized = true;
+ }
+
+ // Don't try to update the layer if not initialized or showing.
+ if (!mIsInitialized || !panel.isShowing()) return;
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);
+ }
+
+ /**
+ * Hide the layer tree; for use if the panel is not being shown.
+ */
+ public void hideTree() {
+ nativeHideTree(mNativePtr);
}
@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