diff options
author | ryanlwlin <ryanlwlin@google.com> | 2020-06-20 13:52:44 +0800 |
---|---|---|
committer | ryanlwlin <ryanlwlin@google.com> | 2020-06-22 11:24:17 +0800 |
commit | 1f913ea0dca7b13c32d6776c262d225aa5c8eada (patch) | |
tree | 38a27fd865ec998485fd364df37f1ad18ca21538 | |
parent | 7144459282730dc65837c74531d15a0d585bd065 (diff) |
Fix Hard to detect multi-finger multi-tap
The double-tap/touch slope is from system's double-tap detector.
This threshold is too narrow for multi-finger multi-tap. It ends up
canceling the detection when the movement exceed the slope.
We adjust the slopes by multiplying the target finger count.
The maxium slope in 4 fingers is around 4.48 mm is smaller than
the swipe threshold (1 cm)
Bug: 158725482
Test: atest GestureManifoldTest
atest TouchExplorerTest
atest AccessibilityGestureDetectorTest
Change-Id: If0927d15d61a9682da67721d0bf0bbbc1045078b
-rw-r--r-- | services/accessibility/java/com/android/server/accessibility/gestures/MultiFingerMultiTap.java | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/services/accessibility/java/com/android/server/accessibility/gestures/MultiFingerMultiTap.java b/services/accessibility/java/com/android/server/accessibility/gestures/MultiFingerMultiTap.java index 642a841257bf..09e060570c93 100644 --- a/services/accessibility/java/com/android/server/accessibility/gestures/MultiFingerMultiTap.java +++ b/services/accessibility/java/com/android/server/accessibility/gestures/MultiFingerMultiTap.java @@ -67,8 +67,8 @@ class MultiFingerMultiTap extends GestureMatcher { Preconditions.checkArgumentPositive(taps, "Tap count must greater than 0."); mTargetTapCount = taps; mTargetFingerCount = fingers; - mDoubleTapSlop = ViewConfiguration.get(context).getScaledDoubleTapSlop(); - mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); + mDoubleTapSlop = ViewConfiguration.get(context).getScaledDoubleTapSlop() * fingers; + mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop() * fingers; mBases = new PointF[mTargetFingerCount]; for (int i = 0; i < mBases.length; i++) { |