Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +32 −14 Original line number Diff line number Diff line Loading @@ -168,6 +168,27 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump */ @FloatRange(from = 0, to = 1) private float mBouncerHiddenFraction = KeyguardBouncerConstants.EXPANSION_HIDDEN; private boolean mIsBlurSupported = false; private float getDefaultScrimAlpha(boolean ignoreCurrentState) { if (Flags.bouncerUiRevamp() && mIsBlurSupported) { // Hack to not make the shade transparent when shade blur is not enabled. if (!Flags.notificationShadeBlur() && !ignoreCurrentState) { // When we expand directly to full quick settings, shade state is KEYGUARD if (mState == ScrimState.SHADE_LOCKED || (mState == ScrimState.KEYGUARD && mQsExpansion == 1)) { return BUSY_SCRIM_ALPHA; } } return TRANSPARENT_BOUNCER_SCRIM_ALPHA; } else { return BUSY_SCRIM_ALPHA; } } private float getDefaultScrimAlpha() { return getDefaultScrimAlpha(false); } @IntDef(prefix = {"VISIBILITY_"}, value = { TRANSPARENT, Loading Loading @@ -230,7 +251,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump private float mScrimBehindAlphaKeyguard = KEYGUARD_SCRIM_ALPHA; static final float TRANSPARENT_BOUNCER_SCRIM_ALPHA = 0.54f; private float mDefaultScrimAlpha; private float mRawPanelExpansionFraction; private float mPanelScrimMinFraction; Loading Loading @@ -350,7 +370,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump mLargeScreenShadeInterpolator = largeScreenShadeInterpolator; mBlurConfig = blurConfig; mWindowRootViewBlurInteractor = windowRootViewBlurInteractor; mDefaultScrimAlpha = BUSY_SCRIM_ALPHA; mKeyguardStateController = keyguardStateController; mDarkenWhileDragging = !mKeyguardStateController.canDismissLockScreen(); Loading Loading @@ -414,7 +433,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump states[i].init(mScrimInFront, mScrimBehind, mDozeParameters, mDockManager, this::isBlurCurrentlySupported); states[i].setScrimBehindAlphaKeyguard(mScrimBehindAlphaKeyguard); states[i].setDefaultScrimAlpha(mDefaultScrimAlpha); states[i].setDefaultScrimAlpha(getDefaultScrimAlpha()); } mTransparentScrimBackground = notificationsScrim.getResources() Loading Loading @@ -498,10 +517,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump } } private void updateDefaultScrimAlpha(float alpha) { mDefaultScrimAlpha = alpha; private void updateDefaultScrimAlphas() { for (ScrimState state : ScrimState.values()) { state.setDefaultScrimAlpha(mDefaultScrimAlpha); state.setDefaultScrimAlpha(getDefaultScrimAlpha(true)); } applyAndDispatchState(); } Loading @@ -513,13 +531,13 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump } private void handleBlurSupportedChanged(boolean isBlurSupported) { this.mIsBlurSupported = isBlurSupported; if (Flags.bouncerUiRevamp()) { updateDefaultScrimAlphas(); if (isBlurSupported) { updateDefaultScrimAlpha(TRANSPARENT_BOUNCER_SCRIM_ALPHA); ScrimState.BOUNCER_SCRIMMED.setNotifBlurRadius(mBlurConfig.getMaxBlurRadiusPx()); } else { ScrimState.BOUNCER_SCRIMMED.setNotifBlurRadius(0f); updateDefaultScrimAlpha(BUSY_SCRIM_ALPHA); } } if (Flags.notificationShadeBlur()) { Loading Loading @@ -1003,7 +1021,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump float behindFraction = getInterpolatedFraction(); behindFraction = (float) Math.pow(behindFraction, 0.8f); mBehindAlpha = 1; mNotificationsAlpha = behindFraction * mDefaultScrimAlpha; mNotificationsAlpha = behindFraction * getDefaultScrimAlpha(); } else { if (Flags.notificationShadeBlur()) { // TODO (b/390730594): match any spec for controlling alpha based on shade Loading @@ -1014,7 +1032,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump mNotificationsTint = mState.getNotifTint(); } else { mBehindAlpha = mLargeScreenShadeInterpolator.getBehindScrimAlpha( mPanelExpansionFraction * mDefaultScrimAlpha); mPanelExpansionFraction * getDefaultScrimAlpha()); mNotificationsAlpha = mLargeScreenShadeInterpolator.getNotificationScrimAlpha( mPanelExpansionFraction); Loading @@ -1030,7 +1048,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump final float interpolatedFraction = BouncerPanelExpansionCalculator.aboutToShowBouncerProgress( mBouncerHiddenFraction); mBehindAlpha = MathUtils.lerp(mDefaultScrimAlpha, mBehindAlpha, mBehindAlpha = MathUtils.lerp(getDefaultScrimAlpha(), mBehindAlpha, interpolatedFraction); mBehindTint = ColorUtils.blendARGB(ScrimState.BOUNCER.getBehindTint(), mBehindTint, Loading Loading @@ -1120,7 +1138,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump float behindAlpha; int behindTint = state.getBehindTint(); if (mDarkenWhileDragging) { behindAlpha = MathUtils.lerp(mDefaultScrimAlpha, stateBehind, behindAlpha = MathUtils.lerp(getDefaultScrimAlpha(), stateBehind, interpolatedFract); } else { behindAlpha = MathUtils.lerp(0 /* start */, stateBehind, Loading @@ -1136,7 +1154,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump } } if (mQsExpansion > 0) { behindAlpha = MathUtils.lerp(behindAlpha, mDefaultScrimAlpha, mQsExpansion); behindAlpha = MathUtils.lerp(behindAlpha, getDefaultScrimAlpha(), mQsExpansion); float tintProgress = mQsExpansion; if (mStatusBarKeyguardViewManager.isPrimaryBouncerInTransit()) { // this is case of - on lockscreen - going from expanded QS to bouncer. Loading Loading @@ -1653,7 +1671,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump pw.println(mTransitionToLockScreenFullShadeNotificationsProgress); pw.print(" mDefaultScrimAlpha="); pw.println(mDefaultScrimAlpha); pw.println(getDefaultScrimAlpha()); pw.print(" mPanelExpansionFraction="); pw.println(mPanelExpansionFraction); pw.print(" mExpansionAffectsAlpha="); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java +12 −1 Original line number Diff line number Diff line Loading @@ -151,7 +151,9 @@ public enum ScrimState { @Override public void prepare(ScrimState previousState) { if (Flags.bouncerUiRevamp()) { if (previousState == SHADE_LOCKED) { // Add unlocked here because scrim state is unlocked when there is an app on top of // the lockscreen and shade is pulled over it. if (previousState == SHADE_LOCKED || previousState == UNLOCKED) { mBehindAlpha = previousState.getBehindAlpha(); mNotifAlpha = previousState.getNotifAlpha(); } else { Loading Loading @@ -195,6 +197,15 @@ public enum ScrimState { mNotifAlpha = Color.alpha(mNotifTint) / 255.0f; mFrontAlpha = 0.0f; } else { if (Flags.bouncerUiRevamp()) { // This is only required until shade blur flag is fully enabled, shade is always // opaque when shade blur is not enabled, and mClipQsScrim is always false. mBehindAlpha = 1f; mNotifAlpha = 1f; mFrontAlpha = 0f; mBehindTint = mBackgroundColor; return; } mBehindAlpha = mClipQsScrim ? 1 : mDefaultScrimAlpha; mNotifAlpha = 1f; mFrontAlpha = 0f; Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +32 −14 Original line number Diff line number Diff line Loading @@ -168,6 +168,27 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump */ @FloatRange(from = 0, to = 1) private float mBouncerHiddenFraction = KeyguardBouncerConstants.EXPANSION_HIDDEN; private boolean mIsBlurSupported = false; private float getDefaultScrimAlpha(boolean ignoreCurrentState) { if (Flags.bouncerUiRevamp() && mIsBlurSupported) { // Hack to not make the shade transparent when shade blur is not enabled. if (!Flags.notificationShadeBlur() && !ignoreCurrentState) { // When we expand directly to full quick settings, shade state is KEYGUARD if (mState == ScrimState.SHADE_LOCKED || (mState == ScrimState.KEYGUARD && mQsExpansion == 1)) { return BUSY_SCRIM_ALPHA; } } return TRANSPARENT_BOUNCER_SCRIM_ALPHA; } else { return BUSY_SCRIM_ALPHA; } } private float getDefaultScrimAlpha() { return getDefaultScrimAlpha(false); } @IntDef(prefix = {"VISIBILITY_"}, value = { TRANSPARENT, Loading Loading @@ -230,7 +251,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump private float mScrimBehindAlphaKeyguard = KEYGUARD_SCRIM_ALPHA; static final float TRANSPARENT_BOUNCER_SCRIM_ALPHA = 0.54f; private float mDefaultScrimAlpha; private float mRawPanelExpansionFraction; private float mPanelScrimMinFraction; Loading Loading @@ -350,7 +370,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump mLargeScreenShadeInterpolator = largeScreenShadeInterpolator; mBlurConfig = blurConfig; mWindowRootViewBlurInteractor = windowRootViewBlurInteractor; mDefaultScrimAlpha = BUSY_SCRIM_ALPHA; mKeyguardStateController = keyguardStateController; mDarkenWhileDragging = !mKeyguardStateController.canDismissLockScreen(); Loading Loading @@ -414,7 +433,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump states[i].init(mScrimInFront, mScrimBehind, mDozeParameters, mDockManager, this::isBlurCurrentlySupported); states[i].setScrimBehindAlphaKeyguard(mScrimBehindAlphaKeyguard); states[i].setDefaultScrimAlpha(mDefaultScrimAlpha); states[i].setDefaultScrimAlpha(getDefaultScrimAlpha()); } mTransparentScrimBackground = notificationsScrim.getResources() Loading Loading @@ -498,10 +517,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump } } private void updateDefaultScrimAlpha(float alpha) { mDefaultScrimAlpha = alpha; private void updateDefaultScrimAlphas() { for (ScrimState state : ScrimState.values()) { state.setDefaultScrimAlpha(mDefaultScrimAlpha); state.setDefaultScrimAlpha(getDefaultScrimAlpha(true)); } applyAndDispatchState(); } Loading @@ -513,13 +531,13 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump } private void handleBlurSupportedChanged(boolean isBlurSupported) { this.mIsBlurSupported = isBlurSupported; if (Flags.bouncerUiRevamp()) { updateDefaultScrimAlphas(); if (isBlurSupported) { updateDefaultScrimAlpha(TRANSPARENT_BOUNCER_SCRIM_ALPHA); ScrimState.BOUNCER_SCRIMMED.setNotifBlurRadius(mBlurConfig.getMaxBlurRadiusPx()); } else { ScrimState.BOUNCER_SCRIMMED.setNotifBlurRadius(0f); updateDefaultScrimAlpha(BUSY_SCRIM_ALPHA); } } if (Flags.notificationShadeBlur()) { Loading Loading @@ -1003,7 +1021,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump float behindFraction = getInterpolatedFraction(); behindFraction = (float) Math.pow(behindFraction, 0.8f); mBehindAlpha = 1; mNotificationsAlpha = behindFraction * mDefaultScrimAlpha; mNotificationsAlpha = behindFraction * getDefaultScrimAlpha(); } else { if (Flags.notificationShadeBlur()) { // TODO (b/390730594): match any spec for controlling alpha based on shade Loading @@ -1014,7 +1032,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump mNotificationsTint = mState.getNotifTint(); } else { mBehindAlpha = mLargeScreenShadeInterpolator.getBehindScrimAlpha( mPanelExpansionFraction * mDefaultScrimAlpha); mPanelExpansionFraction * getDefaultScrimAlpha()); mNotificationsAlpha = mLargeScreenShadeInterpolator.getNotificationScrimAlpha( mPanelExpansionFraction); Loading @@ -1030,7 +1048,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump final float interpolatedFraction = BouncerPanelExpansionCalculator.aboutToShowBouncerProgress( mBouncerHiddenFraction); mBehindAlpha = MathUtils.lerp(mDefaultScrimAlpha, mBehindAlpha, mBehindAlpha = MathUtils.lerp(getDefaultScrimAlpha(), mBehindAlpha, interpolatedFraction); mBehindTint = ColorUtils.blendARGB(ScrimState.BOUNCER.getBehindTint(), mBehindTint, Loading Loading @@ -1120,7 +1138,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump float behindAlpha; int behindTint = state.getBehindTint(); if (mDarkenWhileDragging) { behindAlpha = MathUtils.lerp(mDefaultScrimAlpha, stateBehind, behindAlpha = MathUtils.lerp(getDefaultScrimAlpha(), stateBehind, interpolatedFract); } else { behindAlpha = MathUtils.lerp(0 /* start */, stateBehind, Loading @@ -1136,7 +1154,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump } } if (mQsExpansion > 0) { behindAlpha = MathUtils.lerp(behindAlpha, mDefaultScrimAlpha, mQsExpansion); behindAlpha = MathUtils.lerp(behindAlpha, getDefaultScrimAlpha(), mQsExpansion); float tintProgress = mQsExpansion; if (mStatusBarKeyguardViewManager.isPrimaryBouncerInTransit()) { // this is case of - on lockscreen - going from expanded QS to bouncer. Loading Loading @@ -1653,7 +1671,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump pw.println(mTransitionToLockScreenFullShadeNotificationsProgress); pw.print(" mDefaultScrimAlpha="); pw.println(mDefaultScrimAlpha); pw.println(getDefaultScrimAlpha()); pw.print(" mPanelExpansionFraction="); pw.println(mPanelExpansionFraction); pw.print(" mExpansionAffectsAlpha="); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java +12 −1 Original line number Diff line number Diff line Loading @@ -151,7 +151,9 @@ public enum ScrimState { @Override public void prepare(ScrimState previousState) { if (Flags.bouncerUiRevamp()) { if (previousState == SHADE_LOCKED) { // Add unlocked here because scrim state is unlocked when there is an app on top of // the lockscreen and shade is pulled over it. if (previousState == SHADE_LOCKED || previousState == UNLOCKED) { mBehindAlpha = previousState.getBehindAlpha(); mNotifAlpha = previousState.getNotifAlpha(); } else { Loading Loading @@ -195,6 +197,15 @@ public enum ScrimState { mNotifAlpha = Color.alpha(mNotifTint) / 255.0f; mFrontAlpha = 0.0f; } else { if (Flags.bouncerUiRevamp()) { // This is only required until shade blur flag is fully enabled, shade is always // opaque when shade blur is not enabled, and mClipQsScrim is always false. mBehindAlpha = 1f; mNotifAlpha = 1f; mFrontAlpha = 0f; mBehindTint = mBackgroundColor; return; } mBehindAlpha = mClipQsScrim ? 1 : mDefaultScrimAlpha; mNotifAlpha = 1f; mFrontAlpha = 0f; Loading