From 21a90c9a3ee4af67a1fb3aa2ebbe794736542f4a Mon Sep 17 00:00:00 2001 From: Chandru S Date: Tue, 17 Jan 2023 10:57:15 -0800 Subject: [PATCH] Rename BiometricRepository to BiometricSettingsRepository. Bug: 262838215 Test: atest BiometricSettingsRepositoryTest Change-Id: Iebb44653c29756f8bf489fb1f2c04f319ccbc7ab --- ...tory.kt => BiometricSettingsRepository.kt} | 11 +++++----- .../repository/KeyguardRepositoryModule.kt | 5 ++++- .../interactor/AlternateBouncerInteractor.kt | 10 ++++----- .../biometrics/SideFpsControllerTest.kt | 4 ++-- ...eyguardViewControllerWithCoroutinesTest.kt | 4 ++-- ....kt => BiometricSettingsRepositoryTest.kt} | 14 ++++++------ .../AlternateBouncerInteractorTest.kt | 22 +++++++++---------- ....kt => FakeBiometricSettingsRepository.kt} | 2 +- 8 files changed, 38 insertions(+), 34 deletions(-) rename packages/SystemUI/src/com/android/systemui/keyguard/data/repository/{BiometricRepository.kt => BiometricSettingsRepository.kt} (96%) rename packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/{BiometricRepositoryTest.kt => BiometricSettingsRepositoryTest.kt} (94%) rename packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/{FakeBiometricRepository.kt => FakeBiometricSettingsRepository.kt} (96%) diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/BiometricRepository.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepository.kt similarity index 96% rename from packages/SystemUI/src/com/android/systemui/keyguard/data/repository/BiometricRepository.kt rename to packages/SystemUI/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepository.kt index 25d8f4021f878..0af596a53a4d5 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/BiometricRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepository.kt @@ -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 @@ -68,7 +69,7 @@ interface BiometricRepository { } @SysUISingleton -class BiometricRepositoryImpl +class BiometricSettingsRepositoryImpl @Inject constructor( context: Context, @@ -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 = @@ -88,7 +89,7 @@ constructor( override val isFingerprintEnrolled: StateFlow = selectedUserId - .flatMapLatest { userId -> + .flatMapLatest { conflatedCallbackFlow { val callback = object : AuthController.Callback { diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepositoryModule.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepositoryModule.kt index cc99eb72da16d..6dee558ba0df0 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepositoryModule.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepositoryModule.kt @@ -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( diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/AlternateBouncerInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/AlternateBouncerInteractor.kt index 6020ef8017c86..6452e0e094ceb 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/AlternateBouncerInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/AlternateBouncerInteractor.kt @@ -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 @@ -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, @@ -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 && diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/SideFpsControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/SideFpsControllerTest.kt index fd931b0a794ba..a57c58c44907a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/SideFpsControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/SideFpsControllerTest.kt @@ -59,7 +59,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.KeyguardBouncerRepository import com.android.systemui.keyguard.domain.interactor.AlternateBouncerInteractor @@ -145,7 +145,7 @@ class SideFpsControllerTest : SysuiTestCase() { alternateBouncerInteractor = AlternateBouncerInteractor( keyguardBouncerRepository, - FakeBiometricRepository(), + FakeBiometricSettingsRepository(), FakeDeviceEntryFingerprintAuthRepository(), FakeSystemClock(), mock(KeyguardUpdateMonitor::class.java), diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerWithCoroutinesTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerWithCoroutinesTest.kt index 81a6bc2b25b57..5c9a9d6423a88 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerWithCoroutinesTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerWithCoroutinesTest.kt @@ -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.domain.interactor.AlternateBouncerInteractor @@ -91,7 +91,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), diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/BiometricRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepositoryTest.kt similarity index 94% rename from packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/BiometricRepositoryTest.kt rename to packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepositoryTest.kt index a92dd3b923973..ddd10493571c2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/BiometricRepositoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepositoryTest.kt @@ -50,8 +50,8 @@ import org.mockito.MockitoAnnotations @SmallTest @TestableLooper.RunWithLooper(setAsMainLooper = true) @RunWith(AndroidTestingRunner::class) -class BiometricRepositoryTest : SysuiTestCase() { - private lateinit var underTest: BiometricRepository +class BiometricSettingsRepositoryTest : SysuiTestCase() { + private lateinit var underTest: BiometricSettingsRepository @Mock private lateinit var authController: AuthController @Mock private lateinit var lockPatternUtils: LockPatternUtils @@ -71,11 +71,11 @@ class BiometricRepositoryTest : SysuiTestCase() { userRepository = FakeUserRepository() } - private suspend fun createBiometricRepository() { + private suspend fun createBiometricSettingsRepository() { userRepository.setUserInfos(listOf(PRIMARY_USER)) userRepository.setSelectedUserInfo(PRIMARY_USER) underTest = - BiometricRepositoryImpl( + BiometricSettingsRepositoryImpl( context = context, lockPatternUtils = lockPatternUtils, broadcastDispatcher = fakeBroadcastDispatcher, @@ -91,7 +91,7 @@ class BiometricRepositoryTest : SysuiTestCase() { @Test fun fingerprintEnrollmentChange() = testScope.runTest { - createBiometricRepository() + createBiometricSettingsRepository() val fingerprintEnabledByDevicePolicy = collectLastValue(underTest.isFingerprintEnrolled) runCurrent() @@ -117,7 +117,7 @@ class BiometricRepositoryTest : SysuiTestCase() { @Test fun strongBiometricAllowedChange() = testScope.runTest { - createBiometricRepository() + createBiometricSettingsRepository() val strongBiometricAllowed = collectLastValue(underTest.isStrongBiometricAllowed) runCurrent() @@ -140,7 +140,7 @@ class BiometricRepositoryTest : SysuiTestCase() { @Test fun fingerprintDisabledByDpmChange() = testScope.runTest { - createBiometricRepository() + createBiometricSettingsRepository() val fingerprintEnabledByDevicePolicy = collectLastValue(underTest.isFingerprintEnabledByDevicePolicy) runCurrent() diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/AlternateBouncerInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/AlternateBouncerInteractorTest.kt index 68fff262214a7..101d0f49ec50f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/AlternateBouncerInteractorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/AlternateBouncerInteractorTest.kt @@ -22,7 +22,7 @@ import com.android.keyguard.ViewMediatorCallback import com.android.systemui.SysuiTestCase import com.android.systemui.flags.FakeFeatureFlags import com.android.systemui.flags.Flags -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.KeyguardBouncerRepository import com.android.systemui.log.table.TableLogBuffer @@ -46,7 +46,7 @@ import org.mockito.MockitoAnnotations class AlternateBouncerInteractorTest : SysuiTestCase() { private lateinit var underTest: AlternateBouncerInteractor private lateinit var bouncerRepository: KeyguardBouncerRepository - private lateinit var biometricRepository: FakeBiometricRepository + private lateinit var biometricSettingsRepository: FakeBiometricSettingsRepository private lateinit var deviceEntryFingerprintAuthRepository: FakeDeviceEntryFingerprintAuthRepository @Mock private lateinit var systemClock: SystemClock @@ -64,13 +64,13 @@ class AlternateBouncerInteractorTest : SysuiTestCase() { TestCoroutineScope(), bouncerLogger, ) - biometricRepository = FakeBiometricRepository() + biometricSettingsRepository = FakeBiometricSettingsRepository() deviceEntryFingerprintAuthRepository = FakeDeviceEntryFingerprintAuthRepository() featureFlags = FakeFeatureFlags().apply { this.set(Flags.MODERN_ALTERNATE_BOUNCER, true) } underTest = AlternateBouncerInteractor( bouncerRepository, - biometricRepository, + biometricSettingsRepository, deviceEntryFingerprintAuthRepository, systemClock, keyguardUpdateMonitor, @@ -95,7 +95,7 @@ class AlternateBouncerInteractorTest : SysuiTestCase() { @Test fun canShowAlternateBouncerForFingerprint_noFingerprintsEnrolled() { givenCanShowAlternateBouncer() - biometricRepository.setFingerprintEnrolled(false) + biometricSettingsRepository.setFingerprintEnrolled(false) assertFalse(underTest.canShowAlternateBouncerForFingerprint()) } @@ -103,7 +103,7 @@ class AlternateBouncerInteractorTest : SysuiTestCase() { @Test fun canShowAlternateBouncerForFingerprint_strongBiometricNotAllowed() { givenCanShowAlternateBouncer() - biometricRepository.setStrongBiometricAllowed(false) + biometricSettingsRepository.setStrongBiometricAllowed(false) assertFalse(underTest.canShowAlternateBouncerForFingerprint()) } @@ -111,7 +111,7 @@ class AlternateBouncerInteractorTest : SysuiTestCase() { @Test fun canShowAlternateBouncerForFingerprint_devicePolicyDoesNotAllowFingerprint() { givenCanShowAlternateBouncer() - biometricRepository.setFingerprintEnabledByDevicePolicy(false) + biometricSettingsRepository.setFingerprintEnabledByDevicePolicy(false) assertFalse(underTest.canShowAlternateBouncerForFingerprint()) } @@ -158,13 +158,13 @@ class AlternateBouncerInteractorTest : SysuiTestCase() { private fun givenCanShowAlternateBouncer() { bouncerRepository.setAlternateBouncerUIAvailable(true) - biometricRepository.setFingerprintEnrolled(true) - biometricRepository.setStrongBiometricAllowed(true) - biometricRepository.setFingerprintEnabledByDevicePolicy(true) + biometricSettingsRepository.setFingerprintEnrolled(true) + biometricSettingsRepository.setStrongBiometricAllowed(true) + biometricSettingsRepository.setFingerprintEnabledByDevicePolicy(true) deviceEntryFingerprintAuthRepository.setLockedOut(false) } private fun givenCannotShowAlternateBouncer() { - biometricRepository.setFingerprintEnrolled(false) + biometricSettingsRepository.setFingerprintEnrolled(false) } } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeBiometricRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeBiometricSettingsRepository.kt similarity index 96% rename from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeBiometricRepository.kt rename to packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeBiometricSettingsRepository.kt index f3e52de0d7a0c..044679d6e9a8e 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeBiometricRepository.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeBiometricSettingsRepository.kt @@ -21,7 +21,7 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow -class FakeBiometricRepository : BiometricRepository { +class FakeBiometricSettingsRepository : BiometricSettingsRepository { private val _isFingerprintEnrolled = MutableStateFlow(false) override val isFingerprintEnrolled: StateFlow = _isFingerprintEnrolled.asStateFlow()