Merge "Clear [system/stable]InsetsConsumed when bounding rects are set" into main
diff --git a/core/java/android/view/WindowInsets.java b/core/java/android/view/WindowInsets.java
index 561d979..987c8c8 100644
--- a/core/java/android/view/WindowInsets.java
+++ b/core/java/android/view/WindowInsets.java
@@ -1708,6 +1708,7 @@
}
mTypeBoundingRectsMap[indexOf(i)] = rects.toArray(new Rect[0]);
}
+ mSystemInsetsConsumed = false;
return this;
}
@@ -1736,6 +1737,7 @@
}
mTypeMaxBoundingRectsMap[indexOf(i)] = rects.toArray(new Rect[0]);
}
+ mStableInsetsConsumed = false;
return this;
}
diff --git a/core/tests/coretests/src/android/view/WindowInsetsTest.java b/core/tests/coretests/src/android/view/WindowInsetsTest.java
index ead6b15..ba1204b 100644
--- a/core/tests/coretests/src/android/view/WindowInsetsTest.java
+++ b/core/tests/coretests/src/android/view/WindowInsetsTest.java
@@ -17,6 +17,7 @@
package android.view;
import static android.view.WindowInsets.Type.SIZE;
+import static android.view.WindowInsets.Type.captionBar;
import static android.view.WindowInsets.Type.systemBars;
import static org.junit.Assert.assertEquals;
@@ -32,6 +33,8 @@
import org.junit.Test;
import org.junit.runner.RunWith;
+import java.util.List;
+
@RunWith(AndroidJUnit4.class)
@SmallTest
@Presubmit
@@ -68,4 +71,17 @@
true /* compatIgnoreVisibility */, null, null, 0, 0);
assertEquals(Insets.of(0, 10, 0, 0), windowInsets.getSystemWindowInsets());
}
+
+ @Test
+ public void testSetBoundingRectsInBuilder_noInsets_preservedInWindowInsets() {
+ final List<Rect> rects = List.of(new Rect(0, 0, 50, 100));
+ final WindowInsets insets =
+ new WindowInsets.Builder()
+ .setBoundingRects(captionBar(), rects)
+ .setBoundingRectsIgnoringVisibility(captionBar(), rects)
+ .build();
+
+ assertEquals(rects, insets.getBoundingRects(captionBar()));
+ assertEquals(rects, insets.getBoundingRectsIgnoringVisibility(captionBar()));
+ }
}