Index: chrome/android/java/src/org/chromium/chrome/browser/banners/SwipableOverlayView.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/banners/SwipableOverlayView.java b/chrome/android/java/src/org/chromium/chrome/browser/banners/SwipableOverlayView.java |
index 90486f4438c719d65549b60f9702e4edcb910201..aa655442131e35e9146ed69de7663a09da07c869 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/banners/SwipableOverlayView.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/banners/SwipableOverlayView.java |
@@ -21,14 +21,14 @@ import android.view.animation.DecelerateInterpolator; |
import android.view.animation.Interpolator; |
import android.widget.FrameLayout; |
-import org.chromium.content.browser.ContentView; |
+import org.chromium.content.browser.ContentViewCore; |
import org.chromium.content_public.browser.GestureStateListener; |
import org.chromium.ui.UiUtils; |
/** |
* View that appears on the screen as the user scrolls on the page and can be swiped away. |
- * Meant to be tacked onto the {@link org.chromium.content.browser.ContentView} layer and alerted |
- * when either the page scroll position or viewport size changes. |
+ * Meant to be tacked onto the {@link org.chromium.content.browser.ContentViewCore}'s view and |
+ * alerted when either the page scroll position or viewport size changes. |
* |
* GENERAL BEHAVIOR |
* This View is brought onto the screen by sliding upwards from the bottom of the screen. Afterward |
@@ -90,7 +90,7 @@ public abstract class SwipableOverlayView extends FrameLayout { |
// Detects when the user is dragging the View. |
private final GestureDetector mGestureDetector; |
- // Detects when the user is dragging the ContentView. |
+ // Detects when the user is dragging the ContentViewCore. |
private final GestureStateListener mGestureStateListener; |
// Monitors for animation completions and resets the state. |
@@ -132,6 +132,9 @@ public abstract class SwipableOverlayView extends FrameLayout { |
// Whether or not the View has been, or is being, dismissed. |
private boolean mIsDismissed; |
+ // The ContentViewCore to which the overlay is added. |
+ private ContentViewCore mContentViewCore; |
+ |
/** |
* Creates a SwipableOverlayView. |
* @param context Context for acquiring resources. |
@@ -148,12 +151,14 @@ public abstract class SwipableOverlayView extends FrameLayout { |
} |
/** |
- * Adds this View to the given ContentView. |
+ * Adds this View to the given ContentViewCore's view. |
* @param layout Layout to add this View to. |
*/ |
- protected void addToView(ContentView contentView) { |
- contentView.addView(this, 0, createLayoutParams()); |
- contentView.getContentViewCore().addGestureStateListener(mGestureStateListener); |
+ protected void addToView(ContentViewCore contentViewCore) { |
+ assert mContentViewCore == null; |
+ mContentViewCore = contentViewCore; |
+ contentViewCore.getContainerView().addView(this, 0, createLayoutParams()); |
+ contentViewCore.addGestureStateListener(mGestureStateListener); |
// Listen for the layout to know when to animate the View coming onto the screen. |
addOnLayoutChangeListener(createLayoutChangeListener()); |
@@ -173,10 +178,9 @@ public abstract class SwipableOverlayView extends FrameLayout { |
* Removes the View from its parent. |
*/ |
boolean removeFromParent() { |
- if (getParent() instanceof ContentView) { |
- ContentView parent = (ContentView) getParent(); |
- parent.removeView(this); |
- parent.getContentViewCore().removeGestureStateListener(mGestureStateListener); |
+ if (mContentViewCore != null) { |
+ mContentViewCore.getContainerView().removeView(this); |
+ mContentViewCore = null; |
return true; |
} |
return false; |