| 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 babdce53210f925887ae7f713c5a3738d1fd3f46..78b3703e2ba535a4ba8376b06638360d9b793bad 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
|
| @@ -18,6 +18,7 @@ import android.view.animation.DecelerateInterpolator;
|
| import android.view.animation.Interpolator;
|
| import android.widget.FrameLayout;
|
|
|
| +import org.chromium.chrome.browser.widget.animation.CancelAwareAnimatorListener;
|
| import org.chromium.content.browser.ContentViewCore;
|
| import org.chromium.content_public.browser.GestureStateListener;
|
|
|
| @@ -275,6 +276,7 @@ public abstract class SwipableOverlayView extends FrameLayout {
|
| + computeScrollDifference(scrollOffsetY, scrollExtentY);
|
| translation = Math.max(0.0f, Math.min(mTotalHeight, translation));
|
| setTranslationY(translation);
|
| + updateVisibility();
|
| }
|
| };
|
| }
|
| @@ -314,9 +316,23 @@ public abstract class SwipableOverlayView extends FrameLayout {
|
| mCurrentAnimation.setDuration(duration);
|
| mCurrentAnimation.addListener(mAnimatorListener);
|
| mCurrentAnimation.setInterpolator(mInterpolator);
|
| + mCurrentAnimation.addListener(new CancelAwareAnimatorListener() {
|
| + @Override
|
| + public void onEnd(Animator animator) {
|
| + updateVisibility();
|
| + }
|
| + });
|
| mCurrentAnimation.start();
|
| }
|
|
|
| + private void updateVisibility() {
|
| + if (getTranslationY() >= getHeight()) {
|
| + if (getVisibility() != GONE) setVisibility(GONE);
|
| + } else {
|
| + if (getVisibility() != VISIBLE) setVisibility(VISIBLE);
|
| + }
|
| + }
|
| +
|
| private int computeScrollDifference(int scrollOffsetY, int scrollExtentY) {
|
| return scrollOffsetY + scrollExtentY - mInitialOffsetY;
|
| }
|
|
|