From 0b50ece33dbfa5f356f94567e6320daa35b564eb Mon Sep 17 00:00:00 2001 From: Ameer Armaly Date: Tue, 25 Aug 2020 19:00:17 -0700 Subject: [PATCH 1/2] Use correct touch slop value for two-finger passthrough. Throughout the gesture system we scale the touch slop radius to the number of fingers that are down at any given moment. Therefore the correct value to trigger two-finger passthrough should be 2 * mTouchSlop. This should make three-finger taps less problematic. Bug: 163438921 Bug: 162521649 Test: manual Change-Id: I4b36b5575bf11ad767d83effd6292dc84eadb27d Change-Id: I9fb9d58ef679151c9fc595bcb375f6209ea3a5af Change-Id: Ibcae2a5a3fde37b97859165efabf2b0df13ded9b --- .../android/server/accessibility/gestures/TouchExplorer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java b/services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java index adccf6cfc99cc..89287398364cf 100644 --- a/services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java +++ b/services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java @@ -608,7 +608,7 @@ public class TouchExplorer extends BaseEventStreamTransformation mReceivedPointerTracker.getReceivedPointerDownY(id) - rawEvent.getY(index); final double moveDelta = Math.hypot(deltaX, deltaY); - if (moveDelta < mTouchSlop) { + if (moveDelta < (2 * mTouchSlop)) { return; } } From 0d110b236bf0f94af6014080fb7b6d0ff8e0383c Mon Sep 17 00:00:00 2001 From: Ameer Armaly Date: Tue, 25 Aug 2020 19:05:55 -0700 Subject: [PATCH 2/2] MultiFingerSwipe: scale touch slop to number of fingers. Test: manual Change-Id: I990693ac07f4653f7d8ff9c097b5720593235afb --- .../android/server/accessibility/gestures/MultiFingerSwipe.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/accessibility/java/com/android/server/accessibility/gestures/MultiFingerSwipe.java b/services/accessibility/java/com/android/server/accessibility/gestures/MultiFingerSwipe.java index 07e82111d4e51..5b46cb4ab3783 100644 --- a/services/accessibility/java/com/android/server/accessibility/gestures/MultiFingerSwipe.java +++ b/services/accessibility/java/com/android/server/accessibility/gestures/MultiFingerSwipe.java @@ -294,7 +294,7 @@ class MultiFingerSwipe extends GestureMatcher { + Float.toString(mGestureDetectionThresholdPixels)); } if (getState() == STATE_CLEAR) { - if (moveDelta < mTouchSlop) { + if (moveDelta < (mTargetFingerCount * mTouchSlop)) { // This still counts as a touch not a swipe. continue; } else if (mStrokeBuffers[pointerIndex].size() == 0) {