summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorRhed Jao <rhedjao@google.com>2018-07-31 02:03:54 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-07-31 02:03:54 +0000
commit54e83cd0255c21bfccc8a7c16f3adaa400008d99 (patch)
treed654a236c0585c61343c19b387cd0dfce4434492 /core/java/android
parente2f5ce74d54f9ab06876d0dbc28a6ca4029cc3b0 (diff)
parentca9b526022aca3e1de344709c69f534542dacf1f (diff)
Merge "Fix duplicate a11y focus node in AccessibilityCache."
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/view/accessibility/AccessibilityCache.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/java/android/view/accessibility/AccessibilityCache.java b/core/java/android/view/accessibility/AccessibilityCache.java
index 0e1e379d610a..b4d9c53aedb8 100644
--- a/core/java/android/view/accessibility/AccessibilityCache.java
+++ b/core/java/android/view/accessibility/AccessibilityCache.java
@@ -336,7 +336,13 @@ public class AccessibilityCache {
AccessibilityNodeInfo clone = AccessibilityNodeInfo.obtain(info);
nodes.put(sourceId, clone);
if (clone.isAccessibilityFocused()) {
+ if (mAccessibilityFocus != AccessibilityNodeInfo.UNDEFINED_ITEM_ID
+ && mAccessibilityFocus != sourceId) {
+ refreshCachedNodeLocked(windowId, mAccessibilityFocus);
+ }
mAccessibilityFocus = sourceId;
+ } else if (mAccessibilityFocus == sourceId) {
+ mAccessibilityFocus = AccessibilityNodeInfo.UNDEFINED_ITEM_ID;
}
if (clone.isFocused()) {
mInputFocus = sourceId;