diff options
6 files changed, 20 insertions, 26 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/DeviceEntryFaceAuthRepository.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/DeviceEntryFaceAuthRepository.kt index 8064cc1cce88..8954947d8ed2 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/DeviceEntryFaceAuthRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/DeviceEntryFaceAuthRepository.kt @@ -107,7 +107,7 @@ interface DeviceEntryFaceAuthRepository { val isBypassEnabled: Flow<Boolean> /** Set whether face authentication should be locked out or not */ - fun lockoutFaceAuth() + fun setLockedOut(isLockedOut: Boolean) /** * Cancel current face authentication and prevent it from running until [resumeFaceAuth] is @@ -228,8 +228,8 @@ constructor( } ?: flowOf(false) - override fun lockoutFaceAuth() { - _isLockedOut.value = true + override fun setLockedOut(isLockedOut: Boolean) { + _isLockedOut.value = isLockedOut } private val faceLockoutResetCallback = diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/NoopDeviceEntryFaceAuthRepository.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/NoopDeviceEntryFaceAuthRepository.kt index e4e6a6dae6b0..46135fa89451 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/NoopDeviceEntryFaceAuthRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/NoopDeviceEntryFaceAuthRepository.kt @@ -55,7 +55,7 @@ class NoopDeviceEntryFaceAuthRepository @Inject constructor() : DeviceEntryFaceA override val isBypassEnabled: Flow<Boolean> get() = emptyFlow() - override fun lockoutFaceAuth() = Unit + override fun setLockedOut(isLockedOut: Boolean) = Unit override fun pauseFaceAuth() = Unit override fun resumeFaceAuth() = Unit diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/SystemUIKeyguardFaceAuthInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/SystemUIKeyguardFaceAuthInteractor.kt index 4b8171f60203..ccc2080d8fee 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/SystemUIKeyguardFaceAuthInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/SystemUIKeyguardFaceAuthInteractor.kt @@ -132,7 +132,7 @@ constructor( .onEach { if (it) { faceAuthenticationLogger.faceLockedOut("Fingerprint locked out") - repository.lockoutFaceAuth() + repository.setLockedOut(true) } } .launchIn(applicationScope) @@ -148,9 +148,9 @@ constructor( repository.pauseFaceAuth() } else if (wasSwitching && !isSwitching) { val lockoutMode = facePropertyRepository.getLockoutMode(curr.userInfo.id) - if (lockoutMode == LockoutMode.PERMANENT || lockoutMode == LockoutMode.TIMED) { - repository.lockoutFaceAuth() - } + repository.setLockedOut( + lockoutMode == LockoutMode.PERMANENT || lockoutMode == LockoutMode.TIMED + ) repository.resumeFaceAuth() yield() runFaceAuth( diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/DeviceEntryFaceAuthRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/DeviceEntryFaceAuthRepositoryTest.kt index f0dbaf1aeaf3..ec1541666a6f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/DeviceEntryFaceAuthRepositoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/DeviceEntryFaceAuthRepositoryTest.kt @@ -559,7 +559,7 @@ class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { @Test fun authenticateDoesNotRunWhenFaceIsDisabled() = - testScope.runTest { testGatingCheckForFaceAuth { underTest.lockoutFaceAuth() } } + testScope.runTest { testGatingCheckForFaceAuth { underTest.setLockedOut(true) } } @Test fun authenticateDoesNotRunWhenUserIsCurrentlyTrusted() = @@ -869,7 +869,7 @@ class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { initCollectors() assertThat(underTest.isLockedOut.value).isFalse() - underTest.lockoutFaceAuth() + underTest.setLockedOut(true) runCurrent() assertThat(underTest.isLockedOut.value).isTrue() diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardFaceAuthInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardFaceAuthInteractorTest.kt index ec115738df8b..da70a9ff036f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardFaceAuthInteractorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardFaceAuthInteractorTest.kt @@ -244,15 +244,18 @@ class KeyguardFaceAuthInteractorTest : SysuiTestCase() { testScope.runTest { underTest.start() - // previously running + // User switching has started + fakeUserRepository.setSelectedUserInfo(primaryUser, SelectionStatus.SELECTION_COMPLETE) fakeUserRepository.setSelectedUserInfo( primaryUser, SelectionStatus.SELECTION_IN_PROGRESS ) runCurrent() - bouncerRepository.setPrimaryShow(true) + assertThat(faceAuthRepository.isFaceAuthPaused()).isTrue() - facePropertyRepository.setLockoutMode(secondaryUser.id, LockoutMode.TIMED) + bouncerRepository.setPrimaryShow(true) + // New user is not locked out. + facePropertyRepository.setLockoutMode(secondaryUser.id, LockoutMode.NONE) fakeUserRepository.setSelectedUserInfo( secondaryUser, SelectionStatus.SELECTION_COMPLETE @@ -260,7 +263,7 @@ class KeyguardFaceAuthInteractorTest : SysuiTestCase() { runCurrent() assertThat(faceAuthRepository.isFaceAuthPaused()).isFalse() - assertThat(faceAuthRepository.wasDisabled).isTrue() + assertThat(faceAuthRepository.isLockedOut.value).isFalse() runCurrent() assertThat(faceAuthRepository.runningAuthRequest.value!!.first) @@ -406,7 +409,7 @@ class KeyguardFaceAuthInteractorTest : SysuiTestCase() { fakeDeviceEntryFingerprintAuthRepository.setLockedOut(true) runCurrent() - assertThat(faceAuthRepository.wasDisabled).isTrue() + assertThat(faceAuthRepository.isLockedOut.value).isTrue() } companion object { diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeDeviceEntryFaceAuthRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeDeviceEntryFaceAuthRepository.kt index 1e1dc4fc59b1..2b13dcabb640 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeDeviceEntryFaceAuthRepository.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeDeviceEntryFaceAuthRepository.kt @@ -27,11 +27,6 @@ import kotlinx.coroutines.flow.filterNotNull class FakeDeviceEntryFaceAuthRepository : DeviceEntryFaceAuthRepository { - private var _wasDisabled: Boolean = false - - val wasDisabled: Boolean - get() = _wasDisabled - override val isAuthenticated = MutableStateFlow(false) override val canRunFaceAuth = MutableStateFlow(false) private val _authenticationStatus = MutableStateFlow<FaceAuthenticationStatus?>(null) @@ -57,8 +52,8 @@ class FakeDeviceEntryFaceAuthRepository : DeviceEntryFaceAuthRepository { override val isAuthRunning: StateFlow<Boolean> = _isAuthRunning override val isBypassEnabled = MutableStateFlow(false) - override fun lockoutFaceAuth() { - _wasDisabled = true + override fun setLockedOut(isLockedOut: Boolean) { + _isLockedOut.value = isLockedOut } private val faceAuthPaused = MutableStateFlow(false) @@ -79,10 +74,6 @@ class FakeDeviceEntryFaceAuthRepository : DeviceEntryFaceAuthRepository { _isAuthRunning.value = true } - fun setLockedOut(value: Boolean) { - _isLockedOut.value = value - } - override fun cancel() { _isAuthRunning.value = false _runningAuthRequest.value = null |