diff --git a/core/java/android/view/ViewParent.java b/core/java/android/view/ViewParent.java
index cc11cb8205d5d..572e69b1a78c4 100644
--- a/core/java/android/view/ViewParent.java
+++ b/core/java/android/view/ViewParent.java
@@ -402,7 +402,7 @@ public interface ViewParent {
* descendants has changed and that the structure of the subtree is
* different.
* @param child The direct child whose subtree has changed.
- * @param source The descendant view that changed.
+ * @param source The descendant view that changed. May not be {@code null}.
* @param changeType A bit mask of the types of changes that occurred. One
* or more of:
*
@@ -412,7 +412,8 @@ public interface ViewParent {
* - {@link AccessibilityEvent#CONTENT_CHANGE_TYPE_UNDEFINED}
*
*/
- public void notifySubtreeAccessibilityStateChanged(View child, View source, int changeType);
+ public void notifySubtreeAccessibilityStateChanged(
+ View child, @NonNull View source, int changeType);
/**
* Tells if this view parent can resolve the layout direction.
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 1f13220289c21..109cac0bab126 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -98,6 +98,7 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.os.IResultReceiver;
import com.android.internal.os.SomeArgs;
import com.android.internal.policy.PhoneFallbackEventHandler;
+import com.android.internal.util.Preconditions;
import com.android.internal.view.BaseSurfaceHolder;
import com.android.internal.view.RootViewSurfaceTaker;
import com.android.internal.view.SurfaceCallbackHelper;
@@ -7195,7 +7196,7 @@ public final class ViewRootImpl implements ViewParent,
@Override
public void notifySubtreeAccessibilityStateChanged(View child, View source, int changeType) {
- postSendWindowContentChangedCallback(source, changeType);
+ postSendWindowContentChangedCallback(Preconditions.checkNotNull(source), changeType);
}
@Override