From 65d9ceb383c95c125b7faae4d7c32215f1ccb573 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Mon, 8 May 2017 09:17:42 -0700 Subject: [PATCH] Disabling page fling while the overlay is moving Bug: 37959201 Change-Id: I2278a46d10bc81855e10f97e669460e0d0b93daa --- src/com/android/launcher3/PagedView.java | 6 +++++- src/com/android/launcher3/Workspace.java | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index 31e3dda328..255677a539 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -1599,7 +1599,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc mTotalMotionX += Math.abs(mLastMotionX + mLastMotionXRemainder - x); boolean isFling = mTotalMotionX > MIN_LENGTH_FOR_FLING && - Math.abs(velocityX) > mFlingThresholdVelocity; + shouldFlingForVelocity(velocityX); if (!mFreeScroll) { // In the case that the page is moved far to one direction and then is flung @@ -1705,6 +1705,10 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc return true; } + protected boolean shouldFlingForVelocity(int velocityX) { + return Math.abs(velocityX) > mFlingThresholdVelocity; + } + private void resetTouchState() { releaseVelocityTracker(); endReordering(); diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index dd2daca571..ead1a9f83b 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -1462,6 +1462,13 @@ public class Workspace extends PagedView } } + @Override + protected boolean shouldFlingForVelocity(int velocityX) { + // When the overlay is moving, the fling or settle transition is controlled by the overlay. + return Float.compare(mOverlayTranslation, 0) == 0 && + super.shouldFlingForVelocity(velocityX); + } + private final Interpolator mAlphaInterpolator = new DecelerateInterpolator(3f); /**