diff options
| author | lucychang <lucychang@google.com> | 2021-02-01 17:17:36 +0800 |
|---|---|---|
| committer | Lucy Chang <lucychang@google.com> | 2021-02-18 04:36:47 +0000 |
| commit | beebb73485ccf6e820dae4c030d3217c3fa94097 (patch) | |
| tree | 218600316eb6c3311ced86c8baeb1698d965ea80 /core/java/android | |
| parent | c1d7c4d6ab76715d928b487dc40a552f74ebfdb6 (diff) | |
Checks viewId's nullibility before findA11yNodeInfos
Returns empty list for AccessibilityNodeInfo#findAccessibilityNodeInfosByViewId
if the viewId is null to prevent NullPointerException happened to the UI client.
Bug: 158357326
Test: manually test
Change-Id: I041d379ed2866ac9d67067b1fcde4c5b585a95ad
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/view/AccessibilityInteractionController.java | 3 | ||||
| -rw-r--r-- | core/java/android/view/accessibility/AccessibilityNodeInfo.java | 6 |
2 files changed, 7 insertions, 2 deletions
diff --git a/core/java/android/view/AccessibilityInteractionController.java b/core/java/android/view/AccessibilityInteractionController.java index 9473845b15e6..09452828057e 100644 --- a/core/java/android/view/AccessibilityInteractionController.java +++ b/core/java/android/view/AccessibilityInteractionController.java @@ -383,7 +383,8 @@ public final class AccessibilityInteractionController { final List<AccessibilityNodeInfo> infos = mTempAccessibilityNodeInfoList; infos.clear(); try { - if (mViewRootImpl.mView == null || mViewRootImpl.mAttachInfo == null) { + if (mViewRootImpl.mView == null || mViewRootImpl.mAttachInfo == null + || viewId == null) { return; } mViewRootImpl.mAttachInfo.mAccessibilityFetchFlags = flags; diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java index 97ce92cd90aa..ab46170792a5 100644 --- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java +++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java @@ -1781,8 +1781,12 @@ public class AccessibilityNodeInfo implements Parcelable { * @param viewId The fully qualified resource name of the view id to find. * @return A list of node info. */ - public List<AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId(String viewId) { + public List<AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId(@NonNull String viewId) { enforceSealed(); + if (viewId == null) { + Log.e(TAG, "returns empty list due to null viewId."); + return Collections.emptyList(); + } if (!canPerformRequestOverConnection(mConnectionId, mWindowId, mSourceNodeId)) { return Collections.emptyList(); } |
