diff options
| author | 2020-07-29 19:48:57 +0000 | |
|---|---|---|
| committer | 2020-07-29 19:48:57 +0000 | |
| commit | 3457f4058990a6606899f1c0ef4128dc0940db08 (patch) | |
| tree | 8f18d55d23b7426df26455aa623cf00e2b2e3891 | |
| parent | 71818ce4904af49a4f8795b209f12d3f91f20a84 (diff) | |
| parent | a7f7936590c0f63f9548b3462f4cdb541a57c4e0 (diff) | |
Merge "Do not animate padlock when fp" into rvc-d1-dev
4 files changed, 24 insertions, 7 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java index 303a0831b52f..0e76c904f8cd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java @@ -152,6 +152,7 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp private final Context mContext; private final int mWakeUpDelay; private int mMode; + private BiometricSourceType mBiometricType; private KeyguardViewController mKeyguardViewController; private DozeScrimController mDozeScrimController; private KeyguardViewMediator mKeyguardViewMediator; @@ -340,6 +341,7 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp Trace.endSection(); return; } + mBiometricType = biometricSourceType; mMetricsLogger.write(new LogMaker(MetricsEvent.BIOMETRIC_AUTH) .setType(MetricsEvent.TYPE_SUCCESS).setSubtype(toSubtype(biometricSourceType))); Optional.ofNullable(BiometricUiEvent.SUCCESS_EVENT_BY_SOURCE_TYPE.get(biometricSourceType)) @@ -615,6 +617,7 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp private void resetMode() { mMode = MODE_NONE; + mBiometricType = null; mNotificationShadeWindowController.setForceDozeBrightness(false); if (mStatusBar.getNavigationBarView() != null) { mStatusBar.getNavigationBarView().setWakeAndUnlocking(false); @@ -680,8 +683,8 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp /** * Successful authentication with fingerprint, face, or iris when the lockscreen fades away */ - public boolean isUnlockFading() { - return mMode == MODE_UNLOCK_FADING; + public BiometricSourceType getBiometricType() { + return mBiometricType; } /** diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java index 5d3910b4c415..7a8dc32741bf 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java @@ -83,6 +83,7 @@ public class LockscreenLockIconController { private boolean mWakeAndUnlockRunning; private boolean mShowingLaunchAffordance; private boolean mBouncerShowingScrimmed; + private boolean mFingerprintUnlock; private int mStatusBarState = StatusBarState.SHADE; private LockIcon mLockIcon; @@ -389,14 +390,19 @@ public class LockscreenLockIconController { /** * We need to hide the lock whenever there's a fingerprint unlock, otherwise you'll see the * icon on top of the black front scrim. + * We also want to halt padlock the animation when we're in face bypass mode or dismissing the + * keyguard with fingerprint. * @param wakeAndUnlock are we wake and unlocking * @param isUnlock are we currently unlocking */ - public void onBiometricAuthModeChanged(boolean wakeAndUnlock, boolean isUnlock) { + public void onBiometricAuthModeChanged(boolean wakeAndUnlock, boolean isUnlock, + BiometricSourceType type) { if (wakeAndUnlock) { mWakeAndUnlockRunning = true; } - if (isUnlock && mKeyguardBypassController.getBypassEnabled() && canBlockUpdates()) { + mFingerprintUnlock = type == BiometricSourceType.FINGERPRINT; + if (isUnlock && (mFingerprintUnlock || mKeyguardBypassController.getBypassEnabled()) + && canBlockUpdates()) { // We don't want the icon to change while we are unlocking mBlockUpdates = true; } @@ -513,10 +519,13 @@ public class LockscreenLockIconController { && (!mStatusBarStateController.isPulsing() || mDocked); boolean invisible = onAodNotPulsingOrDocked || mWakeAndUnlockRunning || mShowingLaunchAffordance; - if (mKeyguardBypassController.getBypassEnabled() && !mBouncerShowingScrimmed) { + boolean fingerprintOrBypass = mFingerprintUnlock + || mKeyguardBypassController.getBypassEnabled(); + if (fingerprintOrBypass && !mBouncerShowingScrimmed) { if ((mHeadsUpManagerPhone.isHeadsUpGoingAway() || mHeadsUpManagerPhone.hasPinnedHeadsUp() - || mStatusBarState == StatusBarState.KEYGUARD) + || mStatusBarState == StatusBarState.KEYGUARD + || mStatusBarState == StatusBarState.SHADE) && !mNotificationWakeUpCoordinator.getNotificationsFullyHidden()) { invisible = true; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index b65bd45ce11c..f125b7d10035 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -3981,7 +3981,8 @@ public class StatusBar extends SystemUI implements DemoMode, updateScrimController(); mLockscreenLockIconController.onBiometricAuthModeChanged( mBiometricUnlockController.isWakeAndUnlock(), - mBiometricUnlockController.isBiometricUnlock()); + mBiometricUnlockController.isBiometricUnlock(), + mBiometricUnlockController.getBiometricType()); } @VisibleForTesting diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java index a927c8011b8f..64907eef2dd0 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java @@ -136,6 +136,8 @@ public class BiometricsUnlockControllerTest extends SysuiTestCase { anyFloat()); assertThat(mBiometricUnlockController.getMode()) .isEqualTo(BiometricUnlockController.MODE_SHOW_BOUNCER); + assertThat(mBiometricUnlockController.getBiometricType()) + .isEqualTo(BiometricSourceType.FINGERPRINT); } @Test @@ -268,6 +270,8 @@ public class BiometricsUnlockControllerTest extends SysuiTestCase { verify(mStatusBarKeyguardViewManager).notifyKeyguardAuthenticated(eq(false)); assertThat(mBiometricUnlockController.getMode()) .isEqualTo(BiometricUnlockController.MODE_DISMISS_BOUNCER); + assertThat(mBiometricUnlockController.getBiometricType()) + .isEqualTo(BiometricSourceType.FACE); } @Test |