Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +17 −9 Original line number Diff line number Diff line Loading @@ -791,20 +791,28 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump if (!mScreenOffAnimationController.shouldExpandNotifications() && !mAnimatingPanelExpansionOnUnlock && !occluding) { if (mClipsQsScrim) { float behindFraction = getInterpolatedFraction(); behindFraction = (float) Math.pow(behindFraction, 0.8f); if (mClipsQsScrim) { mBehindAlpha = mTransparentScrimBackground ? 0 : 1; mNotificationsAlpha = mTransparentScrimBackground ? 0 : behindFraction * mDefaultScrimAlpha; } else { mBehindAlpha = mTransparentScrimBackground ? 0 : behindFraction * mDefaultScrimAlpha; if (mTransparentScrimBackground) { mBehindAlpha = 0; mNotificationsAlpha = 0; } else { // Behind scrim will finish fading in at 30% expansion. float behindFraction = MathUtils .constrainedMap(0f, 1f, 0f, 0.3f, mPanelExpansionFraction); mBehindAlpha = behindFraction * mDefaultScrimAlpha; // Delay fade-in of notification scrim a bit further, to coincide with the // view fade in. Otherwise the empty panel can be quite jarring. mNotificationsAlpha = mTransparentScrimBackground ? 0 : MathUtils.constrainedMap(0f, 1f, 0.3f, 0.75f, mPanelExpansionFraction); // behind scrim finishing fading in. // Also to coincide with the view starting to fade in, otherwise the empty // panel can be quite jarring. mNotificationsAlpha = MathUtils .constrainedMap(0f, 1f, 0.3f, 0.75f, mPanelExpansionFraction); } } mBehindTint = mState.getBehindTint(); mInFrontAlpha = 0; Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java +10 −2 Original line number Diff line number Diff line Loading @@ -630,6 +630,7 @@ public class ScrimControllerTest extends SysuiTestCase { @Test public void transitionToUnlocked() { mScrimController.setClipsQsScrim(false); mScrimController.setRawPanelExpansionFraction(0f); mScrimController.transitionTo(ScrimState.UNLOCKED); finishAnimationsImmediately(); Loading @@ -645,14 +646,21 @@ public class ScrimControllerTest extends SysuiTestCase { )); // Back scrim should be visible after start dragging mScrimController.setRawPanelExpansionFraction(0.3f); mScrimController.setRawPanelExpansionFraction(0.29f); assertScrimAlpha(Map.of( mScrimInFront, TRANSPARENT, mNotificationsScrim, TRANSPARENT, mScrimBehind, SEMI_TRANSPARENT)); // Back scrim should be opaque at 30% mScrimController.setRawPanelExpansionFraction(0.3f); assertScrimAlpha(Map.of( mScrimInFront, TRANSPARENT, mNotificationsScrim, TRANSPARENT, mScrimBehind, OPAQUE)); // Then, notification scrim should fade in mScrimController.setRawPanelExpansionFraction(0.7f); mScrimController.setRawPanelExpansionFraction(0.31f); assertScrimAlpha(Map.of( mScrimInFront, TRANSPARENT, mNotificationsScrim, SEMI_TRANSPARENT, Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +17 −9 Original line number Diff line number Diff line Loading @@ -791,20 +791,28 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump if (!mScreenOffAnimationController.shouldExpandNotifications() && !mAnimatingPanelExpansionOnUnlock && !occluding) { if (mClipsQsScrim) { float behindFraction = getInterpolatedFraction(); behindFraction = (float) Math.pow(behindFraction, 0.8f); if (mClipsQsScrim) { mBehindAlpha = mTransparentScrimBackground ? 0 : 1; mNotificationsAlpha = mTransparentScrimBackground ? 0 : behindFraction * mDefaultScrimAlpha; } else { mBehindAlpha = mTransparentScrimBackground ? 0 : behindFraction * mDefaultScrimAlpha; if (mTransparentScrimBackground) { mBehindAlpha = 0; mNotificationsAlpha = 0; } else { // Behind scrim will finish fading in at 30% expansion. float behindFraction = MathUtils .constrainedMap(0f, 1f, 0f, 0.3f, mPanelExpansionFraction); mBehindAlpha = behindFraction * mDefaultScrimAlpha; // Delay fade-in of notification scrim a bit further, to coincide with the // view fade in. Otherwise the empty panel can be quite jarring. mNotificationsAlpha = mTransparentScrimBackground ? 0 : MathUtils.constrainedMap(0f, 1f, 0.3f, 0.75f, mPanelExpansionFraction); // behind scrim finishing fading in. // Also to coincide with the view starting to fade in, otherwise the empty // panel can be quite jarring. mNotificationsAlpha = MathUtils .constrainedMap(0f, 1f, 0.3f, 0.75f, mPanelExpansionFraction); } } mBehindTint = mState.getBehindTint(); mInFrontAlpha = 0; Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java +10 −2 Original line number Diff line number Diff line Loading @@ -630,6 +630,7 @@ public class ScrimControllerTest extends SysuiTestCase { @Test public void transitionToUnlocked() { mScrimController.setClipsQsScrim(false); mScrimController.setRawPanelExpansionFraction(0f); mScrimController.transitionTo(ScrimState.UNLOCKED); finishAnimationsImmediately(); Loading @@ -645,14 +646,21 @@ public class ScrimControllerTest extends SysuiTestCase { )); // Back scrim should be visible after start dragging mScrimController.setRawPanelExpansionFraction(0.3f); mScrimController.setRawPanelExpansionFraction(0.29f); assertScrimAlpha(Map.of( mScrimInFront, TRANSPARENT, mNotificationsScrim, TRANSPARENT, mScrimBehind, SEMI_TRANSPARENT)); // Back scrim should be opaque at 30% mScrimController.setRawPanelExpansionFraction(0.3f); assertScrimAlpha(Map.of( mScrimInFront, TRANSPARENT, mNotificationsScrim, TRANSPARENT, mScrimBehind, OPAQUE)); // Then, notification scrim should fade in mScrimController.setRawPanelExpansionFraction(0.7f); mScrimController.setRawPanelExpansionFraction(0.31f); assertScrimAlpha(Map.of( mScrimInFront, TRANSPARENT, mNotificationsScrim, SEMI_TRANSPARENT, Loading