Prevent quick scrub when dragging up

When leaving the touch slop in the perpendicular direction of quick
scrub, remove the timeout to start quickscrub so launcher can continue
to handle touch events.

Bug: 67957962
Bug: 70180755
Test: manual - drag up with quick step enabled
Change-Id: Icb5fcd992b17ac05402b83543115e6ab34475d2f
This commit is contained in:
Matthew Ng
2018-01-17 15:32:41 -08:00
parent e2861da8ef
commit e0903c9f05

View File

@@ -207,21 +207,31 @@ public class QuickScrubController extends GestureDetector.SimpleOnGestureListene
int y = (int) event.getY();
int xDiff = Math.abs(x - mTouchDownX);
int yDiff = Math.abs(y - mTouchDownY);
boolean exceededTouchSlop;
boolean exceededTouchSlopX = xDiff > mScrollTouchSlop && xDiff > yDiff;
boolean exceededTouchSlopY = yDiff > mScrollTouchSlop && yDiff > xDiff;
boolean exceededTouchSlop, exceededPerpendicularTouchSlop;
int pos, touchDown, offset, trackSize;
if (mIsVertical) {
exceededTouchSlop = yDiff > mScrollTouchSlop && yDiff > xDiff;
exceededTouchSlop = exceededTouchSlopY;
exceededPerpendicularTouchSlop = exceededTouchSlopX;
pos = y;
touchDown = mTouchDownY;
offset = pos - mTrackRect.top;
trackSize = mTrackRect.height();
} else {
exceededTouchSlop = xDiff > mScrollTouchSlop && xDiff > yDiff;
exceededTouchSlop = exceededTouchSlopX;
exceededPerpendicularTouchSlop = exceededTouchSlopY;
pos = x;
touchDown = mTouchDownX;
offset = pos - mTrackRect.left;
trackSize = mTrackRect.width();
}
// Do not start scrubbing when dragging in the perpendicular direction
if (!mDraggingActive && exceededPerpendicularTouchSlop) {
mHandler.removeCallbacksAndMessages(null);
return false;
}
if (!mDragPositive) {
offset -= mIsVertical ? mTrackRect.height() : mTrackRect.width();
}