summaryrefslogtreecommitdiff
path: root/core/java/android/view/ViewRootImpl.java
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2013-05-08 15:03:49 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-05-08 15:03:49 -0700
commit5e6fbf269425ea182b8a46e6a33848e1645197f6 (patch)
tree61e7c98efa13cf8d276c5987865e8bb6fabe9afa /core/java/android/view/ViewRootImpl.java
parentf4b94a7cb76cce8a9a7c14be4af9e9acef82d744 (diff)
parentfa4c935edcfa09bb53a3aac411a285842a00ddee (diff)
am fa4c935e: am 239a0c0e: Ensure ViewRootImpl.setAccessibilityFocus() doesn\'t crash when reentrant.
* commit 'fa4c935edcfa09bb53a3aac411a285842a00ddee': Ensure ViewRootImpl.setAccessibilityFocus() doesn't crash when reentrant.
Diffstat (limited to 'core/java/android/view/ViewRootImpl.java')
-rw-r--r--core/java/android/view/ViewRootImpl.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 47c40d29e0a0..29530399f3bd 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -2671,7 +2671,6 @@ public final class ViewRootImpl implements ViewParent,
AccessibilityNodeInfo focusNode = mAccessibilityFocusedVirtualView;
View focusHost = mAccessibilityFocusedHost;
- focusHost.clearAccessibilityFocusNoCallbacks();
// Wipe the state of the current accessibility focus since
// the call into the provider to clear accessibility focus
@@ -2681,6 +2680,10 @@ public final class ViewRootImpl implements ViewParent,
mAccessibilityFocusedHost = null;
mAccessibilityFocusedVirtualView = null;
+ // Clear accessibility focus on the host after clearing state since
+ // this method may be reentrant.
+ focusHost.clearAccessibilityFocusNoCallbacks();
+
AccessibilityNodeProvider provider = focusHost.getAccessibilityNodeProvider();
if (provider != null) {
// Invalidate the area of the cleared accessibility focus.