diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickScrubController.java | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickScrubController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickScrubController.java index 9f8a7efa04f3..484d8837de08 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickScrubController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickScrubController.java @@ -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(); } |