From 1145db5d8e237ea6d5f418e00086a90942c31a13 Mon Sep 17 00:00:00 2001 From: ryanlwlin Date: Tue, 7 Jul 2020 12:52:36 +0800 Subject: [PATCH] [DO NOT MERGE] Clear properties after interaction is ended The properties populated when double-tap and hold is detected is not cleared after interaction end. It cuases an offset on hoverevent. Bug: 160463594 Test: atest TouchExplorerTest Change-Id: Id5115fe64e4bda9c7657f67bef62290858442de9 --- .../server/accessibility/gestures/EventDispatcher.java | 6 ++++++ .../server/accessibility/gestures/TouchExplorer.java | 1 + 2 files changed, 7 insertions(+) diff --git a/services/accessibility/java/com/android/server/accessibility/gestures/EventDispatcher.java b/services/accessibility/java/com/android/server/accessibility/gestures/EventDispatcher.java index c8cee1079e8eb..070626be9f801 100644 --- a/services/accessibility/java/com/android/server/accessibility/gestures/EventDispatcher.java +++ b/services/accessibility/java/com/android/server/accessibility/gestures/EventDispatcher.java @@ -322,6 +322,12 @@ class EventDispatcher { return true; } + void clear() { + mLongPressingPointerId = -1; + mLongPressingPointerDeltaX = 0; + mLongPressingPointerDeltaY = 0; + } + public void clickWithTouchEvents(MotionEvent event, MotionEvent rawEvent, int policyFlags) { final int pointerIndex = event.getActionIndex(); final int pointerId = event.getPointerId(pointerIndex); 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 6f2e6263b9375..fbc986bdd730a 100644 --- a/services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java +++ b/services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java @@ -809,6 +809,7 @@ public class TouchExplorer extends BaseEventStreamTransformation // Announce the end of a the touch interaction. mAms.onTouchInteractionEnd(); + mDispatcher.clear(); mDispatcher.sendAccessibilityEvent(AccessibilityEvent.TYPE_TOUCH_INTERACTION_END); } break;