diff options
author | Winson Chung <winsonc@google.com> | 2015-10-14 20:42:21 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-10-14 20:42:21 +0000 |
commit | c7a873e356e1caa815c1830ae37a6ffb3ecf480f (patch) | |
tree | 3f3d9a48a24809aa5969fd98d43e21e21ce72b5d /packages | |
parent | b7e722b88fab8b67f8a2ef54a7acb8c6672b6f46 (diff) | |
parent | c14a11e88241cb0b75f98a9af2c4061d14e1b4a6 (diff) | |
download | frameworks_base-c7a873e356e1caa815c1830ae37a6ffb3ecf480f.zip frameworks_base-c7a873e356e1caa815c1830ae37a6ffb3ecf480f.tar.gz frameworks_base-c7a873e356e1caa815c1830ae37a6ffb3ecf480f.tar.bz2 |
Merge "Ensure we update the active pointer id on pointer up/down." into mnc-dr-dev
Diffstat (limited to 'packages')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java index 2e0b80a..be618e2 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java @@ -162,6 +162,14 @@ class TaskStackViewTouchHandler implements SwipeHelper.Callback { mVelocityTracker.addMovement(createMotionEventForStackScroll(ev)); break; } + case MotionEvent.ACTION_POINTER_DOWN: { + final int index = ev.getActionIndex(); + mActivePointerId = ev.getPointerId(index); + mLastMotionX = (int) ev.getX(index); + mLastMotionY = (int) ev.getY(index); + mLastP = mSv.mLayoutAlgorithm.screenYToCurveProgress(mLastMotionY); + break; + } case MotionEvent.ACTION_MOVE: { if (mActivePointerId == INACTIVE_POINTER_ID) break; @@ -187,6 +195,20 @@ class TaskStackViewTouchHandler implements SwipeHelper.Callback { mLastP = mSv.mLayoutAlgorithm.screenYToCurveProgress(mLastMotionY); break; } + case MotionEvent.ACTION_POINTER_UP: { + int pointerIndex = ev.getActionIndex(); + int pointerId = ev.getPointerId(pointerIndex); + if (pointerId == mActivePointerId) { + // Select a new active pointer id and reset the motion state + final int newPointerIndex = (pointerIndex == 0) ? 1 : 0; + mActivePointerId = ev.getPointerId(newPointerIndex); + mLastMotionX = (int) ev.getX(newPointerIndex); + mLastMotionY = (int) ev.getY(newPointerIndex); + mLastP = mSv.mLayoutAlgorithm.screenYToCurveProgress(mLastMotionY); + mVelocityTracker.clear(); + } + break; + } case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: { // Animate the scroll back if we've cancelled |