Do not darken scrims when unlocking with fp
Scrims would darken because notification panel would collapse. Introduced a method to ignore the panel expansion. Test: atest packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java Test: unlock with fp from bouncer and AOD Test: pull down QS after unlocking, look at scrims Fixes: 74426737 Change-Id: I94f4a3f3b5ea1eed709c853d945e646cd3f41f78
This commit is contained in:
@@ -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;
|
||||
@@ -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();
|
||||
@@ -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() {
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user