| 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 0471c1c01c42ac764ef7218c853b33b87676c084..e390e2094c35fb7bfc4ae7ad2e12e5d95acb4b28 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
|
| @@ -250,10 +250,17 @@ public abstract class SwipableOverlayView extends ScrollView {
|
| protected void onAttachedToWindow() {
|
| super.onAttachedToWindow();
|
| if (!mDoStayInvisible) {
|
| - ObjectAnimator.ofFloat(this, "alpha", 0.f, 1.f).setDuration(REATTACH_FADE_IN_MS)
|
| + ObjectAnimator.ofFloat(this, View.ALPHA, 0.f, 1.f).setDuration(REATTACH_FADE_IN_MS)
|
| .start();
|
| setVisibility(VISIBLE);
|
| }
|
| + if (!isAllowedToAutoHide()) setTranslationY(0.0f);
|
| + }
|
| +
|
| + @Override
|
| + public void onWindowFocusChanged(boolean hasWindowFocus) {
|
| + super.onWindowFocusChanged(hasWindowFocus);
|
| + if (!isAllowedToAutoHide()) setTranslationY(0.0f);
|
| }
|
|
|
| /**
|
| @@ -406,7 +413,7 @@ public abstract class SwipableOverlayView extends ScrollView {
|
| return new GestureStateListener() {
|
| @Override
|
| public void onFlingStartGesture(int vx, int vy, int scrollOffsetY, int scrollExtentY) {
|
| - if (!cancelCurrentAnimation()) return;
|
| + if (!isAllowedToAutoHide() || !cancelCurrentAnimation()) return;
|
| beginGesture(scrollOffsetY, scrollExtentY);
|
| mGestureState = GESTURE_FLINGING;
|
| }
|
| @@ -442,7 +449,7 @@ public abstract class SwipableOverlayView extends ScrollView {
|
|
|
| @Override
|
| public void onScrollStarted(int scrollOffsetY, int scrollExtentY) {
|
| - if (!cancelCurrentAnimation()) return;
|
| + if (!isAllowedToAutoHide() || !cancelCurrentAnimation()) return;
|
| beginGesture(scrollOffsetY, scrollExtentY);
|
| mGestureState = GESTURE_SCROLLING;
|
| }
|
| @@ -693,6 +700,13 @@ public abstract class SwipableOverlayView extends ScrollView {
|
| }
|
|
|
| /**
|
| + * @return Whether the SwipableOverlayView is allowed to hide itself on scroll.
|
| + */
|
| + protected boolean isAllowedToAutoHide() {
|
| + return true;
|
| + }
|
| +
|
| + /**
|
| * Override gatherTransparentRegion to make this view's layout a placeholder for its
|
| * animations. This is only called during layout, so it doesn't really make sense to apply
|
| * post-layout properties like it does by default. Together with setWillNotDraw(false),
|
|
|