diff --git a/core/api/current.txt b/core/api/current.txt index 834bc3f89306c..2c388ad40494b 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -50067,7 +50067,7 @@ package android.view.accessibility { method public boolean canOpenPopup(); method public int describeContents(); method public java.util.List findAccessibilityNodeInfosByText(String); - method public java.util.List findAccessibilityNodeInfosByViewId(String); + method public java.util.List findAccessibilityNodeInfosByViewId(@NonNull String); method public android.view.accessibility.AccessibilityNodeInfo findFocus(int); method public android.view.accessibility.AccessibilityNodeInfo focusSearch(int); method public java.util.List getActionList(); diff --git a/core/java/android/view/AccessibilityInteractionController.java b/core/java/android/view/AccessibilityInteractionController.java index 0499f39f2fe4e..a1ba3b7a98d36 100644 --- a/core/java/android/view/AccessibilityInteractionController.java +++ b/core/java/android/view/AccessibilityInteractionController.java @@ -436,7 +436,8 @@ public final class AccessibilityInteractionController { final List 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 97ce92cd90aa0..ab46170792a5c 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 findAccessibilityNodeInfosByViewId(String viewId) { + public List 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(); }