diff options
| author | 2022-11-18 12:26:01 +0000 | |
|---|---|---|
| committer | 2022-11-18 12:26:01 +0000 | |
| commit | 280d2b8762cd13d47b28254ad6b1a6309c306ebe (patch) | |
| tree | 28f2711b89b518b56f6decf45efefa7ca5fcbef7 | |
| parent | 2850e3301abf4cdcbaddb8663a1d5b47ae77e9c1 (diff) | |
| parent | 7afd3eeb7465508d1aeea51645b29733612584f0 (diff) | |
Merge "MODE_SHOW_BOUNCER - Make sure bouncer shows" into tm-qpr-dev
3 files changed, 28 insertions, 0 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 f72f1bcdcb1b..182d39705ed6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java @@ -763,6 +763,15 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp } @Override + public void onKeyguardBouncerStateChanged(boolean bouncerIsOrWillBeShowing) { + // When the bouncer is dismissed, treat this as a reset of the unlock mode. The user + // may have gone back instead of successfully unlocking + if (!bouncerIsOrWillBeShowing) { + resetMode(); + } + } + + @Override public void dump(PrintWriter pw, String[] args) { pw.println(" BiometricUnlockController:"); pw.print(" mMode="); pw.println(mMode); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index 01a1ebe7fd68..26da1c05a0ac 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -20,6 +20,7 @@ import static android.view.WindowInsets.Type.navigationBars; import static com.android.systemui.plugins.ActivityStarter.OnDismissAction; import static com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_DISMISS_BOUNCER; +import static com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_SHOW_BOUNCER; import static com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_UNLOCK_COLLAPSING; import static com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_WAKE_AND_UNLOCK; import static com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_WAKE_AND_UNLOCK_PULSING; @@ -478,6 +479,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb } else if (mKeyguardStateController.isShowing() && !hideBouncerOverDream) { if (!isWakeAndUnlocking() && !(mBiometricUnlockController.getMode() == MODE_DISMISS_BOUNCER) + && !(mBiometricUnlockController.getMode() == MODE_SHOW_BOUNCER) && !isUnlockCollapsing()) { if (mPrimaryBouncer != null) { mPrimaryBouncer.setExpansion(fraction); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java index 9f70565749df..0ae3a10c5834 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java @@ -307,6 +307,23 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { } @Test + public void onPanelExpansionChanged_neverTranslatesBouncerWhenShowBouncer() { + // Since KeyguardBouncer.EXPANSION_VISIBLE = 0 panel expansion, if the unlock is dismissing + // the bouncer, there may be an onPanelExpansionChanged(0) call to collapse the panel + // which would mistakenly cause the bouncer to show briefly before its visibility + // is set to hide. Therefore, we don't want to propagate panelExpansionChanged to the + // bouncer if the bouncer is dismissing as a result of a biometric unlock. + when(mBiometricUnlockController.getMode()) + .thenReturn(BiometricUnlockController.MODE_SHOW_BOUNCER); + mStatusBarKeyguardViewManager.onPanelExpansionChanged( + expansionEvent( + /* fraction= */ KeyguardBouncer.EXPANSION_VISIBLE, + /* expanded= */ true, + /* tracking= */ false)); + verify(mPrimaryBouncer, never()).setExpansion(anyFloat()); + } + + @Test public void onPanelExpansionChanged_neverTranslatesBouncerWhenShadeLocked() { when(mStatusBarStateController.getState()).thenReturn(StatusBarState.SHADE_LOCKED); mStatusBarKeyguardViewManager.onPanelExpansionChanged( |