Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +9 −0 Original line number Diff line number Diff line Loading @@ -126,6 +126,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, private float mExpansionFraction = 1f; private boolean mDarkenWhileDragging; private boolean mExpansionAffectsAlpha = true; protected boolean mAnimateChange; private boolean mUpdatePending; private boolean mTracking; Loading Loading @@ -381,6 +382,10 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, } private void applyExpansionToAlpha() { if (!mExpansionAffectsAlpha) { return; } if (mState == ScrimState.UNLOCKED) { // Darken scrim as you pull down the shade when unlocked float behindFraction = getInterpolatedFraction(); Loading Loading @@ -912,6 +917,10 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, mScreenOn = false; } public void setExpansionAffectsAlpha(boolean expansionAffectsAlpha) { mExpansionAffectsAlpha = expansionAffectsAlpha; } public interface Callback { default void onStart() { } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +5 −0 Original line number Diff line number Diff line Loading @@ -3688,6 +3688,7 @@ public class StatusBar extends SystemUI implements DemoMode, public void finishKeyguardFadingAway() { mKeyguardFadingAway = false; mKeyguardMonitor.notifyKeyguardDoneFading(); mScrimController.setExpansionAffectsAlpha(true); } // TODO: Move this to NotificationLockscreenUserManager. Loading Loading @@ -4618,6 +4619,10 @@ public class StatusBar extends SystemUI implements DemoMode, final boolean wakeAndUnlocking = mFingerprintUnlockController.getMode() == FingerprintUnlockController.MODE_WAKE_AND_UNLOCK; // Do not animate the scrim expansion when it's triggered by the fingerprint sensor. mScrimController.setExpansionAffectsAlpha(mFingerprintUnlockController.getMode() != FingerprintUnlockController.MODE_UNLOCK); if (mBouncerShowing) { mScrimController.transitionTo( mIsOccluded ? ScrimState.BOUNCER_OCCLUDED : ScrimState.BOUNCER); Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -205,6 +205,25 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimVisibility(VISIBILITY_FULLY_TRANSPARENT, VISIBILITY_SEMI_TRANSPARENT); } @Test public void panelExpansionAffectsAlpha() { mScrimController.setPanelExpansion(0f); mScrimController.setPanelExpansion(0.5f); mScrimController.transitionTo(ScrimState.UNLOCKED); mScrimController.finishAnimationsImmediately(); final float scrimAlpha = mScrimBehind.getViewAlpha(); mScrimController.setExpansionAffectsAlpha(false); mScrimController.setPanelExpansion(0.8f); Assert.assertEquals("Scrim opacity shouldn't change when setExpansionAffectsAlpha " + "is false", scrimAlpha, mScrimBehind.getViewAlpha(), 0.01f); mScrimController.setExpansionAffectsAlpha(true); mScrimController.setPanelExpansion(0.1f); Assert.assertNotEquals("Scrim opacity should change when setExpansionAffectsAlpha " + "is true", scrimAlpha, mScrimBehind.getViewAlpha(), 0.01f); } @Test public void transitionToUnlockedFromAod() { // Simulate unlock with fingerprint Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +9 −0 Original line number Diff line number Diff line Loading @@ -126,6 +126,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, private float mExpansionFraction = 1f; private boolean mDarkenWhileDragging; private boolean mExpansionAffectsAlpha = true; protected boolean mAnimateChange; private boolean mUpdatePending; private boolean mTracking; Loading Loading @@ -381,6 +382,10 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, } private void applyExpansionToAlpha() { if (!mExpansionAffectsAlpha) { return; } if (mState == ScrimState.UNLOCKED) { // Darken scrim as you pull down the shade when unlocked float behindFraction = getInterpolatedFraction(); Loading Loading @@ -912,6 +917,10 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, mScreenOn = false; } public void setExpansionAffectsAlpha(boolean expansionAffectsAlpha) { mExpansionAffectsAlpha = expansionAffectsAlpha; } public interface Callback { default void onStart() { } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +5 −0 Original line number Diff line number Diff line Loading @@ -3688,6 +3688,7 @@ public class StatusBar extends SystemUI implements DemoMode, public void finishKeyguardFadingAway() { mKeyguardFadingAway = false; mKeyguardMonitor.notifyKeyguardDoneFading(); mScrimController.setExpansionAffectsAlpha(true); } // TODO: Move this to NotificationLockscreenUserManager. Loading Loading @@ -4618,6 +4619,10 @@ public class StatusBar extends SystemUI implements DemoMode, final boolean wakeAndUnlocking = mFingerprintUnlockController.getMode() == FingerprintUnlockController.MODE_WAKE_AND_UNLOCK; // Do not animate the scrim expansion when it's triggered by the fingerprint sensor. mScrimController.setExpansionAffectsAlpha(mFingerprintUnlockController.getMode() != FingerprintUnlockController.MODE_UNLOCK); if (mBouncerShowing) { mScrimController.transitionTo( mIsOccluded ? ScrimState.BOUNCER_OCCLUDED : ScrimState.BOUNCER); Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -205,6 +205,25 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimVisibility(VISIBILITY_FULLY_TRANSPARENT, VISIBILITY_SEMI_TRANSPARENT); } @Test public void panelExpansionAffectsAlpha() { mScrimController.setPanelExpansion(0f); mScrimController.setPanelExpansion(0.5f); mScrimController.transitionTo(ScrimState.UNLOCKED); mScrimController.finishAnimationsImmediately(); final float scrimAlpha = mScrimBehind.getViewAlpha(); mScrimController.setExpansionAffectsAlpha(false); mScrimController.setPanelExpansion(0.8f); Assert.assertEquals("Scrim opacity shouldn't change when setExpansionAffectsAlpha " + "is false", scrimAlpha, mScrimBehind.getViewAlpha(), 0.01f); mScrimController.setExpansionAffectsAlpha(true); mScrimController.setPanelExpansion(0.1f); Assert.assertNotEquals("Scrim opacity should change when setExpansionAffectsAlpha " + "is true", scrimAlpha, mScrimBehind.getViewAlpha(), 0.01f); } @Test public void transitionToUnlockedFromAod() { // Simulate unlock with fingerprint Loading