diff options
| -rw-r--r-- | services/java/com/android/server/accessibility/AccessibilityInputFilter.java | 13 | ||||
| -rw-r--r-- | services/java/com/android/server/accessibility/TouchExplorer.java | 3 |
2 files changed, 10 insertions, 6 deletions
diff --git a/services/java/com/android/server/accessibility/AccessibilityInputFilter.java b/services/java/com/android/server/accessibility/AccessibilityInputFilter.java index 8ba0a0b67ef4..769cb6a14b11 100644 --- a/services/java/com/android/server/accessibility/AccessibilityInputFilter.java +++ b/services/java/com/android/server/accessibility/AccessibilityInputFilter.java @@ -56,6 +56,11 @@ public class AccessibilityInputFilter extends InputFilter { * @param policyFlags The policy flags associated with the event. */ public void clear(MotionEvent event, int policyFlags); + + /** + * Requests that the explorer clears its internal state. + */ + public void clear(); } private TouchExplorer mTouchExplorer; @@ -71,6 +76,7 @@ public class AccessibilityInputFilter extends InputFilter { if (DEBUG) { Slog.d(TAG, "Accessibility input filter installed."); } + mTouchExplorer = new TouchExplorer(this, mContext); super.onInstalled(); } @@ -79,6 +85,7 @@ public class AccessibilityInputFilter extends InputFilter { if (DEBUG) { Slog.d(TAG, "Accessibility input filter uninstalled."); } + mTouchExplorer.clear(); super.onUninstalled(); } @@ -93,11 +100,7 @@ public class AccessibilityInputFilter extends InputFilter { int deviceId = event.getDeviceId(); if (mTouchscreenSourceDeviceId != deviceId) { mTouchscreenSourceDeviceId = deviceId; - if (mTouchExplorer != null) { - mTouchExplorer.clear(motionEvent, policyFlags); - } else { - mTouchExplorer = new TouchExplorer(this, mContext); - } + mTouchExplorer.clear(motionEvent, policyFlags); } if ((policyFlags & WindowManagerPolicy.FLAG_PASS_TO_USER) != 0) { mTouchExplorer.onMotionEvent(motionEvent, policyFlags); diff --git a/services/java/com/android/server/accessibility/TouchExplorer.java b/services/java/com/android/server/accessibility/TouchExplorer.java index 0808d5d1ac36..4ad291680b44 100644 --- a/services/java/com/android/server/accessibility/TouchExplorer.java +++ b/services/java/com/android/server/accessibility/TouchExplorer.java @@ -858,8 +858,9 @@ public class TouchExplorer implements Explorer { /** * Clears the internal state of this explorer. */ - private void clear() { + public void clear() { mSendHoverDelayed.remove(); + mPerformLongPressDelayed.remove(); mPointerTracker.clear(); mLastTouchExploreEvent = null; mCurrentState = STATE_TOUCH_EXPLORING; |