Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2bf9a567 authored by Chandru S's avatar Chandru S
Browse files

Consider face/fingerprint locked out state changes only when the biometrics are enrolled

Fixes: 305044151
Test: atest BouncerMessageInteractorTest
Flag: com.android.systemui.revamped_bouncer_messages
Change-Id: I48b3a90df1f3e81b7b1ad0cd9e729d3f8e5cfb00
parent 0e3670ae
Loading
Loading
Loading
Loading
+37 −1
Original line number Diff line number Diff line
@@ -263,7 +263,7 @@ class BouncerMessageInteractorTest : SysuiTestCase() {
        testScope.runTest {
            init()
            val lockoutMessage by collectLastValue(underTest.bouncerMessage)

            kosmos.fakeBiometricSettingsRepository.setIsFaceAuthEnrolledAndEnabled(true)
            kosmos.fakeDeviceEntryFaceAuthRepository.setLockedOut(true)
            runCurrent()

@@ -280,6 +280,23 @@ class BouncerMessageInteractorTest : SysuiTestCase() {
            assertThat(lockoutMessage?.secondaryMessage?.message).isNull()
        }

    @Test
    fun onFaceLockoutStateChange_whenFaceIsNotEnrolled_isANoop() =
        testScope.runTest {
            init()
            val lockoutMessage by collectLastValue(underTest.bouncerMessage)

            kosmos.fakeBiometricSettingsRepository.setIsFaceAuthEnrolledAndEnabled(false)
            runCurrent()
            kosmos.fakeDeviceEntryFaceAuthRepository.setLockedOut(true)
            runCurrent()

            assertThat(primaryResMessage(lockoutMessage))
                .isEqualTo("Unlock with PIN or fingerprint")
            assertThat(lockoutMessage?.secondaryMessage?.message).isNull()
            assertThat(lockoutMessage?.secondaryMessage?.messageResId).isEqualTo(0)
        }

    @Test
    fun onFaceLockout_whenItIsClass3_propagatesState() =
        testScope.runTest {
@@ -288,6 +305,7 @@ class BouncerMessageInteractorTest : SysuiTestCase() {
            kosmos.fakeFacePropertyRepository.setSensorInfo(
                FaceSensorInfo(1, SensorStrength.STRONG)
            )
            kosmos.fakeBiometricSettingsRepository.setIsFaceAuthEnrolledAndEnabled(true)
            kosmos.fakeDeviceEntryFaceAuthRepository.setLockedOut(true)
            runCurrent()

@@ -308,6 +326,7 @@ class BouncerMessageInteractorTest : SysuiTestCase() {
        testScope.runTest {
            init()
            val lockedOutMessage by collectLastValue(underTest.bouncerMessage)
            kosmos.fakeBiometricSettingsRepository.setIsFingerprintAuthEnrolledAndEnabled(true)

            kosmos.fakeDeviceEntryFingerprintAuthRepository.setLockedOut(true)
            runCurrent()
@@ -324,6 +343,23 @@ class BouncerMessageInteractorTest : SysuiTestCase() {
            assertThat(lockedOutMessage?.secondaryMessage?.message).isNull()
        }

    @Test
    fun onFingerprintLockoutStateChange_whenFingerprintIsNotEnrolled_isANoop() =
        testScope.runTest {
            init()
            val lockoutMessage by collectLastValue(underTest.bouncerMessage)

            kosmos.fakeBiometricSettingsRepository.setIsFaceAuthEnrolledAndEnabled(true)
            kosmos.fakeBiometricSettingsRepository.setIsFingerprintAuthEnrolledAndEnabled(false)
            runCurrent()
            kosmos.fakeDeviceEntryFingerprintAuthRepository.setLockedOut(true)
            runCurrent()

            assertThat(primaryResMessage(lockoutMessage)).isEqualTo("Enter PIN")
            assertThat(lockoutMessage?.secondaryMessage?.message).isNull()
            assertThat(lockoutMessage?.secondaryMessage?.messageResId).isEqualTo(0)
        }

    @Test
    fun onUdfpsFingerprint_DoesNotShowFingerprintMessage() =
        testScope.runTest {
+6 −2
Original line number Diff line number Diff line
@@ -189,10 +189,14 @@ constructor(
                            currentSecurityMode.toAuthModel()
                        )
                        .toMessage()
                } else if (fpLockedOut) {
                } else if (
                    biometricSettingsRepository.isFingerprintEnrolledAndEnabled.value && fpLockedOut
                ) {
                    BouncerMessageStrings.class3AuthLockedOut(currentSecurityMode.toAuthModel())
                        .toMessage()
                } else if (faceLockedOut) {
                } else if (
                    biometricSettingsRepository.isFaceAuthEnrolledAndEnabled.value && faceLockedOut
                ) {
                    if (isFaceAuthClass3) {
                        BouncerMessageStrings.class3AuthLockedOut(currentSecurityMode.toAuthModel())
                            .toMessage()