Scrim: Normalize behind scrim when unoccluding.

When unoccluding and going to keyguard, we want to make sure that the
behindscrim and tint is the same as the scrim state.

Bug: 226916317
Test: Manual on device and added a unit test.
Change-Id: I140712c6b50af4891acd94db24ca77a84855f660
This commit is contained in:
Aaron Liu
2022-03-25 18:26:13 +00:00
parent 82f3bb31ea
commit 93fa7d6115
2 changed files with 17 additions and 1 deletions

View File

@@ -858,6 +858,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
// We're unoccluding the keyguard and don't want to have a bright flash.
mNotificationsAlpha = ScrimState.KEYGUARD.getNotifAlpha();
mNotificationsTint = ScrimState.KEYGUARD.getNotifTint();
mBehindAlpha = ScrimState.KEYGUARD.getBehindAlpha();
mBehindTint = ScrimState.KEYGUARD.getBehindTint();
}
}
if (mState != ScrimState.UNLOCKED) {

View File

@@ -122,7 +122,6 @@ public class ScrimControllerTest extends SysuiTestCase {
@Mock
private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
private static class AnimatorListener implements Animator.AnimatorListener {
private int mNumStarts;
private int mNumEnds;
@@ -1369,6 +1368,21 @@ public class ScrimControllerTest extends SysuiTestCase {
}
@Test
public void setUnOccludingAnimationKeyguard() {
mScrimController.setUnocclusionAnimationRunning(true);
mScrimController.transitionTo(ScrimState.KEYGUARD);
finishAnimationsImmediately();
assertThat(mNotificationsScrim.getViewAlpha())
.isWithin(0.01f).of(ScrimState.KEYGUARD.getNotifAlpha());
assertThat(mNotificationsScrim.getTint())
.isEqualTo(ScrimState.KEYGUARD.getNotifTint());
assertThat(mScrimBehind.getViewAlpha())
.isWithin(0.01f).of(ScrimState.KEYGUARD.getBehindAlpha());
assertThat(mScrimBehind.getTint())
.isEqualTo(ScrimState.KEYGUARD.getBehindTint());
}
private void assertAlphaAfterExpansion(ScrimView scrim, float expectedAlpha, float expansion) {
mScrimController.setRawPanelExpansionFraction(expansion);
finishAnimationsImmediately();