Merge "Scrim: Remove scrim flicker" into tm-dev am: f8ae31ea06

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17385613

Change-Id: I554367ceba3cb28b0a2963c39f68c31369f044c5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Aaron Liu
2022-03-30 15:05:29 +00:00
committed by Automerger Merge Worker
2 changed files with 13 additions and 0 deletions

View File

@@ -1024,6 +1024,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

@@ -1360,6 +1360,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();