From 2bda393cbfa167af5fdb464095b667e0d3745734 Mon Sep 17 00:00:00 2001 From: Aaron Liu Date: Thu, 24 Mar 2022 18:28:12 +0000 Subject: Scrim: Remove scrim flicker Remove scrim flicker when we unlock with bouncer. Bug: 226424400 Test: Manual with device and unit test Change-Id: Id2922ae6d86d64f42126d11843844c2349e56284 --- .../com/android/systemui/statusbar/phone/ScrimController.java | 4 ++++ .../android/systemui/statusbar/phone/ScrimControllerTest.java | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java index 8272ed926255..c10a20d885b1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -1021,6 +1021,10 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump if (aodWallpaperTimeout || occludedKeyguard) { mBehindAlpha = 1; } + // Prevent notification scrim flicker when transitioning away from keyguard. + if (mKeyguardStateController.isKeyguardGoingAway()) { + mNotificationsAlpha = 0; + } setScrimAlpha(mScrimInFront, mInFrontAlpha); setScrimAlpha(mScrimBehind, mBehindAlpha); setScrimAlpha(mNotificationsScrim, mNotificationsAlpha); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java index 5eef1df8c7a3..7a2b2abb05ac 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java @@ -1351,6 +1351,15 @@ public class ScrimControllerTest extends SysuiTestCase { )); } + @Test + public void keyguardGoingAwayUpdateScrims() { + when(mKeyguardStateController.isKeyguardGoingAway()).thenReturn(true); + mScrimController.updateScrims(); + finishAnimationsImmediately(); + assertThat(mNotificationsScrim.getViewAlpha()).isEqualTo(TRANSPARENT); + } + + private void assertAlphaAfterExpansion(ScrimView scrim, float expectedAlpha, float expansion) { mScrimController.setRawPanelExpansionFraction(expansion); finishAnimationsImmediately(); -- cgit v1.2.3-59-g8ed1b