Updated FakeFingerprintManagerInteractor
This class should use FingerprintSensorPropertiesInternal.toFingerprintSensor() instead of creating a FingerprintSensor(). Bug: 297082837 Test: atest Change-Id: I3b622563300931f1f1638ae63b1c44aa62189087
This commit is contained in:
@@ -17,6 +17,11 @@
|
|||||||
package com.android.settings.biometrics.fingerprint2.fragment
|
package com.android.settings.biometrics.fingerprint2.fragment
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.hardware.biometrics.ComponentInfoInternal
|
||||||
|
import android.hardware.biometrics.SensorLocationInternal
|
||||||
|
import android.hardware.biometrics.SensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.fragment.app.testing.FragmentScenario
|
import androidx.fragment.app.testing.FragmentScenario
|
||||||
import androidx.fragment.app.testing.launchFragmentInContainer
|
import androidx.fragment.app.testing.launchFragmentInContainer
|
||||||
@@ -47,6 +52,7 @@ import com.android.settings.testutils2.FakeFingerprintManagerInteractor
|
|||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
||||||
import com.android.systemui.biometrics.shared.model.SensorStrength
|
import com.android.systemui.biometrics.shared.model.SensorStrength
|
||||||
|
import com.android.systemui.biometrics.shared.model.toFingerprintSensor
|
||||||
import com.google.android.setupdesign.GlifLayout
|
import com.google.android.setupdesign.GlifLayout
|
||||||
import com.google.android.setupdesign.template.RequireScrollMixin
|
import com.google.android.setupdesign.template.RequireScrollMixin
|
||||||
import kotlinx.coroutines.test.StandardTestDispatcher
|
import kotlinx.coroutines.test.StandardTestDispatcher
|
||||||
@@ -67,7 +73,17 @@ class FingerprintEnrollIntroFragmentTest {
|
|||||||
private val backgroundDispatcher = StandardTestDispatcher()
|
private val backgroundDispatcher = StandardTestDispatcher()
|
||||||
private lateinit var fragmentScenario: FragmentScenario<FingerprintEnrollIntroV2Fragment>
|
private lateinit var fragmentScenario: FragmentScenario<FingerprintEnrollIntroV2Fragment>
|
||||||
private val fingerprintSensor =
|
private val fingerprintSensor =
|
||||||
FingerprintSensor(1, SensorStrength.STRONG, 5, FingerprintSensorType.POWER_BUTTON)
|
FingerprintSensorPropertiesInternal(
|
||||||
|
0 /* sensorId */,
|
||||||
|
SensorProperties.STRENGTH_STRONG,
|
||||||
|
5 /* maxEnrollmentsPerUser */,
|
||||||
|
listOf<ComponentInfoInternal>(),
|
||||||
|
FingerprintSensorProperties.TYPE_POWER_BUTTON,
|
||||||
|
false /* halControlsIllumination */,
|
||||||
|
true /* resetLockoutRequiresHardwareAuthToken */,
|
||||||
|
listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
|
||||||
|
)
|
||||||
|
.toFingerprintSensor()
|
||||||
|
|
||||||
var enrollFlow = Default
|
var enrollFlow = Default
|
||||||
val flowViewModel = FingerprintFlowViewModel(enrollFlow)
|
val flowViewModel = FingerprintFlowViewModel(enrollFlow)
|
||||||
|
@@ -16,6 +16,11 @@
|
|||||||
package com.android.settings.tests.screenshot.biometrics.fingerprint
|
package com.android.settings.tests.screenshot.biometrics.fingerprint
|
||||||
|
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
|
import android.hardware.biometrics.ComponentInfoInternal
|
||||||
|
import android.hardware.biometrics.SensorLocationInternal
|
||||||
|
import android.hardware.biometrics.SensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
||||||
import android.view.Surface
|
import android.view.Surface
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
@@ -39,9 +44,7 @@ import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Fing
|
|||||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
|
||||||
import com.android.settings.testutils2.FakeFingerprintManagerInteractor
|
import com.android.settings.testutils2.FakeFingerprintManagerInteractor
|
||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
import com.android.systemui.biometrics.shared.model.toFingerprintSensor
|
||||||
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.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
@@ -56,7 +59,19 @@ import platform.test.screenshot.matchers.PixelPerfectMatcher
|
|||||||
class Injector(step: FingerprintNavigationStep.UiStep) {
|
class Injector(step: FingerprintNavigationStep.UiStep) {
|
||||||
|
|
||||||
var enrollFlow = Default
|
var enrollFlow = Default
|
||||||
var fingerprintSensor = FingerprintSensor(1, SensorStrength.STRONG, 5, FingerprintSensorType.REAR)
|
var fingerprintSensor =
|
||||||
|
FingerprintSensorPropertiesInternal(
|
||||||
|
0 /* sensorId */,
|
||||||
|
SensorProperties.STRENGTH_STRONG,
|
||||||
|
5 /* maxEnrollmentsPerUser */,
|
||||||
|
listOf<ComponentInfoInternal>(),
|
||||||
|
FingerprintSensorProperties.TYPE_REAR,
|
||||||
|
false /* halControlsIllumination */,
|
||||||
|
true /* resetLockoutRequiresHardwareAuthToken */,
|
||||||
|
listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
|
||||||
|
)
|
||||||
|
.toFingerprintSensor()
|
||||||
|
|
||||||
var accessibilityInteractor =
|
var accessibilityInteractor =
|
||||||
object : AccessibilityInteractor {
|
object : AccessibilityInteractor {
|
||||||
override val isAccessibilityEnabled: Flow<Boolean> = flowOf(true)
|
override val isAccessibilityEnabled: Flow<Boolean> = flowOf(true)
|
||||||
|
@@ -16,6 +16,11 @@
|
|||||||
|
|
||||||
package com.android.settings.testutils2
|
package com.android.settings.testutils2
|
||||||
|
|
||||||
|
import android.hardware.biometrics.ComponentInfoInternal
|
||||||
|
import android.hardware.biometrics.SensorLocationInternal
|
||||||
|
import android.hardware.biometrics.SensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
||||||
import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
|
import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
|
||||||
import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
|
import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
|
||||||
import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
|
import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
|
||||||
@@ -23,7 +28,7 @@ import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAtt
|
|||||||
import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
|
import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
|
||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
||||||
import com.android.systemui.biometrics.shared.model.SensorStrength
|
import com.android.systemui.biometrics.shared.model.toFingerprintSensor
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.flow
|
import kotlinx.coroutines.flow.flow
|
||||||
import kotlinx.coroutines.flow.flowOf
|
import kotlinx.coroutines.flow.flowOf
|
||||||
@@ -35,16 +40,20 @@ class FakeFingerprintManagerInteractor : FingerprintManagerInteractor {
|
|||||||
var enrolledFingerprintsInternal: MutableList<FingerprintData> = mutableListOf()
|
var enrolledFingerprintsInternal: MutableList<FingerprintData> = mutableListOf()
|
||||||
var challengeToGenerate: Pair<Long, ByteArray> = Pair(-1L, byteArrayOf())
|
var challengeToGenerate: Pair<Long, ByteArray> = Pair(-1L, byteArrayOf())
|
||||||
var authenticateAttempt = FingerprintAuthAttemptModel.Success(1)
|
var authenticateAttempt = FingerprintAuthAttemptModel.Success(1)
|
||||||
var enrollStateViewModel: List<FingerEnrollState> =
|
var enrollStateViewModel: List<FingerEnrollState> = listOf(FingerEnrollState.EnrollProgress(5, 5))
|
||||||
listOf(FingerEnrollState.EnrollProgress(5, 5))
|
|
||||||
|
|
||||||
var sensorProp =
|
var sensorProp =
|
||||||
FingerprintSensor(
|
FingerprintSensorPropertiesInternal(
|
||||||
0 /* sensorId */,
|
0 /* sensorId */,
|
||||||
SensorStrength.STRONG,
|
SensorProperties.STRENGTH_STRONG,
|
||||||
5,
|
5 /* maxEnrollmentsPerUser */,
|
||||||
FingerprintSensorType.POWER_BUTTON
|
listOf<ComponentInfoInternal>(),
|
||||||
)
|
FingerprintSensorProperties.TYPE_POWER_BUTTON,
|
||||||
|
false /* halControlsIllumination */,
|
||||||
|
true /* resetLockoutRequiresHardwareAuthToken */,
|
||||||
|
listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
|
||||||
|
)
|
||||||
|
.toFingerprintSensor()
|
||||||
|
|
||||||
override suspend fun authenticate(): FingerprintAuthAttemptModel {
|
override suspend fun authenticate(): FingerprintAuthAttemptModel {
|
||||||
return authenticateAttempt
|
return authenticateAttempt
|
||||||
@@ -68,7 +77,7 @@ class FakeFingerprintManagerInteractor : FingerprintManagerInteractor {
|
|||||||
|
|
||||||
override suspend fun enroll(
|
override suspend fun enroll(
|
||||||
hardwareAuthToken: ByteArray?,
|
hardwareAuthToken: ByteArray?,
|
||||||
enrollReason: EnrollReason
|
enrollReason: EnrollReason,
|
||||||
): Flow<FingerEnrollState> = flowOf(*enrollStateViewModel.toTypedArray())
|
): Flow<FingerEnrollState> = flowOf(*enrollStateViewModel.toTypedArray())
|
||||||
|
|
||||||
override suspend fun removeFingerprint(fp: FingerprintData): Boolean {
|
override suspend fun removeFingerprint(fp: FingerprintData): Boolean {
|
||||||
@@ -84,5 +93,4 @@ class FakeFingerprintManagerInteractor : FingerprintManagerInteractor {
|
|||||||
override suspend fun hasSideFps(): Boolean {
|
override suspend fun hasSideFps(): Boolean {
|
||||||
return sensorProp.sensorType == FingerprintSensorType.POWER_BUTTON
|
return sensorProp.sensorType == FingerprintSensorType.POWER_BUTTON
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -18,18 +18,23 @@ package com.android.settings.fingerprint2.domain.interactor
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.hardware.biometrics.ComponentInfoInternal
|
||||||
|
import android.hardware.biometrics.SensorLocationInternal
|
||||||
|
import android.hardware.biometrics.SensorProperties
|
||||||
import android.hardware.fingerprint.Fingerprint
|
import android.hardware.fingerprint.Fingerprint
|
||||||
import android.hardware.fingerprint.FingerprintEnrollOptions
|
import android.hardware.fingerprint.FingerprintEnrollOptions
|
||||||
import android.hardware.fingerprint.FingerprintManager
|
import android.hardware.fingerprint.FingerprintManager
|
||||||
import android.hardware.fingerprint.FingerprintManager.CryptoObject
|
import android.hardware.fingerprint.FingerprintManager.CryptoObject
|
||||||
import android.hardware.fingerprint.FingerprintManager.FINGERPRINT_ERROR_LOCKOUT_PERMANENT
|
import android.hardware.fingerprint.FingerprintManager.FINGERPRINT_ERROR_LOCKOUT_PERMANENT
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
||||||
import android.os.CancellationSignal
|
import android.os.CancellationSignal
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import androidx.test.core.app.ApplicationProvider
|
import androidx.test.core.app.ApplicationProvider
|
||||||
import com.android.settings.biometrics.GatekeeperPasswordProvider
|
import com.android.settings.biometrics.GatekeeperPasswordProvider
|
||||||
import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepository
|
import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepository
|
||||||
import com.android.settings.biometrics.fingerprint2.domain.interactor.PressToAuthInteractor
|
|
||||||
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
|
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
|
||||||
|
import com.android.settings.biometrics.fingerprint2.domain.interactor.PressToAuthInteractor
|
||||||
import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
|
import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
|
||||||
import com.android.settings.biometrics.fingerprint2.lib.model.Default
|
import com.android.settings.biometrics.fingerprint2.lib.model.Default
|
||||||
import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
|
import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
|
||||||
@@ -38,8 +43,7 @@ import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAtt
|
|||||||
import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
|
import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
|
||||||
import com.android.settings.password.ChooseLockSettingsHelper
|
import com.android.settings.password.ChooseLockSettingsHelper
|
||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
import com.android.systemui.biometrics.shared.model.toFingerprintSensor
|
||||||
import com.android.systemui.biometrics.shared.model.SensorStrength
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.cancelAndJoin
|
import kotlinx.coroutines.cancelAndJoin
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
@@ -85,7 +89,18 @@ class FingerprintManagerInteractorTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setup() {
|
fun setup() {
|
||||||
val sensor = FingerprintSensor(1, SensorStrength.STRONG, 5, FingerprintSensorType.POWER_BUTTON)
|
val sensor =
|
||||||
|
FingerprintSensorPropertiesInternal(
|
||||||
|
0 /* sensorId */,
|
||||||
|
SensorProperties.STRENGTH_STRONG,
|
||||||
|
5 /* maxEnrollmentsPerUser */,
|
||||||
|
listOf<ComponentInfoInternal>(),
|
||||||
|
FingerprintSensorProperties.TYPE_POWER_BUTTON,
|
||||||
|
false /* halControlsIllumination */,
|
||||||
|
true /* resetLockoutRequiresHardwareAuthToken */,
|
||||||
|
listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
|
||||||
|
)
|
||||||
|
.toFingerprintSensor()
|
||||||
val fingerprintSensorRepository =
|
val fingerprintSensorRepository =
|
||||||
object : FingerprintSensorRepository {
|
object : FingerprintSensorRepository {
|
||||||
override val fingerprintSensor: Flow<FingerprintSensor> = flowOf(sensor)
|
override val fingerprintSensor: Flow<FingerprintSensor> = flowOf(sensor)
|
||||||
@@ -135,7 +150,7 @@ class FingerprintManagerInteractorTest {
|
|||||||
listOf(
|
listOf(
|
||||||
Fingerprint("Finger 1,", 2, 3L),
|
Fingerprint("Finger 1,", 2, 3L),
|
||||||
Fingerprint("Finger 2,", 3, 3L),
|
Fingerprint("Finger 2,", 3, 3L),
|
||||||
Fingerprint("Finger 3,", 4, 3L)
|
Fingerprint("Finger 3,", 4, 3L),
|
||||||
)
|
)
|
||||||
val fingerprintList2: List<Fingerprint> =
|
val fingerprintList2: List<Fingerprint> =
|
||||||
fingerprintList1.plus(
|
fingerprintList1.plus(
|
||||||
@@ -160,7 +175,7 @@ class FingerprintManagerInteractorTest {
|
|||||||
gateKeeperPasswordProvider.requestGatekeeperHat(
|
gateKeeperPasswordProvider.requestGatekeeperHat(
|
||||||
any(Intent::class.java),
|
any(Intent::class.java),
|
||||||
anyLong(),
|
anyLong(),
|
||||||
anyInt()
|
anyInt(),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.thenReturn(byteArray)
|
.thenReturn(byteArray)
|
||||||
@@ -223,7 +238,7 @@ class FingerprintManagerInteractorTest {
|
|||||||
removalCallback.value.onRemovalError(
|
removalCallback.value.onRemovalError(
|
||||||
fingerprintToRemove,
|
fingerprintToRemove,
|
||||||
100,
|
100,
|
||||||
"Oh no, we couldn't find that one"
|
"Oh no, we couldn't find that one",
|
||||||
)
|
)
|
||||||
|
|
||||||
runCurrent()
|
runCurrent()
|
||||||
@@ -260,7 +275,7 @@ class FingerprintManagerInteractorTest {
|
|||||||
any(CancellationSignal::class.java),
|
any(CancellationSignal::class.java),
|
||||||
capture(authCallback),
|
capture(authCallback),
|
||||||
nullable(Handler::class.java),
|
nullable(Handler::class.java),
|
||||||
anyInt()
|
anyInt(),
|
||||||
)
|
)
|
||||||
authCallback.value.onAuthenticationSucceeded(
|
authCallback.value.onAuthenticationSucceeded(
|
||||||
FingerprintManager.AuthenticationResult(null, fingerprint, 1, false)
|
FingerprintManager.AuthenticationResult(null, fingerprint, 1, false)
|
||||||
@@ -287,7 +302,7 @@ class FingerprintManagerInteractorTest {
|
|||||||
any(CancellationSignal::class.java),
|
any(CancellationSignal::class.java),
|
||||||
capture(authCallback),
|
capture(authCallback),
|
||||||
nullable(Handler::class.java),
|
nullable(Handler::class.java),
|
||||||
anyInt()
|
anyInt(),
|
||||||
)
|
)
|
||||||
authCallback.value.onAuthenticationError(FINGERPRINT_ERROR_LOCKOUT_PERMANENT, "Lockout!!")
|
authCallback.value.onAuthenticationError(FINGERPRINT_ERROR_LOCKOUT_PERMANENT, "Lockout!!")
|
||||||
|
|
||||||
|
@@ -18,6 +18,11 @@ package com.android.settings.fingerprint2.enrollment.viewmodel
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
|
import android.hardware.biometrics.ComponentInfoInternal
|
||||||
|
import android.hardware.biometrics.SensorLocationInternal
|
||||||
|
import android.hardware.biometrics.SensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
||||||
import android.view.Surface
|
import android.view.Surface
|
||||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||||
import androidx.test.core.app.ApplicationProvider
|
import androidx.test.core.app.ApplicationProvider
|
||||||
@@ -33,9 +38,7 @@ import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Fing
|
|||||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationViewModel
|
||||||
import com.android.settings.testutils2.FakeFingerprintManagerInteractor
|
import com.android.settings.testutils2.FakeFingerprintManagerInteractor
|
||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
import com.android.systemui.biometrics.shared.model.toFingerprintSensor
|
||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
|
||||||
import com.android.systemui.biometrics.shared.model.SensorStrength
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
@@ -94,7 +97,19 @@ class FingerprintEnrollFindSensorViewModelV2Test {
|
|||||||
)
|
)
|
||||||
.create(FingerprintGatekeeperViewModel::class.java)
|
.create(FingerprintGatekeeperViewModel::class.java)
|
||||||
|
|
||||||
val sensor = FingerprintSensor(1, SensorStrength.STRONG, 5, FingerprintSensorType.POWER_BUTTON)
|
val sensor =
|
||||||
|
FingerprintSensorPropertiesInternal(
|
||||||
|
0 /* sensorId */,
|
||||||
|
SensorProperties.STRENGTH_STRONG,
|
||||||
|
5 /* maxEnrollmentsPerUser */,
|
||||||
|
listOf<ComponentInfoInternal>(),
|
||||||
|
FingerprintSensorProperties.TYPE_POWER_BUTTON,
|
||||||
|
false /* halControlsIllumination */,
|
||||||
|
true /* resetLockoutRequiresHardwareAuthToken */,
|
||||||
|
listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
|
||||||
|
)
|
||||||
|
.toFingerprintSensor()
|
||||||
|
|
||||||
val fingerprintFlowViewModel = FingerprintFlowViewModel(Default)
|
val fingerprintFlowViewModel = FingerprintFlowViewModel(Default)
|
||||||
navigationViewModel =
|
navigationViewModel =
|
||||||
FingerprintNavigationViewModel(
|
FingerprintNavigationViewModel(
|
||||||
@@ -159,12 +174,17 @@ class FingerprintEnrollFindSensorViewModelV2Test {
|
|||||||
fun udfpsLottieInfo() =
|
fun udfpsLottieInfo() =
|
||||||
testScope.runTest {
|
testScope.runTest {
|
||||||
fakeFingerprintManagerInteractor.sensorProp =
|
fakeFingerprintManagerInteractor.sensorProp =
|
||||||
FingerprintSensor(
|
FingerprintSensorPropertiesInternal(
|
||||||
0 /* sensorId */,
|
0 /* sensorId */,
|
||||||
SensorStrength.STRONG,
|
SensorProperties.STRENGTH_STRONG,
|
||||||
5,
|
5 /* maxEnrollmentsPerUser */,
|
||||||
FingerprintSensorType.UDFPS_OPTICAL,
|
listOf<ComponentInfoInternal>(),
|
||||||
)
|
FingerprintSensorProperties.TYPE_UDFPS_OPTICAL,
|
||||||
|
false /* halControlsIllumination */,
|
||||||
|
true /* resetLockoutRequiresHardwareAuthToken */,
|
||||||
|
listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
|
||||||
|
)
|
||||||
|
.toFingerprintSensor()
|
||||||
|
|
||||||
var udfpsLottieInfo: Boolean? = null
|
var udfpsLottieInfo: Boolean? = null
|
||||||
val job = launch { underTest.udfpsLottieInfo.collect { udfpsLottieInfo = it } }
|
val job = launch { underTest.udfpsLottieInfo.collect { udfpsLottieInfo = it } }
|
||||||
@@ -218,7 +238,17 @@ class FingerprintEnrollFindSensorViewModelV2Test {
|
|||||||
fun rfpsAnimation() =
|
fun rfpsAnimation() =
|
||||||
testScope.runTest {
|
testScope.runTest {
|
||||||
fakeFingerprintManagerInteractor.sensorProp =
|
fakeFingerprintManagerInteractor.sensorProp =
|
||||||
FingerprintSensor(0 /* sensorId */, SensorStrength.STRONG, 5, FingerprintSensorType.REAR)
|
FingerprintSensorPropertiesInternal(
|
||||||
|
0 /* sensorId */,
|
||||||
|
SensorProperties.STRENGTH_STRONG,
|
||||||
|
5 /* maxEnrollmentsPerUser */,
|
||||||
|
listOf<ComponentInfoInternal>(),
|
||||||
|
FingerprintSensorProperties.TYPE_REAR,
|
||||||
|
false /* halControlsIllumination */,
|
||||||
|
true /* resetLockoutRequiresHardwareAuthToken */,
|
||||||
|
listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
|
||||||
|
)
|
||||||
|
.toFingerprintSensor()
|
||||||
|
|
||||||
var showRfpsAnimation: Boolean? = null
|
var showRfpsAnimation: Boolean? = null
|
||||||
val job = launch { underTest.showRfpsAnimation.collect { showRfpsAnimation = it } }
|
val job = launch { underTest.showRfpsAnimation.collect { showRfpsAnimation = it } }
|
||||||
@@ -232,12 +262,17 @@ class FingerprintEnrollFindSensorViewModelV2Test {
|
|||||||
fun showPrimaryButton_ifUdfps() =
|
fun showPrimaryButton_ifUdfps() =
|
||||||
testScope.runTest {
|
testScope.runTest {
|
||||||
fakeFingerprintManagerInteractor.sensorProp =
|
fakeFingerprintManagerInteractor.sensorProp =
|
||||||
FingerprintSensor(
|
FingerprintSensorPropertiesInternal(
|
||||||
0 /* sensorId */,
|
0 /* sensorId */,
|
||||||
SensorStrength.STRONG,
|
SensorProperties.STRENGTH_STRONG,
|
||||||
5,
|
5 /* maxEnrollmentsPerUser */,
|
||||||
FingerprintSensorType.UDFPS_OPTICAL,
|
listOf<ComponentInfoInternal>(),
|
||||||
)
|
FingerprintSensorProperties.TYPE_UDFPS_OPTICAL,
|
||||||
|
false /* halControlsIllumination */,
|
||||||
|
true /* resetLockoutRequiresHardwareAuthToken */,
|
||||||
|
listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
|
||||||
|
)
|
||||||
|
.toFingerprintSensor()
|
||||||
|
|
||||||
var showPrimaryButton: Boolean? = null
|
var showPrimaryButton: Boolean? = null
|
||||||
val job = launch { underTest.showPrimaryButton.collect { showPrimaryButton = it } }
|
val job = launch { underTest.showPrimaryButton.collect { showPrimaryButton = it } }
|
||||||
|
@@ -16,6 +16,11 @@
|
|||||||
|
|
||||||
package com.android.settings.fingerprint2.ui.enrollment.viewmodel
|
package com.android.settings.fingerprint2.ui.enrollment.viewmodel
|
||||||
|
|
||||||
|
import android.hardware.biometrics.ComponentInfoInternal
|
||||||
|
import android.hardware.biometrics.SensorLocationInternal
|
||||||
|
import android.hardware.biometrics.SensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
||||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||||
import com.android.settings.biometrics.fingerprint2.lib.model.Default
|
import com.android.settings.biometrics.fingerprint2.lib.model.Default
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollConfirmationViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollConfirmationViewModel
|
||||||
@@ -26,6 +31,7 @@ import com.android.settings.testutils2.FakeFingerprintManagerInteractor
|
|||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
||||||
import com.android.systemui.biometrics.shared.model.SensorStrength
|
import com.android.systemui.biometrics.shared.model.SensorStrength
|
||||||
|
import com.android.systemui.biometrics.shared.model.toFingerprintSensor
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.test.StandardTestDispatcher
|
import kotlinx.coroutines.test.StandardTestDispatcher
|
||||||
@@ -68,8 +74,18 @@ class FingerprintEnrollConfirmationViewModelTest {
|
|||||||
@Test
|
@Test
|
||||||
fun testCanEnrollFingerprints() =
|
fun testCanEnrollFingerprints() =
|
||||||
testScope.runTest {
|
testScope.runTest {
|
||||||
fakeFingerprintManagerInteractor.sensorProp =
|
fakeFingerprintManagerInteractor.sensorProp = FingerprintSensorPropertiesInternal(
|
||||||
FingerprintSensor(0 /* sensorId */, SensorStrength.STRONG, 5, FingerprintSensorType.REAR)
|
0 /* sensorId */,
|
||||||
|
SensorProperties.STRENGTH_STRONG,
|
||||||
|
5 /* maxEnrollmentsPerUser */,
|
||||||
|
listOf<ComponentInfoInternal>(),
|
||||||
|
FingerprintSensorProperties.TYPE_POWER_BUTTON,
|
||||||
|
false /* halControlsIllumination */,
|
||||||
|
true /* resetLockoutRequiresHardwareAuthToken */,
|
||||||
|
listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
|
||||||
|
)
|
||||||
|
.toFingerprintSensor()
|
||||||
|
|
||||||
fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
|
fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
|
||||||
fakeFingerprintManagerInteractor.enrollableFingerprints = 5
|
fakeFingerprintManagerInteractor.enrollableFingerprints = 5
|
||||||
|
|
||||||
|
@@ -16,6 +16,11 @@
|
|||||||
|
|
||||||
package com.android.settings.fingerprint2.ui.enrollment.viewmodel
|
package com.android.settings.fingerprint2.ui.enrollment.viewmodel
|
||||||
|
|
||||||
|
import android.hardware.biometrics.ComponentInfoInternal
|
||||||
|
import android.hardware.biometrics.SensorLocationInternal
|
||||||
|
import android.hardware.biometrics.SensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
||||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||||
import com.android.settings.biometrics.fingerprint2.lib.model.Default
|
import com.android.settings.biometrics.fingerprint2.lib.model.Default
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.BackgroundViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.BackgroundViewModel
|
||||||
@@ -26,11 +31,8 @@ import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Fing
|
|||||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Enrollment
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Enrollment
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NavigationState
|
|
||||||
import com.android.settings.testutils2.FakeFingerprintManagerInteractor
|
import com.android.settings.testutils2.FakeFingerprintManagerInteractor
|
||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
import com.android.systemui.biometrics.shared.model.toFingerprintSensor
|
||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
|
||||||
import com.android.systemui.biometrics.shared.model.SensorStrength
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@@ -72,7 +74,18 @@ class FingerprintEnrollEnrollingViewModelTest {
|
|||||||
fakeFingerprintManagerInteractor,
|
fakeFingerprintManagerInteractor,
|
||||||
)
|
)
|
||||||
.create(FingerprintGatekeeperViewModel::class.java)
|
.create(FingerprintGatekeeperViewModel::class.java)
|
||||||
val sensor = FingerprintSensor(1, SensorStrength.STRONG, 5, FingerprintSensorType.POWER_BUTTON)
|
val sensor =
|
||||||
|
FingerprintSensorPropertiesInternal(
|
||||||
|
1 /* sensorId */,
|
||||||
|
SensorProperties.STRENGTH_STRONG,
|
||||||
|
5 /* maxEnrollmentsPerUser */,
|
||||||
|
listOf<ComponentInfoInternal>(),
|
||||||
|
FingerprintSensorProperties.TYPE_POWER_BUTTON,
|
||||||
|
false /* halControlsIllumination */,
|
||||||
|
true /* resetLockoutRequiresHardwareAuthToken */,
|
||||||
|
listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
|
||||||
|
)
|
||||||
|
.toFingerprintSensor()
|
||||||
val fingerprintFlowViewModel = FingerprintFlowViewModel(Default)
|
val fingerprintFlowViewModel = FingerprintFlowViewModel(Default)
|
||||||
|
|
||||||
navigationViewModel =
|
navigationViewModel =
|
||||||
|
@@ -16,6 +16,11 @@
|
|||||||
|
|
||||||
package com.android.settings.fingerprint2.ui.settings
|
package com.android.settings.fingerprint2.ui.settings
|
||||||
|
|
||||||
|
import android.hardware.biometrics.ComponentInfoInternal
|
||||||
|
import android.hardware.biometrics.SensorLocationInternal
|
||||||
|
import android.hardware.biometrics.SensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorProperties
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
||||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||||
import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
|
import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
|
||||||
import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
|
import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
|
||||||
@@ -23,9 +28,7 @@ import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.Finger
|
|||||||
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.PreferenceViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.PreferenceViewModel
|
||||||
import com.android.settings.testutils2.FakeFingerprintManagerInteractor
|
import com.android.settings.testutils2.FakeFingerprintManagerInteractor
|
||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
import com.android.systemui.biometrics.shared.model.toFingerprintSensor
|
||||||
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
|
||||||
import com.android.systemui.biometrics.shared.model.SensorStrength
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.flow.collectLatest
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
@@ -96,12 +99,18 @@ class FingerprintSettingsViewModelTest {
|
|||||||
fun authenticate_DoesNotRun_ifOptical() =
|
fun authenticate_DoesNotRun_ifOptical() =
|
||||||
testScope.runTest {
|
testScope.runTest {
|
||||||
fakeFingerprintManagerInteractor.sensorProp =
|
fakeFingerprintManagerInteractor.sensorProp =
|
||||||
FingerprintSensor(
|
FingerprintSensorPropertiesInternal(
|
||||||
0 /* sensorId */,
|
0 /* sensorId */,
|
||||||
SensorStrength.STRONG,
|
SensorProperties.STRENGTH_STRONG,
|
||||||
5 /* maxEnrollmentsPerUser */,
|
5 /* maxEnrollmentsPerUser */,
|
||||||
FingerprintSensorType.UDFPS_OPTICAL,
|
listOf<ComponentInfoInternal>(),
|
||||||
)
|
FingerprintSensorProperties.TYPE_UDFPS_OPTICAL,
|
||||||
|
false /* halControlsIllumination */,
|
||||||
|
true /* resetLockoutRequiresHardwareAuthToken */,
|
||||||
|
listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
|
||||||
|
)
|
||||||
|
.toFingerprintSensor()
|
||||||
|
|
||||||
fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
|
fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
|
||||||
mutableListOf(FingerprintData("a", 1, 3L))
|
mutableListOf(FingerprintData("a", 1, 3L))
|
||||||
|
|
||||||
@@ -132,12 +141,18 @@ class FingerprintSettingsViewModelTest {
|
|||||||
fun authenticate_DoesNotRun_ifUltrasonic() =
|
fun authenticate_DoesNotRun_ifUltrasonic() =
|
||||||
testScope.runTest {
|
testScope.runTest {
|
||||||
fakeFingerprintManagerInteractor.sensorProp =
|
fakeFingerprintManagerInteractor.sensorProp =
|
||||||
FingerprintSensor(
|
FingerprintSensorPropertiesInternal(
|
||||||
0 /* sensorId */,
|
0 /* sensorId */,
|
||||||
SensorStrength.STRONG,
|
SensorProperties.STRENGTH_STRONG,
|
||||||
5 /* maxEnrollmentsPerUser */,
|
5 /* maxEnrollmentsPerUser */,
|
||||||
FingerprintSensorType.UDFPS_ULTRASONIC,
|
listOf<ComponentInfoInternal>(),
|
||||||
)
|
FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC,
|
||||||
|
false /* halControlsIllumination */,
|
||||||
|
true /* resetLockoutRequiresHardwareAuthToken */,
|
||||||
|
listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
|
||||||
|
)
|
||||||
|
.toFingerprintSensor()
|
||||||
|
|
||||||
fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
|
fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
|
||||||
mutableListOf(FingerprintData("a", 1, 3L))
|
mutableListOf(FingerprintData("a", 1, 3L))
|
||||||
|
|
||||||
@@ -166,12 +181,18 @@ class FingerprintSettingsViewModelTest {
|
|||||||
fun authenticate_DoesRun_ifNotUdfps() =
|
fun authenticate_DoesRun_ifNotUdfps() =
|
||||||
testScope.runTest {
|
testScope.runTest {
|
||||||
fakeFingerprintManagerInteractor.sensorProp =
|
fakeFingerprintManagerInteractor.sensorProp =
|
||||||
FingerprintSensor(
|
FingerprintSensorPropertiesInternal(
|
||||||
0 /* sensorId */,
|
0 /* sensorId */,
|
||||||
SensorStrength.STRONG,
|
SensorProperties.STRENGTH_STRONG,
|
||||||
5 /* maxEnrollmentsPerUser */,
|
5 /* maxEnrollmentsPerUser */,
|
||||||
FingerprintSensorType.POWER_BUTTON
|
listOf<ComponentInfoInternal>(),
|
||||||
)
|
FingerprintSensorProperties.TYPE_POWER_BUTTON,
|
||||||
|
false /* halControlsIllumination */,
|
||||||
|
true /* resetLockoutRequiresHardwareAuthToken */,
|
||||||
|
listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
|
||||||
|
)
|
||||||
|
.toFingerprintSensor()
|
||||||
|
|
||||||
fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
|
fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
|
||||||
mutableListOf(FingerprintData("a", 1, 3L))
|
mutableListOf(FingerprintData("a", 1, 3L))
|
||||||
val success = FingerprintAuthAttemptModel.Success(1)
|
val success = FingerprintAuthAttemptModel.Success(1)
|
||||||
@@ -324,8 +345,7 @@ class FingerprintSettingsViewModelTest {
|
|||||||
runCurrent()
|
runCurrent()
|
||||||
assertThat(authAttempt).isEqualTo(success)
|
assertThat(authAttempt).isEqualTo(success)
|
||||||
|
|
||||||
fakeFingerprintManagerInteractor.authenticateAttempt =
|
fakeFingerprintManagerInteractor.authenticateAttempt = FingerprintAuthAttemptModel.Success(10)
|
||||||
FingerprintAuthAttemptModel.Success(10)
|
|
||||||
underTest.shouldAuthenticate(false)
|
underTest.shouldAuthenticate(false)
|
||||||
advanceTimeBy(400)
|
advanceTimeBy(400)
|
||||||
runCurrent()
|
runCurrent()
|
||||||
@@ -372,14 +392,19 @@ class FingerprintSettingsViewModelTest {
|
|||||||
|
|
||||||
private fun setupAuth(): MutableList<FingerprintData> {
|
private fun setupAuth(): MutableList<FingerprintData> {
|
||||||
fakeFingerprintManagerInteractor.sensorProp =
|
fakeFingerprintManagerInteractor.sensorProp =
|
||||||
FingerprintSensor(
|
FingerprintSensorPropertiesInternal(
|
||||||
0 /* sensorId */,
|
0 /* sensorId */,
|
||||||
SensorStrength.STRONG,
|
SensorProperties.STRENGTH_STRONG,
|
||||||
5 /* maxEnrollmentsPerUser */,
|
5 /* maxEnrollmentsPerUser */,
|
||||||
FingerprintSensorType.POWER_BUTTON
|
listOf<ComponentInfoInternal>(),
|
||||||
)
|
FingerprintSensorProperties.TYPE_POWER_BUTTON,
|
||||||
val fingerprints =
|
false /* halControlsIllumination */,
|
||||||
mutableListOf(FingerprintData("a", 1, 3L), FingerprintData("b", 2, 5L))
|
true /* resetLockoutRequiresHardwareAuthToken */,
|
||||||
|
listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
|
||||||
|
)
|
||||||
|
.toFingerprintSensor()
|
||||||
|
|
||||||
|
val fingerprints = mutableListOf(FingerprintData("a", 1, 3L), FingerprintData("b", 2, 5L))
|
||||||
fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = fingerprints
|
fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = fingerprints
|
||||||
val success = FingerprintAuthAttemptModel.Success(1)
|
val success = FingerprintAuthAttemptModel.Success(1)
|
||||||
fakeFingerprintManagerInteractor.authenticateAttempt = success
|
fakeFingerprintManagerInteractor.authenticateAttempt = success
|
||||||
|
Reference in New Issue
Block a user