diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 908d236c6c02e..8138b3d30ddfc 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -4727,9 +4727,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
WindowInsetsAnimation.Callback mWindowInsetsAnimationCallback;
/**
- * This lives here since it's only valid for interactive views.
+ * This lives here since it's only valid for interactive views. This list is null until the
+ * first use.
*/
- private ListSeekBar thumb.
Do not modify the provided list after this method is called.
- * *Note: the system will put a limit of 200dp on the vertical extent of the
* exclusions it takes into account. The limit does not apply while the navigation
* bar is {@link #SYSTEM_UI_FLAG_IMMERSIVE_STICKY stickily} hidden, nor to the
@@ -11618,13 +11617,17 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
if (rects.isEmpty() && mListenerInfo == null) return;
final ListenerInfo info = getListenerInfo();
+ if (info.mSystemGestureExclusionRects != null) {
+ info.mSystemGestureExclusionRects.clear();
+ info.mSystemGestureExclusionRects.addAll(rects);
+ } else {
+ info.mSystemGestureExclusionRects = new ArrayList<>(rects);
+ }
if (rects.isEmpty()) {
- info.mSystemGestureExclusionRects = null;
if (info.mPositionUpdateListener != null) {
mRenderNode.removePositionUpdateListener(info.mPositionUpdateListener);
}
} else {
- info.mSystemGestureExclusionRects = rects;
if (info.mPositionUpdateListener == null) {
info.mPositionUpdateListener = new RenderNode.PositionUpdateListener() {
@Override