summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2019-09-18 09:24:03 -0700
committerTony Wickham <twickham@google.com>2019-09-18 11:04:37 -0700
commita0aee21fcd9efe24e974c46827fef2f14cb30119 (patch)
treec2e2d2e0daf31456ea557a934e9c3e18833b7e45 /src
parent24fb1526e24c4e791f7c1792ad1962730072bb4b (diff)
downloadandroid_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.java39
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.