diff options
| author | 2023-06-28 09:41:58 +0000 | |
|---|---|---|
| committer | 2023-06-28 09:41:58 +0000 | |
| commit | 6bc1b9b6420306291cab5f0a48e0a78b1680273a (patch) | |
| tree | 3feafc7af2355aa828f3a418acdb056e29f76e29 | |
| parent | a56015b319091259802ef53b26ef0c6593312e3a (diff) | |
| parent | c615401f232230e87a95ab735bc52d4076cdf089 (diff) | |
Merge "Fix letterbox overlapping with status bar icons after rotating device" into udc-dev am: c615401f23
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23817530
Change-Id: Iefd694bcc544378afa696648bb8676d8a8b56c9b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2 files changed, 25 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LetterboxAppearanceCalculator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LetterboxAppearanceCalculator.kt index f7426451fa50..a61914a70f59 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LetterboxAppearanceCalculator.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LetterboxAppearanceCalculator.kt @@ -209,7 +209,7 @@ constructor( if (this.contains(other) || other.contains(this)) { return false } - return this.intersect(other) + return this.intersects(other.left, other.top, other.right, other.bottom) } override fun dump(pw: PrintWriter, args: Array<out String>) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LetterboxAppearanceCalculatorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LetterboxAppearanceCalculatorTest.kt index c0243dc537b5..b2dc0dc984c7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LetterboxAppearanceCalculatorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LetterboxAppearanceCalculatorTest.kt @@ -105,6 +105,30 @@ class LetterboxAppearanceCalculatorTest : SysuiTestCase() { expect.that(letterboxAppearance.appearanceRegions).isEqualTo(TEST_APPEARANCE_REGIONS) } + /** Regression test for b/287508741 */ + @Test + fun getLetterboxAppearance_withOverlap_doesNotMutateOriginalBounds() { + val statusBarStartSideBounds = Rect(left = 0, top = 0, right = 100, bottom = 100) + val statusBarEndSideBounds = Rect(left = 200, top = 0, right = 300, bottom = 100) + val letterBoxInnerBounds = Rect(left = 150, top = 50, right = 250, bottom = 150) + val statusBarStartSideBoundsCopy = Rect(statusBarStartSideBounds) + val statusBarEndSideBoundsCopy = Rect(statusBarEndSideBounds) + val letterBoxInnerBoundsCopy = Rect(letterBoxInnerBounds) + whenever(statusBarBoundsProvider.visibleStartSideBounds) + .thenReturn(statusBarStartSideBounds) + whenever(statusBarBoundsProvider.visibleEndSideBounds).thenReturn(statusBarEndSideBounds) + + calculator.getLetterboxAppearance( + TEST_APPEARANCE, + TEST_APPEARANCE_REGIONS, + arrayOf(letterboxWithInnerBounds(letterBoxInnerBounds)) + ) + + expect.that(statusBarStartSideBounds).isEqualTo(statusBarStartSideBoundsCopy) + expect.that(statusBarEndSideBounds).isEqualTo(statusBarEndSideBoundsCopy) + expect.that(letterBoxInnerBounds).isEqualTo(letterBoxInnerBoundsCopy) + } + @Test fun getLetterboxAppearance_noOverlap_BackgroundMultiColor_returnsAppearanceWithScrim() { whenever(letterboxBackgroundProvider.isLetterboxBackgroundMultiColored).thenReturn(true) |