From 1729f3e0bc2d4e4cd902ddc56223ef83339ce0df Mon Sep 17 00:00:00 2001 From: MiltonWu Date: Fri, 25 Oct 2024 06:30:14 +0000 Subject: [PATCH] FingerprintEnrollStageThresholdInteractor Interactor for getting FingerprintManager::getEnrollStageThreshold() Bug: b/372385781 Test: Get correct value from FingerprintManager Flag: EXEMPT feature flag protected on override project Change-Id: I6c43c17b944c0479b746955d0ba1422dc5744c4c --- .../fingerprint2/BiometricsEnvironment.kt | 4 ++ .../repository/FingerprintEnrollmentRepo.kt | 11 ++++++ ...ngerprintEnrollStageThresholdInteractor.kt | 37 +++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollStageThresholdInteractor.kt diff --git a/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt b/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt index 5d58fc10e66..030aadb2ea5 100644 --- a/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt +++ b/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt @@ -46,6 +46,7 @@ import com.android.settings.biometrics.fingerprint2.domain.interactor.EnrollStag import com.android.settings.biometrics.fingerprint2.domain.interactor.EnrollStageInteractorImpl import com.android.settings.biometrics.fingerprint2.domain.interactor.EnrolledFingerprintsInteractorImpl import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintEnrollStageCountInteractor +import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintEnrollStageThresholdInteractor import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintSensorInteractor import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintSensorInteractorImpl import com.android.settings.biometrics.fingerprint2.domain.interactor.FoldStateInteractor @@ -117,6 +118,9 @@ class BiometricsEnvironment( fun createFingerprintEnrollStageCountInteractor(): FingerprintEnrollStageCountInteractor = FingerprintEnrollStageCountInteractor(fingerprintEnrollmentRepository) + fun createFingerprintEnrollStageThresholdInteractor(): FingerprintEnrollStageThresholdInteractor = + FingerprintEnrollStageThresholdInteractor(fingerprintEnrollmentRepository) + fun createGenerateChallengeInteractor(): GenerateChallengeInteractor = GenerateChallengeInteractorImpl(fingerprintManager, context.userId, gateKeeperPasswordProvider) diff --git a/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintEnrollmentRepo.kt b/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintEnrollmentRepo.kt index 23ad8ef6702..d01a49c3a6f 100644 --- a/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintEnrollmentRepo.kt +++ b/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintEnrollmentRepo.kt @@ -48,6 +48,14 @@ interface FingerprintEnrollmentRepository { val enrollStageCount: Int + /** + * Returns the threshold for the given stage of fingerprint enrollment. + * + * @param index The index of the enrollment stage. + * @return The threshold for the enrollment stage. + */ + fun getEnrollStageThreshold(index: Int): Float + /** * Indicates if we should use the default settings for maximum enrollments or the sensor props * from the fingerprint sensor @@ -120,4 +128,7 @@ class FingerprintEnrollmentRepositoryImpl( override val enrollStageCount: Int get() = fingerprintManager.enrollStageCount + + override fun getEnrollStageThreshold(index: Int): Float = + fingerprintManager.getEnrollStageThreshold(index) } diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollStageThresholdInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollStageThresholdInteractor.kt new file mode 100644 index 00000000000..a96e4efac04 --- /dev/null +++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollStageThresholdInteractor.kt @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.biometrics.fingerprint2.domain.interactor + +import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintEnrollmentRepository + +/** + * Interactor class for retrieving the enrollment stage threshold. + * + * This class interacts with the `fingerprintEnrollmentRepository` to fetch the threshold value + * for a specific enrollment stage. + */ +class FingerprintEnrollStageThresholdInteractor( + private val fingerprintEnrollmentRepository: FingerprintEnrollmentRepository, +) { + /** + * Retrieves the enrollment stage threshold for the given index. + * + * @param index The index of the enrollment stage. + * @return The threshold value for the specified stage. + */ + fun getThreshold(index: Int): Float = fingerprintEnrollmentRepository.getEnrollStageThreshold(index) +} \ No newline at end of file