Scrim: Remove scrim flicker

Remove scrim flicker when we unlock with bouncer.

Bug: 226424400
Test: Manual with device and unit test
Change-Id: Id2922ae6d86d64f42126d11843844c2349e56284
This commit is contained in:
Aaron Liu
2022-03-24 18:28:12 +00:00
parent adf9921ee4
commit 2bda393cbf
2 changed files with 13 additions and 0 deletions

View File

@@ -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);

View File

@@ -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();