From 3d1c5a7236c4709550ca7c0cfa293fc5c974c56b Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Wed, 9 Oct 2013 17:10:21 -0700 Subject: [PATCH] Ensure accessibility node cache is synced with service state BUG: 11152210 Change-Id: Ibffd2909b6b06568de9344e536a200d8a7abac9d --- .../android/view/accessibility/AccessibilityNodeInfoCache.java | 3 ++- .../java/com/android/server/accessibility/TouchExplorer.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfoCache.java b/core/java/android/view/accessibility/AccessibilityNodeInfoCache.java index 7dd1e8a26a0d5..a9473a8df63cb 100644 --- a/core/java/android/view/accessibility/AccessibilityNodeInfoCache.java +++ b/core/java/android/view/accessibility/AccessibilityNodeInfoCache.java @@ -67,11 +67,12 @@ public class AccessibilityNodeInfoCache { if (ENABLED) { final int eventType = event.getEventType(); switch (eventType) { + case AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_END: case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED: case AccessibilityEvent.TYPE_VIEW_HOVER_ENTER: case AccessibilityEvent.TYPE_VIEW_HOVER_EXIT: { + // If the active window changes, clear the cache. final int windowId = event.getWindowId(); - // If a new window, we clear the cache. if (mWindowId != windowId) { mWindowId = windowId; clear(); diff --git a/services/java/com/android/server/accessibility/TouchExplorer.java b/services/java/com/android/server/accessibility/TouchExplorer.java index 1b8876d745c06..a99b58a256e6a 100644 --- a/services/java/com/android/server/accessibility/TouchExplorer.java +++ b/services/java/com/android/server/accessibility/TouchExplorer.java @@ -736,9 +736,9 @@ class TouchExplorer implements EventStreamTransformation { + "there is at least one pointer down!"); } case MotionEvent.ACTION_UP: { + mAms.onTouchInteractionEnd(); // Announce the end of a the touch interaction. sendAccessibilityEvent(AccessibilityEvent.TYPE_TOUCH_INTERACTION_END); - mAms.onTouchInteractionEnd(); mLongPressingPointerId = -1; mLongPressingPointerDeltaX = 0; mLongPressingPointerDeltaY = 0; @@ -822,6 +822,7 @@ class TouchExplorer implements EventStreamTransformation { AccessibilityManager accessibilityManager = AccessibilityManager.getInstance(mContext); if (accessibilityManager.isEnabled()) { AccessibilityEvent event = AccessibilityEvent.obtain(type); + event.setWindowId(mAms.getActiveWindowId()); accessibilityManager.sendAccessibilityEvent(event); switch (type) { case AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_START: {