Merge "Fix keyguard -> shade_locked scrim transition" into tm-qpr-dev

This commit is contained in:
Matt Pietal
2022-12-01 12:35:49 +00:00
committed by Android (Google) Code Review
3 changed files with 21 additions and 12 deletions

View File

@@ -352,6 +352,11 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
.getBoolean(R.bool.notification_scrim_transparent);
updateScrims();
mKeyguardUpdateMonitor.registerCallback(mKeyguardVisibilityCallback);
// prepare() sets proper initial values for most states
for (ScrimState state : ScrimState.values()) {
state.prepare(state);
}
}
/**
@@ -641,10 +646,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
private void setTransitionToFullShade(boolean transitioning) {
if (transitioning != mTransitioningToFullShade) {
mTransitioningToFullShade = transitioning;
if (transitioning) {
// Let's make sure the shade locked is ready
ScrimState.SHADE_LOCKED.prepare(mState);
}
}
}

View File

@@ -146,18 +146,12 @@ public enum ScrimState {
mBehindAlpha = mClipQsScrim ? 1 : mDefaultScrimAlpha;
mNotifAlpha = 1f;
mFrontAlpha = 0f;
mBehindTint = Color.BLACK;
mBehindTint = mClipQsScrim ? Color.TRANSPARENT : Color.BLACK;
if (mClipQsScrim) {
updateScrimColor(mScrimBehind, 1f /* alpha */, Color.BLACK);
}
}
// to make sure correct color is returned before "prepare" is called
@Override
public int getBehindTint() {
return Color.BLACK;
}
},
/**

View File

@@ -1442,16 +1442,30 @@ public class ScrimControllerTest extends SysuiTestCase {
@Test
public void testNotificationTransparency_followsTransitionToFullShade() {
mScrimController.setClipsQsScrim(true);
mScrimController.transitionTo(SHADE_LOCKED);
mScrimController.setRawPanelExpansionFraction(1.0f);
finishAnimationsImmediately();
assertScrimTinted(Map.of(
mScrimInFront, false,
mScrimBehind, true,
mNotificationsScrim, false
));
float shadeLockedAlpha = mNotificationsScrim.getViewAlpha();
mScrimController.transitionTo(ScrimState.KEYGUARD);
mScrimController.setRawPanelExpansionFraction(1.0f);
finishAnimationsImmediately();
float keyguardAlpha = mNotificationsScrim.getViewAlpha();
mScrimController.setClipsQsScrim(true);
assertScrimTinted(Map.of(
mScrimInFront, true,
mScrimBehind, true,
mNotificationsScrim, true
));
float progress = 0.5f;
float lsNotifProgress = 0.3f;
mScrimController.setTransitionToFullShadeProgress(progress, lsNotifProgress);