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

Commit c9d0660a authored by Beverly Tai's avatar Beverly Tai Committed by Automerger Merge Worker
Browse files

Merge "Don't show alt bouncer if device is already unlocked" into tm-qpr-dev am: f8a2b24f

parents fdfb5d13 f8a2b24f
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import com.android.systemui.keyguard.data.repository.BiometricSettingsRepository
import com.android.systemui.keyguard.data.repository.DeviceEntryFingerprintAuthRepository
import com.android.systemui.keyguard.data.repository.KeyguardBouncerRepository
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager.LegacyAlternateBouncer
import com.android.systemui.statusbar.policy.KeyguardStateController
import com.android.systemui.util.time.SystemClock
import javax.inject.Inject
import kotlinx.coroutines.flow.Flow
@@ -33,6 +34,7 @@ import kotlinx.coroutines.flow.Flow
class AlternateBouncerInteractor
@Inject
constructor(
    private val keyguardStateController: KeyguardStateController,
    private val bouncerRepository: KeyguardBouncerRepository,
    private val biometricSettingsRepository: BiometricSettingsRepository,
    private val deviceEntryFingerprintAuthRepository: DeviceEntryFingerprintAuthRepository,
@@ -102,7 +104,8 @@ constructor(
                biometricSettingsRepository.isFingerprintEnrolled.value &&
                biometricSettingsRepository.isStrongBiometricAllowed.value &&
                biometricSettingsRepository.isFingerprintEnabledByDevicePolicy.value &&
                !deviceEntryFingerprintAuthRepository.isLockedOut.value
                !deviceEntryFingerprintAuthRepository.isLockedOut.value &&
                !keyguardStateController.isUnlocked
        } else {
            legacyAlternateBouncer != null &&
                keyguardUpdateMonitor.isUnlockingWithBiometricAllowed(true)
+3 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ import com.android.systemui.keyguard.data.repository.FakeDeviceEntryFingerprintA
import com.android.systemui.keyguard.data.repository.FakeKeyguardBouncerRepository
import com.android.systemui.keyguard.domain.interactor.AlternateBouncerInteractor
import com.android.systemui.recents.OverviewProxyService
import com.android.systemui.statusbar.policy.KeyguardStateController
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.time.FakeSystemClock
import com.google.common.truth.Truth.assertThat
@@ -97,6 +98,7 @@ class SideFpsControllerTest : SysuiTestCase() {

    @JvmField @Rule var rule = MockitoJUnit.rule()

    @Mock lateinit var keyguardStateController: KeyguardStateController
    @Mock lateinit var layoutInflater: LayoutInflater
    @Mock lateinit var fingerprintManager: FingerprintManager
    @Mock lateinit var windowManager: WindowManager
@@ -136,6 +138,7 @@ class SideFpsControllerTest : SysuiTestCase() {
        keyguardBouncerRepository = FakeKeyguardBouncerRepository()
        alternateBouncerInteractor =
            AlternateBouncerInteractor(
                keyguardStateController,
                keyguardBouncerRepository,
                FakeBiometricSettingsRepository(),
                FakeDeviceEntryFingerprintAuthRepository(),
+2 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import com.android.systemui.keyguard.shared.constants.KeyguardBouncerConstants
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.statusbar.StatusBarState
import com.android.systemui.statusbar.phone.KeyguardBypassController
import com.android.systemui.statusbar.policy.KeyguardStateController
import com.android.systemui.util.time.FakeSystemClock
import com.android.systemui.util.time.SystemClock
import kotlinx.coroutines.Dispatchers
@@ -92,6 +93,7 @@ class UdfpsKeyguardViewControllerWithCoroutinesTest : UdfpsKeyguardViewControlle
            )
        mAlternateBouncerInteractor =
            AlternateBouncerInteractor(
                mock(KeyguardStateController::class.java),
                keyguardBouncerRepository,
                mock(BiometricSettingsRepository::class.java),
                mock(DeviceEntryFingerprintAuthRepository::class.java),
+13 −0
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@ import com.android.systemui.keyguard.data.repository.FakeDeviceEntryFingerprintA
import com.android.systemui.keyguard.data.repository.KeyguardBouncerRepository
import com.android.systemui.keyguard.data.repository.KeyguardBouncerRepositoryImpl
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.statusbar.policy.KeyguardStateController
import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.time.FakeSystemClock
import com.android.systemui.util.time.SystemClock
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -50,6 +52,7 @@ class AlternateBouncerInteractorTest : SysuiTestCase() {
    private lateinit var biometricSettingsRepository: FakeBiometricSettingsRepository
    private lateinit var deviceEntryFingerprintAuthRepository:
        FakeDeviceEntryFingerprintAuthRepository
    @Mock private lateinit var keyguardStateController: KeyguardStateController
    @Mock private lateinit var systemClock: SystemClock
    @Mock private lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor
    @Mock private lateinit var bouncerLogger: TableLogBuffer
@@ -70,6 +73,7 @@ class AlternateBouncerInteractorTest : SysuiTestCase() {
        featureFlags = FakeFeatureFlags().apply { this.set(Flags.MODERN_ALTERNATE_BOUNCER, true) }
        underTest =
            AlternateBouncerInteractor(
                keyguardStateController,
                bouncerRepository,
                biometricSettingsRepository,
                deviceEntryFingerprintAuthRepository,
@@ -133,6 +137,14 @@ class AlternateBouncerInteractorTest : SysuiTestCase() {
        assertTrue(bouncerRepository.alternateBouncerVisible.value)
    }

    @Test
    fun canShowAlternateBouncerForFingerprint_butCanDismissLockScreen() {
        givenCanShowAlternateBouncer()
        whenever(keyguardStateController.isUnlocked).thenReturn(true)

        assertFalse(underTest.canShowAlternateBouncerForFingerprint())
    }

    @Test
    fun show_whenCannotShow() {
        givenCannotShowAlternateBouncer()
@@ -163,6 +175,7 @@ class AlternateBouncerInteractorTest : SysuiTestCase() {
        biometricSettingsRepository.setStrongBiometricAllowed(true)
        biometricSettingsRepository.setFingerprintEnabledByDevicePolicy(true)
        deviceEntryFingerprintAuthRepository.setLockedOut(false)
        whenever(keyguardStateController.isUnlocked).thenReturn(false)
    }

    private fun givenCannotShowAlternateBouncer() {