Skip to content

Commit ee33ad2

Browse files
committed
Settings crash after enabling TalkBack accessibility.
1. AccessibilityInput filter was not checking whether the touch explorer instance is not null before passing it an accessibility event. If the accessibility event is dispatched before the input filter is installed but after it is created we runt into this case. 2. Added a missing null check in accessibility node info. bug:6635089 Change-Id: Ia389dc1f427427eb73794f6331ccb870e0b44c55
1 parent 4206ee2 commit ee33ad2

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

core/java/android/view/accessibility/AccessibilityNodeInfo.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -432,8 +432,10 @@ public void setSource(View root, int virtualDescendantId) {
432432
final int rootAccessibilityViewId =
433433
(root != null) ? root.getAccessibilityViewId() : UNDEFINED;
434434
mSourceNodeId = makeNodeId(rootAccessibilityViewId, virtualDescendantId);
435-
mActualAndReportedWindowLeftDelta = root.getActualAndReportedWindowLeftDelta();
436-
mActualAndReportedWindowTopDelta = root.getActualAndReportedWindowTopDelta();
435+
if (root != null) {
436+
mActualAndReportedWindowLeftDelta = root.getActualAndReportedWindowLeftDelta();
437+
mActualAndReportedWindowTopDelta = root.getActualAndReportedWindowTopDelta();
438+
}
437439
}
438440

439441
/**

services/java/com/android/server/accessibility/AccessibilityInputFilter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ public void onInputEvent(InputEvent event, int policyFlags) {
123123
}
124124

125125
public void onAccessibilityEvent(AccessibilityEvent event) {
126-
mTouchExplorer.onAccessibilityEvent(event);
126+
if (mTouchExplorer != null) {
127+
mTouchExplorer.onAccessibilityEvent(event);
128+
}
127129
}
128130
}

0 commit comments

Comments
 (0)