Skip to content

Commit 18dcf2f

Browse files
sganovAndroid (Google) Code Review
authored andcommitted
Merge "Fixing crash when drawing accessibility focus indicator." into jb-dev
2 parents 3ea8761 + 1d74df2 commit 18dcf2f

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

core/java/android/view/ViewRootImpl.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -635,6 +635,8 @@ public void setView(View view, WindowManager.LayoutParams attrs, View panelParen
635635
if (view.getImportantForAccessibility() == View.IMPORTANT_FOR_ACCESSIBILITY_AUTO) {
636636
view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
637637
}
638+
639+
setAccessibilityFocusedHost(null);
638640
}
639641
}
640642
}
@@ -2339,6 +2341,9 @@ private void drawAccessibilityFocusedDrawableIfNeeded(Canvas canvas) {
23392341
if (mAccessibilityFocusedVirtualView == null) {
23402342
mAccessibilityFocusedVirtualView = provider.findAccessibilitiyFocus(View.NO_ID);
23412343
}
2344+
if (mAccessibilityFocusedVirtualView == null) {
2345+
return;
2346+
}
23422347
mAccessibilityFocusedVirtualView.getBoundsInScreen(bounds);
23432348
bounds.offset(-mAttachInfo.mWindowLeft, -mAttachInfo.mWindowTop);
23442349
}
@@ -2865,6 +2870,8 @@ public void handleMessage(Message msg) {
28652870
mHasHadWindowFocus = true;
28662871
}
28672872

2873+
setAccessibilityFocusedHost(null);
2874+
28682875
if (mView != null && mAccessibilityManager.isEnabled()) {
28692876
if (hasWindowFocus) {
28702877
mView.sendAccessibilityEvent(
@@ -2883,9 +2890,6 @@ public void handleMessage(Message msg) {
28832890
if (mAccessibilityFocusedHost == null) {
28842891
mView.requestAccessibilityFocus();
28852892
}
2886-
} else {
2887-
// Clear accessibility focus when the window loses input focus.
2888-
setAccessibilityFocusedHost(null);
28892893
}
28902894
}
28912895
}

0 commit comments

Comments
 (0)