summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorlucychang <lucychang@google.com>2021-02-01 17:17:36 +0800
committerLucy Chang <lucychang@google.com>2021-02-18 04:36:47 +0000
commitbeebb73485ccf6e820dae4c030d3217c3fa94097 (patch)
tree218600316eb6c3311ced86c8baeb1698d965ea80 /core/java/android
parentc1d7c4d6ab76715d928b487dc40a552f74ebfdb6 (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.java3
-rw-r--r--core/java/android/view/accessibility/AccessibilityNodeInfo.java6
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();
}