diff --git a/core/api/current.txt b/core/api/current.txt index e72f943da5207..15e73693a4e9e 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -50301,7 +50301,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 9473845b15e6b..09452828057e8 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 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(); }