diff options
| author | 2024-04-23 17:36:19 +0000 | |
|---|---|---|
| committer | 2024-04-24 13:03:05 +0000 | |
| commit | 2e336be2a736479d9d60e66d8346d8b1316eac3b (patch) | |
| tree | 92e23247ccab468232227a0cb5fb72fb6695555f | |
| parent | 8e1ad154a870d73e3030d6a5f0fb752c6a678023 (diff) | |
Fix ALTERNATE_BOUNCER->GONE...
... when face unlock happens fast, before the transition
to ALTERNATE_BOUNCER completes. This matches the logic
for every other transition.
And move the tests to be multivalent
Fixes: 335285286
Test: atest KeyguardTransitionScenariosTest
Flag: N/A
Change-Id: Id16d92a57b19c6664abb029397c0798c8c9e1507
| -rw-r--r-- | packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractorTest.kt (renamed from packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractorTest.kt) | 8 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractor.kt | 9 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt | 25 | ||||
| -rw-r--r-- | packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt (renamed from packages/SystemUI/tests/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt) | 2 |
4 files changed, 33 insertions, 11 deletions
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractorTest.kt index 52bdf0eeb1c6..cfc6b3304399 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractorTest.kt @@ -46,11 +46,12 @@ import com.android.systemui.power.data.repository.fakePowerRepository import com.android.systemui.power.shared.model.WakeSleepReason import com.android.systemui.power.shared.model.WakefulnessState import com.android.systemui.testKosmos -import kotlin.test.Test import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.test.advanceTimeBy import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Before +import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mockito import org.mockito.Mockito.reset @@ -124,6 +125,8 @@ class FromAlternateBouncerTransitionInteractorTest : SysuiTestCase() { ) kosmos.fakeKeyguardRepository.setKeyguardOccluded(true) kosmos.fakeKeyguardBouncerRepository.setAlternateVisible(true) + runCurrent() + transitionRepository.sendTransitionSteps( from = KeyguardState.OCCLUDED, to = KeyguardState.ALTERNATE_BOUNCER, @@ -132,8 +135,7 @@ class FromAlternateBouncerTransitionInteractorTest : SysuiTestCase() { reset(transitionRepository) kosmos.fakeKeyguardBouncerRepository.setAlternateVisible(false) - runCurrent() - testScope.testScheduler.advanceTimeBy(200) // advance past delay + advanceTimeBy(200) // advance past delay assertThat(transitionRepository) .startedTransition( diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractor.kt index 39aa6152f983..e441017c943b 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractor.kt @@ -27,7 +27,6 @@ import com.android.systemui.keyguard.data.repository.KeyguardTransitionRepositor import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.power.domain.interactor.PowerInteractor import com.android.systemui.util.kotlin.Utils.Companion.sample as sampleCombine -import com.android.systemui.util.kotlin.sample as sampleUtil import com.android.wm.shell.animation.Interpolators import javax.inject.Inject import kotlin.time.Duration.Companion.milliseconds @@ -157,12 +156,8 @@ constructor( } } ) - .sampleUtil(finishedKeyguardState) - .collect { keyguardState -> - if (keyguardState == KeyguardState.ALTERNATE_BOUNCER) { - startTransitionTo(KeyguardState.GONE) - } - } + .filterRelevantKeyguardState() + .collect { startTransitionTo(KeyguardState.GONE) } } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt index 671b09b257ce..3827046e206d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt @@ -897,6 +897,31 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { } @Test + fun alternateBouncerToGone() = + testScope.runTest { + // GIVEN a prior transition has run to ALTERNATE_BOUNCER + bouncerRepository.setAlternateVisible(true) + runTransitionAndSetWakefulness( + KeyguardState.LOCKSCREEN, + KeyguardState.ALTERNATE_BOUNCER + ) + + // GIVEN the keyguard is going away + keyguardRepository.setKeyguardGoingAway(true) + runCurrent() + + assertThat(transitionRepository) + .startedTransition( + ownerName = "FromAlternateBouncerTransitionInteractor", + from = KeyguardState.ALTERNATE_BOUNCER, + to = KeyguardState.GONE, + animatorAssertion = { it.isNotNull() }, + ) + + coroutineContext.cancelChildren() + } + + @Test fun alternateBouncerToGlanceableHub() = testScope.runTest { // GIVEN a prior transition has run to ALTERNATE_BOUNCER diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt index af785c24bb5c..450f08f1fe3f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt @@ -28,7 +28,7 @@ import com.google.common.truth.Subject import com.google.common.truth.Truth import com.google.common.truth.Truth.assertAbout import junit.framework.Assert.assertEquals -import kotlin.test.fail +import org.junit.Assert.fail import org.mockito.Mockito import org.mockito.Mockito.never import org.mockito.Mockito.verify |