diff options
author | Tony Wickham <twickham@google.com> | 2019-09-18 09:24:03 -0700 |
---|---|---|
committer | Tony Wickham <twickham@google.com> | 2019-09-18 11:04:37 -0700 |
commit | a0aee21fcd9efe24e974c46827fef2f14cb30119 (patch) | |
tree | c2e2d2e0daf31456ea557a934e9c3e18833b7e45 /src | |
parent | 24fb1526e24c4e791f7c1792ad1962730072bb4b (diff) | |
download | android_packages_apps_Trebuchet-a0aee21fcd9efe24e974c46827fef2f14cb30119.tar.gz android_packages_apps_Trebuchet-a0aee21fcd9efe24e974c46827fef2f14cb30119.tar.bz2 android_packages_apps_Trebuchet-a0aee21fcd9efe24e974c46827fef2f14cb30119.zip |
Update mIsBeingDragged in onTouchEvent(ACTION_DOWN)
The logic to keep mIsBeingDragged when touching down during a scroll
animation was in onInterceptTouchEvent(), which we were bypassing by
using onTouchEvent() directly. Now we update mIsBeingDragged on touch
down in both onInterceptTouchEvent() and in onTouchEvent().
Bug: 141024521
Change-Id: I77abd4c36f3ccee27e160c817dadb3923e6cfc06
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher3/PagedView.java | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index bbb3915b5..70b55a44d 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -890,23 +890,7 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou mTotalMotionX = 0; mActivePointerId = ev.getPointerId(0); - /* - * If being flinged and user touches the screen, initiate drag; - * otherwise don't. mScroller.isFinished should be false when - * being flinged. - */ - final int xDist = Math.abs(mScroller.getFinalPos() - mScroller.getCurrPos()); - final boolean finishedScrolling = (mScroller.isFinished() || xDist < mTouchSlop / 3); - - if (finishedScrolling) { - mIsBeingDragged = false; - if (!mScroller.isFinished() && !mFreeScroll) { - setCurrentPage(getNextPage()); - pageEndTransition(); - } - } else { - mIsBeingDragged = true; - } + updateIsBeingDraggedOnTouchDown(); break; } @@ -929,6 +913,25 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou return mIsBeingDragged; } + /** + * If being flinged and user touches the screen, initiate drag; otherwise don't. + */ + private void updateIsBeingDraggedOnTouchDown() { + // mScroller.isFinished should be false when being flinged. + final int xDist = Math.abs(mScroller.getFinalPos() - mScroller.getCurrPos()); + final boolean finishedScrolling = (mScroller.isFinished() || xDist < mTouchSlop / 3); + + if (finishedScrolling) { + mIsBeingDragged = false; + if (!mScroller.isFinished() && !mFreeScroll) { + setCurrentPage(getNextPage()); + pageEndTransition(); + } + } else { + mIsBeingDragged = true; + } + } + public boolean isHandlingTouch() { return mIsBeingDragged; } @@ -1104,6 +1107,8 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou switch (action & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: + updateIsBeingDraggedOnTouchDown(); + /* * If being flinged and user touches, stop the fling. isFinished * will be false if being flinged. |