diff options
| author | 2024-08-16 17:31:43 +0000 | |
|---|---|---|
| committer | 2024-08-16 22:10:50 +0000 | |
| commit | 17339f3491381c14789ff25ec2fda3c83d61b041 (patch) | |
| tree | 6c5967307854d051401aaf7f53203439e89659fa | |
| parent | e5850ff0b541f6044c7da33f0febd01b7248175c (diff) | |
Restart any pending bouncer lockout when device boots up.
Fixes: 358594612
Flag: com.android.systemui.scene_container
Test: atest BouncerMessageViewModelTest
Test: manually,
1. try incorrect pin for 10 times to start a 300 second lockout timer.
2. restart the device
3. Go to bouncer, lockout timer should continue showing seconds left in lockdown
Change-Id: I3cf427b3ac69ebcfa04de4dff1136e9ebec5d50a
2 files changed, 19 insertions, 0 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerMessageViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerMessageViewModelTest.kt index b83ab7ef0c1b..c1615253804c 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerMessageViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerMessageViewModelTest.kt @@ -430,6 +430,22 @@ class BouncerMessageViewModelTest : SysuiTestCase() { .isEqualTo("Can’t unlock with face. Too many attempts.") } + @Test + fun startLockdownCountdown_onActivated() = + testScope.runTest { + val bouncerMessage by collectLastValue(underTest.message) + val lockoutSeconds = 200 * 1000 // 200 second lockout + kosmos.fakeAuthenticationRepository.setAuthenticationMethod(Pin) + kosmos.fakeAuthenticationRepository.reportLockoutStarted(lockoutSeconds) + runCurrent() + + assertThat(bouncerMessage?.text).isEqualTo("Try again in 200 seconds.") + advanceTimeBy(100.seconds) + assertThat(bouncerMessage?.text).isEqualTo("Try again in 100 seconds.") + advanceTimeBy(101.seconds) + assertThat(bouncerMessage?.text).isEqualTo("Enter PIN") + } + private fun TestScope.verifyMessagesForAuthFlags( vararg authFlagToMessagePair: Pair<Int, Pair<String, String?>> ) { diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerMessageViewModel.kt b/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerMessageViewModel.kt index d746220dd7ce..cfd4f506f169 100644 --- a/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerMessageViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerMessageViewModel.kt @@ -264,6 +264,9 @@ constructor( // Keeps the lockout message up-to-date. launch { bouncerInteractor.onLockoutStarted.collect { startLockoutCountdown() } } + // Start already active lockdown if it exists + launch { startLockoutCountdown() } + // Listens to relevant bouncer events launch { bouncerInteractor.onIncorrectBouncerInput |