Loading packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepositoryTest.kt +19 −2 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ import com.android.systemui.keyguard.data.repository.fakeTrustRepository import com.android.systemui.keyguard.domain.interactor.keyguardInteractor import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.StatusBarState import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.kosmos.testDispatcher Loading Loading @@ -827,21 +828,37 @@ class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { } @Test fun isAuthenticatedIsResetToFalseWhenKeyguardDoneAnimationsFinished() = fun isAuthenticatedIsResetToFalseWhenFinishedTransitioningToGoneAndStatusBarStateShade() = testScope.runTest { initCollectors() allPreconditionsToRunFaceAuthAreTrue() triggerFaceAuth(false) keyguardRepository.setStatusBarState(StatusBarState.KEYGUARD) authenticationCallback.value.onAuthenticationSucceeded( mock(FaceManager.AuthenticationResult::class.java) ) assertThat(authenticated()).isTrue() keyguardRepository.keyguardDoneAnimationsFinished() keyguardTransitionRepository.sendTransitionStep( TransitionStep( transitionState = TransitionState.STARTED, from = KeyguardState.LOCKSCREEN, to = KeyguardState.GONE, ) ) keyguardTransitionRepository.sendTransitionStep( TransitionStep( transitionState = TransitionState.FINISHED, from = KeyguardState.LOCKSCREEN, to = KeyguardState.GONE, ) ) assertThat(authenticated()).isTrue() keyguardRepository.setStatusBarState(StatusBarState.SHADE) assertThat(authenticated()).isFalse() } Loading packages/SystemUI/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepository.kt +11 −5 Original line number Diff line number Diff line Loading @@ -40,7 +40,6 @@ import com.android.systemui.deviceentry.shared.model.FailedFaceAuthenticationSta import com.android.systemui.deviceentry.shared.model.HelpFaceAuthenticationStatus import com.android.systemui.deviceentry.shared.model.SuccessFaceAuthenticationStatus import com.android.systemui.dump.DumpManager import com.android.systemui.keyguard.KeyguardWmStateRefactor import com.android.systemui.keyguard.data.repository.BiometricSettingsRepository import com.android.systemui.keyguard.data.repository.BiometricType import com.android.systemui.keyguard.data.repository.DeviceEntryFingerprintAuthRepository Loading @@ -51,6 +50,7 @@ import com.android.systemui.keyguard.data.repository.TrustRepository import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.StatusBarState import com.android.systemui.keyguard.shared.model.SysUiFaceAuthenticateOptions import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.log.FaceAuthenticationLogger Loading Loading @@ -313,10 +313,16 @@ constructor( // or device starts going to sleep. merge( powerInteractor.isAsleep, if (KeyguardWmStateRefactor.isEnabled) { keyguardTransitionInteractor.isInTransitionToState(KeyguardState.GONE) } else { keyguardRepository.keyguardDoneAnimationsFinished.map { true } combine( keyguardTransitionInteractor.isFinishedInState(KeyguardState.GONE), keyguardInteractor.statusBarState, ) { isFinishedInGoneState, statusBarState -> // When the user is dragging the primary bouncer in (up) by manually scrolling // up on the lockscreen, the device won't be irreversibly transitioned to GONE // until the statusBarState updates to SHADE, so we check that here. // Else, we could reset the face auth state too early and end up in a strange // state. isFinishedInGoneState && statusBarState == StatusBarState.SHADE }, userRepository.selectedUser.map { it.selectionStatus == SelectionStatus.SELECTION_IN_PROGRESS Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepositoryTest.kt +19 −2 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ import com.android.systemui.keyguard.data.repository.fakeTrustRepository import com.android.systemui.keyguard.domain.interactor.keyguardInteractor import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.StatusBarState import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.kosmos.testDispatcher Loading Loading @@ -827,21 +828,37 @@ class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { } @Test fun isAuthenticatedIsResetToFalseWhenKeyguardDoneAnimationsFinished() = fun isAuthenticatedIsResetToFalseWhenFinishedTransitioningToGoneAndStatusBarStateShade() = testScope.runTest { initCollectors() allPreconditionsToRunFaceAuthAreTrue() triggerFaceAuth(false) keyguardRepository.setStatusBarState(StatusBarState.KEYGUARD) authenticationCallback.value.onAuthenticationSucceeded( mock(FaceManager.AuthenticationResult::class.java) ) assertThat(authenticated()).isTrue() keyguardRepository.keyguardDoneAnimationsFinished() keyguardTransitionRepository.sendTransitionStep( TransitionStep( transitionState = TransitionState.STARTED, from = KeyguardState.LOCKSCREEN, to = KeyguardState.GONE, ) ) keyguardTransitionRepository.sendTransitionStep( TransitionStep( transitionState = TransitionState.FINISHED, from = KeyguardState.LOCKSCREEN, to = KeyguardState.GONE, ) ) assertThat(authenticated()).isTrue() keyguardRepository.setStatusBarState(StatusBarState.SHADE) assertThat(authenticated()).isFalse() } Loading
packages/SystemUI/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepository.kt +11 −5 Original line number Diff line number Diff line Loading @@ -40,7 +40,6 @@ import com.android.systemui.deviceentry.shared.model.FailedFaceAuthenticationSta import com.android.systemui.deviceentry.shared.model.HelpFaceAuthenticationStatus import com.android.systemui.deviceentry.shared.model.SuccessFaceAuthenticationStatus import com.android.systemui.dump.DumpManager import com.android.systemui.keyguard.KeyguardWmStateRefactor import com.android.systemui.keyguard.data.repository.BiometricSettingsRepository import com.android.systemui.keyguard.data.repository.BiometricType import com.android.systemui.keyguard.data.repository.DeviceEntryFingerprintAuthRepository Loading @@ -51,6 +50,7 @@ import com.android.systemui.keyguard.data.repository.TrustRepository import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.StatusBarState import com.android.systemui.keyguard.shared.model.SysUiFaceAuthenticateOptions import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.log.FaceAuthenticationLogger Loading Loading @@ -313,10 +313,16 @@ constructor( // or device starts going to sleep. merge( powerInteractor.isAsleep, if (KeyguardWmStateRefactor.isEnabled) { keyguardTransitionInteractor.isInTransitionToState(KeyguardState.GONE) } else { keyguardRepository.keyguardDoneAnimationsFinished.map { true } combine( keyguardTransitionInteractor.isFinishedInState(KeyguardState.GONE), keyguardInteractor.statusBarState, ) { isFinishedInGoneState, statusBarState -> // When the user is dragging the primary bouncer in (up) by manually scrolling // up on the lockscreen, the device won't be irreversibly transitioned to GONE // until the statusBarState updates to SHADE, so we check that here. // Else, we could reset the face auth state too early and end up in a strange // state. isFinishedInGoneState && statusBarState == StatusBarState.SHADE }, userRepository.selectedUser.map { it.selectionStatus == SelectionStatus.SELECTION_IN_PROGRESS Loading