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:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user