From ae40494ee6d8616a6c7988935a215942cc20ee05 Mon Sep 17 00:00:00 2001 From: Hao Dong Date: Wed, 27 Sep 2023 17:17:48 +0000 Subject: [PATCH] Use shared lib for settings v2. Test: settingsv2 tests passed Bug: 302372183 Change-Id: I6d1b20853b26662c538e804b1191bb720f1d7b8f --- .../fingerprint2/conversion/Util.kt | 35 +------------------ .../FingerprintManagerInteractorImpl.kt | 6 ++-- .../biometrics/fingerprint2/shared/Android.bp | 1 + .../FingerprintManagerInteractor.kt | 4 +-- .../shared/model/FingerprintViewModel.kt | 33 ----------------- .../FingerprintEnrollFindSensorV2Fragment.kt | 15 ++++---- .../FingerprintEnrollIntroV2Fragment.kt | 6 ++-- .../FingerprintEnrollFindSensorViewModel.kt | 11 +++--- .../viewmodel/FingerprintEnrollViewModel.kt | 3 +- .../viewmodel/FingerprintSettingsViewModel.kt | 9 +++-- tests/shared/Android.bp | 1 + .../FakeFingerprintManagerInteractor.kt | 21 ++++++----- .../FingerprintSettingsViewModelTest.kt | 30 ++++++++-------- 13 files changed, 58 insertions(+), 117 deletions(-) diff --git a/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt b/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt index b2767c3b3cc..98b7ed07497 100644 --- a/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt +++ b/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt @@ -17,43 +17,10 @@ package com.android.settings.biometrics.fingerprint2.conversion import android.hardware.fingerprint.FingerprintManager -import android.hardware.fingerprint.FingerprintSensorProperties -import android.hardware.fingerprint.FingerprintSensorPropertiesInternal import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason -import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintSensorPropertyViewModel -import com.android.settings.biometrics.fingerprint2.shared.model.SensorStrength -import com.android.settings.biometrics.fingerprint2.shared.model.SensorType -class Util { - companion object { - fun sensorPropsToViewModel( - props: FingerprintSensorPropertiesInternal - ): FingerprintSensorPropertyViewModel { - val sensorStrength: SensorStrength = - when (props.sensorStrength) { - FingerprintSensorProperties.STRENGTH_CONVENIENCE -> SensorStrength.Convenient - FingerprintSensorProperties.STRENGTH_WEAK -> SensorStrength.Weak - FingerprintSensorProperties.STRENGTH_STRONG -> SensorStrength.Strong - else -> SensorStrength.Unknown - } - val sensorType: SensorType = - when (props.sensorType) { - FingerprintSensorProperties.TYPE_UDFPS_OPTICAL -> SensorType.Optical - FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC -> SensorType.Ultrasonic - FingerprintSensorProperties.TYPE_REAR -> SensorType.RFPS - FingerprintSensorProperties.TYPE_POWER_BUTTON -> SensorType.SFPS - else -> SensorType.Unknown - } - return FingerprintSensorPropertyViewModel( - props.sensorId, - sensorStrength, - props.maxEnrollmentsPerUser, - sensorType - ) - } - } +class Util -} fun EnrollReason.toOriginalReason(): Int { return when (this) { EnrollReason.EnrollEnrolling -> FingerprintManager.ENROLL_ENROLL diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt index 41da24773da..5c9232f4a96 100644 --- a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt +++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt @@ -24,14 +24,14 @@ import android.hardware.fingerprint.FingerprintManager.RemovalCallback import android.os.CancellationSignal import android.util.Log import com.android.settings.biometrics.GatekeeperPasswordProvider -import com.android.settings.biometrics.fingerprint2.conversion.Util import com.android.settings.biometrics.fingerprint2.conversion.toOriginalReason import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason +import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollStateViewModel import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel -import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollStateViewModel import com.android.settings.password.ChooseLockSettingsHelper +import com.android.systemui.biometrics.shared.model.toFingerprintSensor import kotlin.coroutines.resume import kotlin.coroutines.suspendCoroutine import kotlinx.coroutines.CancellableContinuation @@ -94,7 +94,7 @@ class FingerprintManagerInteractorImpl( val sensorPropertiesInternal = fingerprintManager.sensorPropertiesInternal emit( if (sensorPropertiesInternal.isEmpty()) null - else Util.sensorPropsToViewModel(sensorPropertiesInternal.first()) + else sensorPropertiesInternal.first().toFingerprintSensor() ) } diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/Android.bp b/src/com/android/settings/biometrics/fingerprint2/shared/Android.bp index 8873fd8f1a2..145f3d682ea 100644 --- a/src/com/android/settings/biometrics/fingerprint2/shared/Android.bp +++ b/src/com/android/settings/biometrics/fingerprint2/shared/Android.bp @@ -8,6 +8,7 @@ android_library { "**/*.kt" ], static_libs: [ + "BiometricsSharedLib", "kotlinx-coroutines-android", ], } \ No newline at end of file diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/domain/interactor/FingerprintManagerInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/shared/domain/interactor/FingerprintManagerInteractor.kt index 5353bb2015b..72867155e5e 100644 --- a/src/com/android/settings/biometrics/fingerprint2/shared/domain/interactor/FingerprintManagerInteractor.kt +++ b/src/com/android/settings/biometrics/fingerprint2/shared/domain/interactor/FingerprintManagerInteractor.kt @@ -18,9 +18,9 @@ package com.android.settings.biometrics.fingerprint2.shared.domain.interactor import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel -import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintSensorPropertyViewModel import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollStateViewModel +import com.android.systemui.biometrics.shared.model.FingerprintSensor import kotlinx.coroutines.flow.Flow /** @@ -40,7 +40,7 @@ interface FingerprintManagerInteractor { val canEnrollFingerprints: Flow /** Retrieves the sensor properties of a device */ - val sensorPropertiesInternal: Flow + val sensorPropertiesInternal: Flow /** Runs the authenticate flow */ suspend fun authenticate(): FingerprintAuthAttemptViewModel diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt index fc9539c7e3d..db28e793533 100644 --- a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt +++ b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt @@ -32,36 +32,3 @@ sealed class FingerprintAuthAttemptViewModel { val message: String, ) : FingerprintAuthAttemptViewModel() } - -/** The various types of fingerprint sensors */ -sealed class SensorType { - /** Rear fingerprint sensor */ - data object RFPS : SensorType() - - /** Optical under display sensor */ - data object Optical : SensorType() - - /** Ultrasonic under display sensor */ - data object Ultrasonic : SensorType() - - /** Side fingerprint sensor */ - data object SFPS : SensorType() - - /** Unkonwn fingerprint sensor */ - data object Unknown : SensorType() -} - -/** The strength of a given sensor */ -sealed class SensorStrength { - data object Convenient : SensorStrength() - data object Weak : SensorStrength() - data object Strong : SensorStrength() - data object Unknown : SensorStrength() -} - -data class FingerprintSensorPropertyViewModel( - val sensorId: Int, - val sensorStrength: SensorStrength, - val maxEnrollmentsPerUser: Int, - val sensorType: SensorType -) diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt index e4ac00fd308..dcdcccfd7b4 100644 --- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt +++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt @@ -29,7 +29,6 @@ import com.airbnb.lottie.LottieAnimationView import com.android.settings.R import com.android.settings.biometrics.fingerprint.FingerprintErrorDialog import com.android.settings.biometrics.fingerprint.FingerprintFindSensorAnimation -import com.android.settings.biometrics.fingerprint2.shared.model.SensorType import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollFindSensorViewModel import com.android.systemui.biometrics.shared.model.FingerprintSensorType import com.google.android.setupcompat.template.FooterBarMixin @@ -66,9 +65,9 @@ class FingerprintEnrollFindSensorV2Fragment : Fragment() { viewModel.sensorType.collect { contentLayoutId = when (it) { - SensorType.Optical, - SensorType.Ultrasonic -> R.layout.udfps_enroll_find_sensor_layout - SensorType.SFPS -> R.layout.sfps_enroll_find_sensor_layout + FingerprintSensorType.UDFPS_OPTICAL, + FingerprintSensorType.UDFPS_ULTRASONIC -> R.layout.udfps_enroll_find_sensor_layout + FingerprintSensorType.POWER_BUTTON -> R.layout.sfps_enroll_find_sensor_layout else -> R.layout.fingerprint_v2_enroll_find_sensor } } @@ -171,14 +170,14 @@ class FingerprintEnrollFindSensorV2Fragment : Fragment() { illustrationLottie?.visibility = View.VISIBLE } - private fun setTexts(sensorType: SensorType, view: GlifLayout) { + private fun setTexts(sensorType: FingerprintSensorType, view: GlifLayout) { when (sensorType) { - SensorType.Optical, - SensorType.Ultrasonic -> { + FingerprintSensorType.UDFPS_OPTICAL, + FingerprintSensorType.UDFPS_ULTRASONIC -> { view.setHeaderText(R.string.security_settings_udfps_enroll_find_sensor_title) view.setDescriptionText(R.string.security_settings_udfps_enroll_find_sensor_message) } - SensorType.SFPS -> { + FingerprintSensorType.POWER_BUTTON -> { view.setHeaderText(R.string.security_settings_sfps_enroll_find_sensor_title) view.setDescriptionText(R.string.security_settings_sfps_enroll_find_sensor_message) } diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt index 2ebc5d58c20..dbf6d128c0d 100644 --- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt +++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt @@ -35,10 +35,10 @@ import androidx.lifecycle.lifecycleScope import com.android.settings.R import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel -import com.android.settings.biometrics.fingerprint2.shared.model.SensorType import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Unicorn +import com.android.systemui.biometrics.shared.model.FingerprintSensorType import com.google.android.setupcompat.template.FooterBarMixin import com.google.android.setupcompat.template.FooterButton import com.google.android.setupdesign.GlifLayout @@ -144,8 +144,8 @@ class FingerprintEnrollIntroV2Fragment : Fragment(R.layout.fingerprint_v2_enroll val iconShield: ImageView = view.requireViewById(R.id.icon_shield) val footerMessage6: TextView = view.requireViewById(R.id.footer_message_6) when (sensorType) { - SensorType.Ultrasonic, - SensorType.Optical -> { + FingerprintSensorType.UDFPS_ULTRASONIC, + FingerprintSensorType.UDFPS_OPTICAL -> { footerMessage6.visibility = View.VISIBLE iconShield.visibility = View.VISIBLE } diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollFindSensorViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollFindSensorViewModel.kt index c877d679a9e..94bfce33e21 100644 --- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollFindSensorViewModel.kt +++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollFindSensorViewModel.kt @@ -22,7 +22,6 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollStateViewModel -import com.android.settings.biometrics.fingerprint2.shared.model.SensorType import com.android.systemui.biometrics.shared.model.FingerprintSensorType import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow @@ -45,13 +44,13 @@ class FingerprintEnrollFindSensorViewModel( orientationStateViewModel: OrientationStateViewModel ) : ViewModel() { /** Represents the stream of sensor type. */ - val sensorType: Flow = + val sensorType: Flow = fingerprintEnrollViewModel.sensorType.filterWhenEducationIsShown() private val _isUdfps: Flow = sensorType.map { - it == SensorType.Optical || it == SensorType.Ultrasonic + it == FingerprintSensorType.UDFPS_OPTICAL || it == FingerprintSensorType.UDFPS_ULTRASONIC } - private val _isSfps: Flow = sensorType.map { it == SensorType.RFPS } + private val _isSfps: Flow = sensorType.map { it == FingerprintSensorType.POWER_BUTTON } private val _isRearSfps: Flow = combineTransform(_isSfps, _isUdfps) { v1, v2 -> !v1 && !v2 } @@ -95,8 +94,8 @@ class FingerprintEnrollFindSensorViewModel( ) { sensorType, hasValidGatekeeperInfo, gatekeeperInfo, navigationViewModel -> val shouldStartEnroll = navigationViewModel.currStep == Education && - sensorType != SensorType.Optical && - sensorType != SensorType.Ultrasonic && + sensorType != FingerprintSensorType.UDFPS_OPTICAL && + sensorType != FingerprintSensorType.UDFPS_ULTRASONIC && hasValidGatekeeperInfo if (shouldStartEnroll) (gatekeeperInfo as GatekeeperInfo.GatekeeperPasswordInfo).token else null diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollViewModel.kt index b2c51dbc1f5..392d205d203 100644 --- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollViewModel.kt +++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollViewModel.kt @@ -20,7 +20,6 @@ import androidx.lifecycle.ViewModelProvider import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollStateViewModel -import com.android.settings.biometrics.fingerprint2.shared.model.SensorType import com.android.systemui.biometrics.shared.model.FingerprintSensorType import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.flow.Flow @@ -46,7 +45,7 @@ class FingerprintEnrollViewModel( private var _consumerShouldEnroll: MutableStateFlow = MutableStateFlow(false) /** Represents the stream of [FingerprintSensorType] */ - val sensorType: Flow = + val sensorType: Flow = fingerprintManagerInteractor.sensorPropertiesInternal.filterNotNull().map { it.sensorType } /** diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt index d2691b4b2c5..fa1e5e11feb 100644 --- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt +++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt @@ -24,7 +24,7 @@ import androidx.lifecycle.viewModelScope import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel -import com.android.settings.biometrics.fingerprint2.shared.model.SensorType +import com.android.systemui.biometrics.shared.model.FingerprintSensorType import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableSharedFlow @@ -89,7 +89,7 @@ class FingerprintSettingsViewModel( private val _consumerShouldAuthenticate: MutableStateFlow = MutableStateFlow(false) - private val _fingerprintSensorType: Flow = + private val _fingerprintSensorType: Flow = fingerprintManagerInteractor.sensorPropertiesInternal.filterNotNull().map { it.sensorType } private val _sensorNullOrEmpty: Flow = @@ -146,7 +146,10 @@ class FingerprintSettingsViewModel( if (sensorNullOrEmpty) { return@combine false } - if (listOf(SensorType.Ultrasonic, SensorType.Optical).contains(sensorType)) { + if ( + listOf(FingerprintSensorType.UDFPS_ULTRASONIC, FingerprintSensorType.UDFPS_OPTICAL) + .contains(sensorType) + ) { return@combine false } diff --git a/tests/shared/Android.bp b/tests/shared/Android.bp index fca24b69f53..27573e8c8e1 100644 --- a/tests/shared/Android.bp +++ b/tests/shared/Android.bp @@ -4,6 +4,7 @@ android_library { "src/**/*.kt" ], libs: [ + "BiometricsSharedLib", "FingerprintManagerInteractor", ], } diff --git a/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt b/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt index 05c3e3c27d4..ad943f210a3 100644 --- a/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt +++ b/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt @@ -17,13 +17,13 @@ package com.android.settings.testutils2 import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor -import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel -import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintSensorPropertyViewModel -import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollStateViewModel -import com.android.settings.biometrics.fingerprint2.shared.model.SensorStrength -import com.android.settings.biometrics.fingerprint2.shared.model.SensorType +import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel +import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel +import com.android.systemui.biometrics.shared.model.FingerprintSensor +import com.android.systemui.biometrics.shared.model.FingerprintSensorType +import com.android.systemui.biometrics.shared.model.SensorStrength import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flowOf @@ -39,7 +39,12 @@ class FakeFingerprintManagerInteractor : FingerprintManagerInteractor { var pressToAuthEnabled = true var sensorProp = - FingerprintSensorPropertyViewModel(0 /* sensorId */, SensorStrength.Strong, 5, SensorType.SFPS) + FingerprintSensor( + 0 /* sensorId */, + SensorStrength.STRONG, + 5, + FingerprintSensorType.POWER_BUTTON + ) override suspend fun authenticate(): FingerprintAuthAttemptViewModel { return authenticateAttempt @@ -57,7 +62,7 @@ class FakeFingerprintManagerInteractor : FingerprintManagerInteractor { emit(enrolledFingerprintsInternal.size < enrollableFingerprints) } - override val sensorPropertiesInternal: Flow = flow { + override val sensorPropertiesInternal: Flow = flow { emit(sensorProp) } @@ -79,7 +84,7 @@ class FakeFingerprintManagerInteractor : FingerprintManagerInteractor { } override suspend fun hasSideFps(): Boolean { - return sensorProp.sensorType == SensorType.SFPS + return sensorProp.sensorType == FingerprintSensorType.POWER_BUTTON } override suspend fun pressToAuthEnabled(): Boolean { diff --git a/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsViewModelTest.kt b/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsViewModelTest.kt index fb1d05a7be9..d25ced011a9 100644 --- a/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsViewModelTest.kt +++ b/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsViewModelTest.kt @@ -18,14 +18,14 @@ package com.android.settings.fingerprint2.ui.settings import androidx.arch.core.executor.testing.InstantTaskExecutorRule import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel -import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintSensorPropertyViewModel import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel -import com.android.settings.biometrics.fingerprint2.shared.model.SensorStrength -import com.android.settings.biometrics.fingerprint2.shared.model.SensorType import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.PreferenceViewModel import com.android.settings.testutils2.FakeFingerprintManagerInteractor +import com.android.systemui.biometrics.shared.model.FingerprintSensor +import com.android.systemui.biometrics.shared.model.FingerprintSensorType +import com.android.systemui.biometrics.shared.model.SensorStrength import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.collectLatest @@ -96,11 +96,11 @@ class FingerprintSettingsViewModelTest { fun authenticate_DoesNotRun_ifOptical() = testScope.runTest { fakeFingerprintManagerInteractor.sensorProp = - FingerprintSensorPropertyViewModel( + FingerprintSensor( 0 /* sensorId */, - SensorStrength.Strong, + SensorStrength.STRONG, 5 /* maxEnrollmentsPerUser */, - SensorType.Optical, + FingerprintSensorType.UDFPS_OPTICAL, ) fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf(FingerprintViewModel("a", 1, 3L)) @@ -132,11 +132,11 @@ class FingerprintSettingsViewModelTest { fun authenticate_DoesNotRun_ifUltrasonic() = testScope.runTest { fakeFingerprintManagerInteractor.sensorProp = - FingerprintSensorPropertyViewModel( + FingerprintSensor( 0 /* sensorId */, - SensorStrength.Strong, + SensorStrength.STRONG, 5 /* maxEnrollmentsPerUser */, - SensorType.Ultrasonic, + FingerprintSensorType.UDFPS_ULTRASONIC, ) fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf(FingerprintViewModel("a", 1, 3L)) @@ -166,11 +166,11 @@ class FingerprintSettingsViewModelTest { fun authenticate_DoesRun_ifNotUdfps() = testScope.runTest { fakeFingerprintManagerInteractor.sensorProp = - FingerprintSensorPropertyViewModel( + FingerprintSensor( 0 /* sensorId */, - SensorStrength.Strong, + SensorStrength.STRONG, 5 /* maxEnrollmentsPerUser */, - SensorType.SFPS + FingerprintSensorType.POWER_BUTTON ) fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf(FingerprintViewModel("a", 1, 3L)) @@ -372,11 +372,11 @@ class FingerprintSettingsViewModelTest { private fun setupAuth(): MutableList { fakeFingerprintManagerInteractor.sensorProp = - FingerprintSensorPropertyViewModel( + FingerprintSensor( 0 /* sensorId */, - SensorStrength.Strong, + SensorStrength.STRONG, 5 /* maxEnrollmentsPerUser */, - SensorType.SFPS + FingerprintSensorType.POWER_BUTTON ) val fingerprints = mutableListOf(FingerprintViewModel("a", 1, 3L), FingerprintViewModel("b", 2, 5L))