diff options
5 files changed, 26 insertions, 8 deletions
diff --git a/services/accessibility/java/com/android/server/accessibility/gestures/MultiTap.java b/services/accessibility/java/com/android/server/accessibility/gestures/MultiTap.java index af5433e165f4..9555980287e3 100644 --- a/services/accessibility/java/com/android/server/accessibility/gestures/MultiTap.java +++ b/services/accessibility/java/com/android/server/accessibility/gestures/MultiTap.java @@ -43,12 +43,18 @@ public class MultiTap extends GestureMatcher { public MultiTap(Context context, int taps, int gesture, GestureMatcher.StateChangeListener listener) { + this(context, taps, gesture, + ViewConfiguration.getDoubleTapTimeout(), listener); + } + + public MultiTap(Context context, int taps, int gesture, int multiTapTimeout, + GestureMatcher.StateChangeListener listener) { super(gesture, new Handler(context.getMainLooper()), listener); mTargetTaps = taps; + mDoubleTapTimeout = multiTapTimeout; mDoubleTapSlop = ViewConfiguration.get(context).getScaledDoubleTapSlop(); mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); mTapTimeout = ViewConfiguration.getTapTimeout(); - mDoubleTapTimeout = ViewConfiguration.getDoubleTapTimeout(); clear(); } diff --git a/services/accessibility/java/com/android/server/accessibility/gestures/MultiTapAndHold.java b/services/accessibility/java/com/android/server/accessibility/gestures/MultiTapAndHold.java index 8363ecaf8901..15e1278a9175 100644 --- a/services/accessibility/java/com/android/server/accessibility/gestures/MultiTapAndHold.java +++ b/services/accessibility/java/com/android/server/accessibility/gestures/MultiTapAndHold.java @@ -30,6 +30,11 @@ public class MultiTapAndHold extends MultiTap { super(context, taps, gesture, listener); } + public MultiTapAndHold(Context context, int taps, int gesture, int multiTapTimeout, + GestureMatcher.StateChangeListener listener) { + super(context, taps, gesture, multiTapTimeout, listener); + } + @Override protected void onDown(MotionEvent event, MotionEvent rawEvent, int policyFlags) { super.onDown(event, rawEvent, policyFlags); diff --git a/services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler.java b/services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler.java index 0ee58967c9b7..159022b4076d 100644 --- a/services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler.java +++ b/services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler.java @@ -1168,9 +1168,8 @@ public class FullScreenMagnificationGestureHandler extends MagnificationGestureH DetectingState(Context context) { mLongTapMinDelay = ViewConfiguration.getLongPressTimeout(); - mMultiTapMaxDelay = ViewConfiguration.getDoubleTapTimeout() - + context.getResources().getInteger( - R.integer.config_screen_magnification_multi_tap_adjustment); + mMultiTapMaxDelay = + MagnificationGestureMatcher.getMagnificationMultiTapTimeout(context); mSwipeMinDistance = ViewConfiguration.get(context).getScaledTouchSlop(); mMultiTapMaxDistance = ViewConfiguration.get(context).getScaledDoubleTapSlop(); } diff --git a/services/accessibility/java/com/android/server/accessibility/magnification/WindowMagnificationGestureHandler.java b/services/accessibility/java/com/android/server/accessibility/magnification/WindowMagnificationGestureHandler.java index 75d01f574cac..6f1141ff76ec 100644 --- a/services/accessibility/java/com/android/server/accessibility/magnification/WindowMagnificationGestureHandler.java +++ b/services/accessibility/java/com/android/server/accessibility/magnification/WindowMagnificationGestureHandler.java @@ -470,12 +470,14 @@ public class WindowMagnificationGestureHandler extends MagnificationGestureHandl mDetectSingleFingerTripleTap ? MagnificationGestureMatcher.GESTURE_TRIPLE_TAP : MagnificationGestureMatcher.GESTURE_SINGLE_TAP, + MagnificationGestureMatcher.getMagnificationMultiTapTimeout(mContext), null)); mGestureMatchers.add(new MultiTapAndHold(context, mDetectSingleFingerTripleTap ? 3 : 1, mDetectSingleFingerTripleTap ? MagnificationGestureMatcher.GESTURE_TRIPLE_TAP_AND_HOLD : MagnificationGestureMatcher.GESTURE_SINGLE_TAP_AND_HOLD, + MagnificationGestureMatcher.getMagnificationMultiTapTimeout(mContext), null)); mGestureMatchers.add(new TwoFingersDownOrSwipe(context)); @@ -495,12 +497,16 @@ public class WindowMagnificationGestureHandler extends MagnificationGestureHandl mDetectSingleFingerTripleTap ? 3 : 1, mDetectSingleFingerTripleTap ? MagnificationGestureMatcher.GESTURE_TRIPLE_TAP - : MagnificationGestureMatcher.GESTURE_SINGLE_TAP, null); + : MagnificationGestureMatcher.GESTURE_SINGLE_TAP, + MagnificationGestureMatcher.getMagnificationMultiTapTimeout(mContext), + null); final MultiTapAndHold multiTapAndHold = new MultiTapAndHold(context, mDetectSingleFingerTripleTap ? 3 : 1, mDetectSingleFingerTripleTap ? MagnificationGestureMatcher.GESTURE_TRIPLE_TAP_AND_HOLD - : MagnificationGestureMatcher.GESTURE_SINGLE_TAP_AND_HOLD, null); + : MagnificationGestureMatcher.GESTURE_SINGLE_TAP_AND_HOLD, + MagnificationGestureMatcher.getMagnificationMultiTapTimeout(mContext), + null); mGesturesObserver = new MagnificationGesturesObserver(this, new SimpleSwipe(context), multiTap, diff --git a/services/tests/servicestests/src/com/android/server/accessibility/magnification/WindowMagnificationGestureHandlerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/magnification/WindowMagnificationGestureHandlerTest.java index c99e04037023..31e15ded30c2 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/magnification/WindowMagnificationGestureHandlerTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/magnification/WindowMagnificationGestureHandlerTest.java @@ -341,7 +341,8 @@ public class WindowMagnificationGestureHandlerTest { twoFingerTap(); twoFingerTap(); // Wait for two-finger tap gesture completed. - SystemClock.sleep(ViewConfiguration.getDoubleTapMinTime() + 500); + SystemClock.sleep(MagnificationGestureMatcher + .getMagnificationMultiTapTimeout(mContext) + 100); InstrumentationRegistry.getInstrumentation().waitForIdleSync(); } break; @@ -403,7 +404,8 @@ public class WindowMagnificationGestureHandlerTest { twoFingerTap(); twoFingerTap(); // Wait for two-finger tap gesture completed. - SystemClock.sleep(ViewConfiguration.getDoubleTapMinTime() + 500); + SystemClock.sleep(MagnificationGestureMatcher + .getMagnificationMultiTapTimeout(mContext) + 100); InstrumentationRegistry.getInstrumentation().waitForIdleSync(); } break; |