Loading packages/SystemUI/src/com/android/systemui/keyguard/data/repository/BiometricRepository.kt→packages/SystemUI/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepository.kt +6 −5 Original line number Diff line number Diff line Loading @@ -47,12 +47,13 @@ import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.flow.transformLatest /** * Acts as source of truth for biometric features. * Acts as source of truth for biometric authentication related settings like enrollments, device * policy, etc. * * Abstracts-away data sources and their schemas so the rest of the app doesn't need to worry about * upstream changes. */ interface BiometricRepository { interface BiometricSettingsRepository { /** Whether any fingerprints are enrolled for the current user. */ val isFingerprintEnrolled: StateFlow<Boolean> Loading @@ -68,7 +69,7 @@ interface BiometricRepository { } @SysUISingleton class BiometricRepositoryImpl class BiometricSettingsRepositoryImpl @Inject constructor( context: Context, Loading @@ -80,7 +81,7 @@ constructor( @Application scope: CoroutineScope, @Background backgroundDispatcher: CoroutineDispatcher, @Main looper: Looper, ) : BiometricRepository { ) : BiometricSettingsRepository { /** UserId of the current selected user. */ private val selectedUserId: Flow<Int> = Loading @@ -88,7 +89,7 @@ constructor( override val isFingerprintEnrolled: StateFlow<Boolean> = selectedUserId .flatMapLatest { userId -> .flatMapLatest { conflatedCallbackFlow { val callback = object : AuthController.Callback { Loading packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepositoryModule.kt +4 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,10 @@ interface KeyguardRepositoryModule { @Binds fun lightRevealScrimRepository(impl: LightRevealScrimRepositoryImpl): LightRevealScrimRepository @Binds fun biometricRepository(impl: BiometricRepositoryImpl): BiometricRepository @Binds fun biometricSettingsRepository( impl: BiometricSettingsRepositoryImpl ): BiometricSettingsRepository @Binds fun deviceEntryFingerprintAuthRepository( Loading packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/AlternateBouncerInteractor.kt +5 −5 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ import com.android.keyguard.KeyguardUpdateMonitor import com.android.systemui.dagger.SysUISingleton import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.keyguard.data.repository.BiometricRepository 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 Loading @@ -34,7 +34,7 @@ class AlternateBouncerInteractor @Inject constructor( private val bouncerRepository: KeyguardBouncerRepository, private val biometricRepository: BiometricRepository, private val biometricSettingsRepository: BiometricSettingsRepository, private val deviceEntryFingerprintAuthRepository: DeviceEntryFingerprintAuthRepository, private val systemClock: SystemClock, private val keyguardUpdateMonitor: KeyguardUpdateMonitor, Loading Loading @@ -99,9 +99,9 @@ constructor( fun canShowAlternateBouncerForFingerprint(): Boolean { return if (isModernAlternateBouncerEnabled) { bouncerRepository.isAlternateBouncerUIAvailable.value && biometricRepository.isFingerprintEnrolled.value && biometricRepository.isStrongBiometricAllowed.value && biometricRepository.isFingerprintEnabledByDevicePolicy.value && biometricSettingsRepository.isFingerprintEnrolled.value && biometricSettingsRepository.isStrongBiometricAllowed.value && biometricSettingsRepository.isFingerprintEnabledByDevicePolicy.value && !deviceEntryFingerprintAuthRepository.isLockedOut.value } else { legacyAlternateBouncer != null && Loading packages/SystemUI/tests/src/com/android/systemui/biometrics/SideFpsControllerTest.kt +2 −2 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ import com.android.systemui.SysuiTestableContext import com.android.systemui.dump.DumpManager import com.android.systemui.flags.FakeFeatureFlags import com.android.systemui.flags.Flags.MODERN_ALTERNATE_BOUNCER import com.android.systemui.keyguard.data.repository.FakeBiometricRepository import com.android.systemui.keyguard.data.repository.FakeBiometricSettingsRepository import com.android.systemui.keyguard.data.repository.FakeDeviceEntryFingerprintAuthRepository import com.android.systemui.keyguard.data.repository.FakeKeyguardBouncerRepository import com.android.systemui.keyguard.domain.interactor.AlternateBouncerInteractor Loading Loading @@ -137,7 +137,7 @@ class SideFpsControllerTest : SysuiTestCase() { alternateBouncerInteractor = AlternateBouncerInteractor( keyguardBouncerRepository, FakeBiometricRepository(), FakeBiometricSettingsRepository(), FakeDeviceEntryFingerprintAuthRepository(), FakeSystemClock(), mock(KeyguardUpdateMonitor::class.java), Loading packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerWithCoroutinesTest.kt +2 −2 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import com.android.systemui.classifier.FalsingCollector import com.android.systemui.flags.FeatureFlags import com.android.systemui.keyguard.DismissCallbackRegistry import com.android.systemui.keyguard.data.BouncerView import com.android.systemui.keyguard.data.repository.BiometricRepository 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.keyguard.data.repository.KeyguardBouncerRepositoryImpl Loading Loading @@ -92,7 +92,7 @@ class UdfpsKeyguardViewControllerWithCoroutinesTest : UdfpsKeyguardViewControlle mAlternateBouncerInteractor = AlternateBouncerInteractor( keyguardBouncerRepository, mock(BiometricRepository::class.java), mock(BiometricSettingsRepository::class.java), mock(DeviceEntryFingerprintAuthRepository::class.java), mock(SystemClock::class.java), mock(KeyguardUpdateMonitor::class.java), Loading Loading
packages/SystemUI/src/com/android/systemui/keyguard/data/repository/BiometricRepository.kt→packages/SystemUI/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepository.kt +6 −5 Original line number Diff line number Diff line Loading @@ -47,12 +47,13 @@ import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.flow.transformLatest /** * Acts as source of truth for biometric features. * Acts as source of truth for biometric authentication related settings like enrollments, device * policy, etc. * * Abstracts-away data sources and their schemas so the rest of the app doesn't need to worry about * upstream changes. */ interface BiometricRepository { interface BiometricSettingsRepository { /** Whether any fingerprints are enrolled for the current user. */ val isFingerprintEnrolled: StateFlow<Boolean> Loading @@ -68,7 +69,7 @@ interface BiometricRepository { } @SysUISingleton class BiometricRepositoryImpl class BiometricSettingsRepositoryImpl @Inject constructor( context: Context, Loading @@ -80,7 +81,7 @@ constructor( @Application scope: CoroutineScope, @Background backgroundDispatcher: CoroutineDispatcher, @Main looper: Looper, ) : BiometricRepository { ) : BiometricSettingsRepository { /** UserId of the current selected user. */ private val selectedUserId: Flow<Int> = Loading @@ -88,7 +89,7 @@ constructor( override val isFingerprintEnrolled: StateFlow<Boolean> = selectedUserId .flatMapLatest { userId -> .flatMapLatest { conflatedCallbackFlow { val callback = object : AuthController.Callback { Loading
packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepositoryModule.kt +4 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,10 @@ interface KeyguardRepositoryModule { @Binds fun lightRevealScrimRepository(impl: LightRevealScrimRepositoryImpl): LightRevealScrimRepository @Binds fun biometricRepository(impl: BiometricRepositoryImpl): BiometricRepository @Binds fun biometricSettingsRepository( impl: BiometricSettingsRepositoryImpl ): BiometricSettingsRepository @Binds fun deviceEntryFingerprintAuthRepository( Loading
packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/AlternateBouncerInteractor.kt +5 −5 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ import com.android.keyguard.KeyguardUpdateMonitor import com.android.systemui.dagger.SysUISingleton import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.keyguard.data.repository.BiometricRepository 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 Loading @@ -34,7 +34,7 @@ class AlternateBouncerInteractor @Inject constructor( private val bouncerRepository: KeyguardBouncerRepository, private val biometricRepository: BiometricRepository, private val biometricSettingsRepository: BiometricSettingsRepository, private val deviceEntryFingerprintAuthRepository: DeviceEntryFingerprintAuthRepository, private val systemClock: SystemClock, private val keyguardUpdateMonitor: KeyguardUpdateMonitor, Loading Loading @@ -99,9 +99,9 @@ constructor( fun canShowAlternateBouncerForFingerprint(): Boolean { return if (isModernAlternateBouncerEnabled) { bouncerRepository.isAlternateBouncerUIAvailable.value && biometricRepository.isFingerprintEnrolled.value && biometricRepository.isStrongBiometricAllowed.value && biometricRepository.isFingerprintEnabledByDevicePolicy.value && biometricSettingsRepository.isFingerprintEnrolled.value && biometricSettingsRepository.isStrongBiometricAllowed.value && biometricSettingsRepository.isFingerprintEnabledByDevicePolicy.value && !deviceEntryFingerprintAuthRepository.isLockedOut.value } else { legacyAlternateBouncer != null && Loading
packages/SystemUI/tests/src/com/android/systemui/biometrics/SideFpsControllerTest.kt +2 −2 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ import com.android.systemui.SysuiTestableContext import com.android.systemui.dump.DumpManager import com.android.systemui.flags.FakeFeatureFlags import com.android.systemui.flags.Flags.MODERN_ALTERNATE_BOUNCER import com.android.systemui.keyguard.data.repository.FakeBiometricRepository import com.android.systemui.keyguard.data.repository.FakeBiometricSettingsRepository import com.android.systemui.keyguard.data.repository.FakeDeviceEntryFingerprintAuthRepository import com.android.systemui.keyguard.data.repository.FakeKeyguardBouncerRepository import com.android.systemui.keyguard.domain.interactor.AlternateBouncerInteractor Loading Loading @@ -137,7 +137,7 @@ class SideFpsControllerTest : SysuiTestCase() { alternateBouncerInteractor = AlternateBouncerInteractor( keyguardBouncerRepository, FakeBiometricRepository(), FakeBiometricSettingsRepository(), FakeDeviceEntryFingerprintAuthRepository(), FakeSystemClock(), mock(KeyguardUpdateMonitor::class.java), Loading
packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerWithCoroutinesTest.kt +2 −2 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import com.android.systemui.classifier.FalsingCollector import com.android.systemui.flags.FeatureFlags import com.android.systemui.keyguard.DismissCallbackRegistry import com.android.systemui.keyguard.data.BouncerView import com.android.systemui.keyguard.data.repository.BiometricRepository 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.keyguard.data.repository.KeyguardBouncerRepositoryImpl Loading Loading @@ -92,7 +92,7 @@ class UdfpsKeyguardViewControllerWithCoroutinesTest : UdfpsKeyguardViewControlle mAlternateBouncerInteractor = AlternateBouncerInteractor( keyguardBouncerRepository, mock(BiometricRepository::class.java), mock(BiometricSettingsRepository::class.java), mock(DeviceEntryFingerprintAuthRepository::class.java), mock(SystemClock::class.java), mock(KeyguardUpdateMonitor::class.java), Loading