Merge "Don't show alt bouncer if device is already unlocked" into tm-qpr-dev am: f8a2b24fdd
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21540525 Change-Id: Ieefff9196dbf7c137ac844af94346f6e46f2fad4 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -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.DeviceEntryFingerprintAuthRepository
|
||||||
import com.android.systemui.keyguard.data.repository.KeyguardBouncerRepository
|
import com.android.systemui.keyguard.data.repository.KeyguardBouncerRepository
|
||||||
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager.LegacyAlternateBouncer
|
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager.LegacyAlternateBouncer
|
||||||
|
import com.android.systemui.statusbar.policy.KeyguardStateController
|
||||||
import com.android.systemui.util.time.SystemClock
|
import com.android.systemui.util.time.SystemClock
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
@@ -33,6 +34,7 @@ import kotlinx.coroutines.flow.Flow
|
|||||||
class AlternateBouncerInteractor
|
class AlternateBouncerInteractor
|
||||||
@Inject
|
@Inject
|
||||||
constructor(
|
constructor(
|
||||||
|
private val keyguardStateController: KeyguardStateController,
|
||||||
private val bouncerRepository: KeyguardBouncerRepository,
|
private val bouncerRepository: KeyguardBouncerRepository,
|
||||||
private val biometricSettingsRepository: BiometricSettingsRepository,
|
private val biometricSettingsRepository: BiometricSettingsRepository,
|
||||||
private val deviceEntryFingerprintAuthRepository: DeviceEntryFingerprintAuthRepository,
|
private val deviceEntryFingerprintAuthRepository: DeviceEntryFingerprintAuthRepository,
|
||||||
@@ -102,7 +104,8 @@ constructor(
|
|||||||
biometricSettingsRepository.isFingerprintEnrolled.value &&
|
biometricSettingsRepository.isFingerprintEnrolled.value &&
|
||||||
biometricSettingsRepository.isStrongBiometricAllowed.value &&
|
biometricSettingsRepository.isStrongBiometricAllowed.value &&
|
||||||
biometricSettingsRepository.isFingerprintEnabledByDevicePolicy.value &&
|
biometricSettingsRepository.isFingerprintEnabledByDevicePolicy.value &&
|
||||||
!deviceEntryFingerprintAuthRepository.isLockedOut.value
|
!deviceEntryFingerprintAuthRepository.isLockedOut.value &&
|
||||||
|
!keyguardStateController.isUnlocked
|
||||||
} else {
|
} else {
|
||||||
legacyAlternateBouncer != null &&
|
legacyAlternateBouncer != null &&
|
||||||
keyguardUpdateMonitor.isUnlockingWithBiometricAllowed(true)
|
keyguardUpdateMonitor.isUnlockingWithBiometricAllowed(true)
|
||||||
|
|||||||
@@ -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.data.repository.FakeKeyguardBouncerRepository
|
||||||
import com.android.systemui.keyguard.domain.interactor.AlternateBouncerInteractor
|
import com.android.systemui.keyguard.domain.interactor.AlternateBouncerInteractor
|
||||||
import com.android.systemui.recents.OverviewProxyService
|
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.concurrency.FakeExecutor
|
||||||
import com.android.systemui.util.time.FakeSystemClock
|
import com.android.systemui.util.time.FakeSystemClock
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
@@ -97,6 +98,7 @@ class SideFpsControllerTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@JvmField @Rule var rule = MockitoJUnit.rule()
|
@JvmField @Rule var rule = MockitoJUnit.rule()
|
||||||
|
|
||||||
|
@Mock lateinit var keyguardStateController: KeyguardStateController
|
||||||
@Mock lateinit var layoutInflater: LayoutInflater
|
@Mock lateinit var layoutInflater: LayoutInflater
|
||||||
@Mock lateinit var fingerprintManager: FingerprintManager
|
@Mock lateinit var fingerprintManager: FingerprintManager
|
||||||
@Mock lateinit var windowManager: WindowManager
|
@Mock lateinit var windowManager: WindowManager
|
||||||
@@ -136,6 +138,7 @@ class SideFpsControllerTest : SysuiTestCase() {
|
|||||||
keyguardBouncerRepository = FakeKeyguardBouncerRepository()
|
keyguardBouncerRepository = FakeKeyguardBouncerRepository()
|
||||||
alternateBouncerInteractor =
|
alternateBouncerInteractor =
|
||||||
AlternateBouncerInteractor(
|
AlternateBouncerInteractor(
|
||||||
|
keyguardStateController,
|
||||||
keyguardBouncerRepository,
|
keyguardBouncerRepository,
|
||||||
FakeBiometricSettingsRepository(),
|
FakeBiometricSettingsRepository(),
|
||||||
FakeDeviceEntryFingerprintAuthRepository(),
|
FakeDeviceEntryFingerprintAuthRepository(),
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ import com.android.systemui.keyguard.shared.constants.KeyguardBouncerConstants
|
|||||||
import com.android.systemui.log.table.TableLogBuffer
|
import com.android.systemui.log.table.TableLogBuffer
|
||||||
import com.android.systemui.statusbar.StatusBarState
|
import com.android.systemui.statusbar.StatusBarState
|
||||||
import com.android.systemui.statusbar.phone.KeyguardBypassController
|
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.FakeSystemClock
|
||||||
import com.android.systemui.util.time.SystemClock
|
import com.android.systemui.util.time.SystemClock
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
@@ -92,6 +93,7 @@ class UdfpsKeyguardViewControllerWithCoroutinesTest : UdfpsKeyguardViewControlle
|
|||||||
)
|
)
|
||||||
mAlternateBouncerInteractor =
|
mAlternateBouncerInteractor =
|
||||||
AlternateBouncerInteractor(
|
AlternateBouncerInteractor(
|
||||||
|
mock(KeyguardStateController::class.java),
|
||||||
keyguardBouncerRepository,
|
keyguardBouncerRepository,
|
||||||
mock(BiometricSettingsRepository::class.java),
|
mock(BiometricSettingsRepository::class.java),
|
||||||
mock(DeviceEntryFingerprintAuthRepository::class.java),
|
mock(DeviceEntryFingerprintAuthRepository::class.java),
|
||||||
|
|||||||
@@ -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.KeyguardBouncerRepository
|
||||||
import com.android.systemui.keyguard.data.repository.KeyguardBouncerRepositoryImpl
|
import com.android.systemui.keyguard.data.repository.KeyguardBouncerRepositoryImpl
|
||||||
import com.android.systemui.log.table.TableLogBuffer
|
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.FakeSystemClock
|
||||||
import com.android.systemui.util.time.SystemClock
|
import com.android.systemui.util.time.SystemClock
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
@@ -50,6 +52,7 @@ class AlternateBouncerInteractorTest : SysuiTestCase() {
|
|||||||
private lateinit var biometricSettingsRepository: FakeBiometricSettingsRepository
|
private lateinit var biometricSettingsRepository: FakeBiometricSettingsRepository
|
||||||
private lateinit var deviceEntryFingerprintAuthRepository:
|
private lateinit var deviceEntryFingerprintAuthRepository:
|
||||||
FakeDeviceEntryFingerprintAuthRepository
|
FakeDeviceEntryFingerprintAuthRepository
|
||||||
|
@Mock private lateinit var keyguardStateController: KeyguardStateController
|
||||||
@Mock private lateinit var systemClock: SystemClock
|
@Mock private lateinit var systemClock: SystemClock
|
||||||
@Mock private lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor
|
@Mock private lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor
|
||||||
@Mock private lateinit var bouncerLogger: TableLogBuffer
|
@Mock private lateinit var bouncerLogger: TableLogBuffer
|
||||||
@@ -70,6 +73,7 @@ class AlternateBouncerInteractorTest : SysuiTestCase() {
|
|||||||
featureFlags = FakeFeatureFlags().apply { this.set(Flags.MODERN_ALTERNATE_BOUNCER, true) }
|
featureFlags = FakeFeatureFlags().apply { this.set(Flags.MODERN_ALTERNATE_BOUNCER, true) }
|
||||||
underTest =
|
underTest =
|
||||||
AlternateBouncerInteractor(
|
AlternateBouncerInteractor(
|
||||||
|
keyguardStateController,
|
||||||
bouncerRepository,
|
bouncerRepository,
|
||||||
biometricSettingsRepository,
|
biometricSettingsRepository,
|
||||||
deviceEntryFingerprintAuthRepository,
|
deviceEntryFingerprintAuthRepository,
|
||||||
@@ -133,6 +137,14 @@ class AlternateBouncerInteractorTest : SysuiTestCase() {
|
|||||||
assertTrue(bouncerRepository.alternateBouncerVisible.value)
|
assertTrue(bouncerRepository.alternateBouncerVisible.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun canShowAlternateBouncerForFingerprint_butCanDismissLockScreen() {
|
||||||
|
givenCanShowAlternateBouncer()
|
||||||
|
whenever(keyguardStateController.isUnlocked).thenReturn(true)
|
||||||
|
|
||||||
|
assertFalse(underTest.canShowAlternateBouncerForFingerprint())
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun show_whenCannotShow() {
|
fun show_whenCannotShow() {
|
||||||
givenCannotShowAlternateBouncer()
|
givenCannotShowAlternateBouncer()
|
||||||
@@ -163,6 +175,7 @@ class AlternateBouncerInteractorTest : SysuiTestCase() {
|
|||||||
biometricSettingsRepository.setStrongBiometricAllowed(true)
|
biometricSettingsRepository.setStrongBiometricAllowed(true)
|
||||||
biometricSettingsRepository.setFingerprintEnabledByDevicePolicy(true)
|
biometricSettingsRepository.setFingerprintEnabledByDevicePolicy(true)
|
||||||
deviceEntryFingerprintAuthRepository.setLockedOut(false)
|
deviceEntryFingerprintAuthRepository.setLockedOut(false)
|
||||||
|
whenever(keyguardStateController.isUnlocked).thenReturn(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun givenCannotShowAlternateBouncer() {
|
private fun givenCannotShowAlternateBouncer() {
|
||||||
|
|||||||
Reference in New Issue
Block a user