Merge "Turning off accessibility feature reboots the device"
diff --git a/services/java/com/android/server/accessibility/AccessibilityInputFilter.java b/services/java/com/android/server/accessibility/AccessibilityInputFilter.java
index 8ba0a0b..769cb6a 100644
--- a/services/java/com/android/server/accessibility/AccessibilityInputFilter.java
+++ b/services/java/com/android/server/accessibility/AccessibilityInputFilter.java
@@ -56,6 +56,11 @@
* @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 @@
if (DEBUG) {
Slog.d(TAG, "Accessibility input filter installed.");
}
+ mTouchExplorer = new TouchExplorer(this, mContext);
super.onInstalled();
}
@@ -79,6 +85,7 @@
if (DEBUG) {
Slog.d(TAG, "Accessibility input filter uninstalled.");
}
+ mTouchExplorer.clear();
super.onUninstalled();
}
@@ -93,11 +100,7 @@
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 0808d5d..4ad2916 100644
--- a/services/java/com/android/server/accessibility/TouchExplorer.java
+++ b/services/java/com/android/server/accessibility/TouchExplorer.java
@@ -858,8 +858,9 @@
/**
* 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;