Merge "Fix scrim animation when unlocking with fp" into pi-dev

This commit is contained in:
TreeHugger Robot
2018-03-28 06:23:20 +00:00
committed by Android (Google) Code Review
5 changed files with 16 additions and 6 deletions

View File

@@ -399,4 +399,11 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback {
pw.print(" mMode="); pw.println(mMode);
pw.print(" mWakeLock="); pw.println(mWakeLock);
}
public boolean isWakeAndUnlock() {
return mMode == MODE_UNLOCK
|| mMode == MODE_WAKE_AND_UNLOCK
|| mMode == MODE_WAKE_AND_UNLOCK_PULSING
|| mMode == MODE_WAKE_AND_UNLOCK_FROM_DREAM;
}
}

View File

@@ -347,7 +347,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
if (mExpansionFraction != fraction) {
mExpansionFraction = fraction;
if (!(mState == ScrimState.UNLOCKED || mState == ScrimState.KEYGUARD)) {
final boolean keyguardOrUnlocked = mState == ScrimState.UNLOCKED
|| mState == ScrimState.KEYGUARD;
if (!keyguardOrUnlocked || !mExpansionAffectsAlpha) {
return;
}

View File

@@ -156,7 +156,6 @@ public enum ScrimState {
mCurrentBehindTint = Color.BLACK;
mBlankScreen = true;
} else {
// Scrims should still be black at the end of the transition.
mCurrentInFrontTint = Color.TRANSPARENT;
mCurrentBehindTint = Color.TRANSPARENT;
mBlankScreen = false;

View File

@@ -4659,9 +4659,8 @@ 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);
// Do not animate the scrim expansion when triggered by the fingerprint sensor.
mScrimController.setExpansionAffectsAlpha(!mFingerprintUnlockController.isWakeAndUnlock());
if (mBouncerShowing) {
// Bouncer needs the front scrim when it's on top of an activity,

View File

@@ -26,6 +26,7 @@ import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
@@ -73,7 +74,7 @@ public class ScrimControllerTest extends SysuiTestCase {
@Before
public void setup() {
mLightBarController = mock(LightBarController.class);
mScrimBehind = new ScrimView(getContext());
mScrimBehind = spy(new ScrimView(getContext()));
mScrimInFront = new ScrimView(getContext());
mWakeLock = mock(WakeLock.class);
mAlarmManager = mock(AlarmManager.class);
@@ -210,8 +211,10 @@ public class ScrimControllerTest extends SysuiTestCase {
mScrimController.finishAnimationsImmediately();
final float scrimAlpha = mScrimBehind.getViewAlpha();
reset(mScrimBehind);
mScrimController.setExpansionAffectsAlpha(false);
mScrimController.setPanelExpansion(0.8f);
verifyZeroInteractions(mScrimBehind);
Assert.assertEquals("Scrim opacity shouldn't change when setExpansionAffectsAlpha "
+ "is false", scrimAlpha, mScrimBehind.getViewAlpha(), 0.01f);