From 1cdc17a7f67c7c078ccca5519f1676ca5763fb27 Mon Sep 17 00:00:00 2001 From: MiltonWu Date: Thu, 24 Oct 2024 08:42:09 +0000 Subject: [PATCH] FingerprintEnrollStageCountInteractor Interactor for getting FingerprintManager::getEnrollStageCount() Bug: b/372385781 Test: Get correct value from FingerprintManager Flag: EXEMPT feature flag protected on override project Change-Id: Ib31a9c4da7b0aa7e9fce0223aa8bca207c4a7a7c --- .../fingerprint2/BiometricsEnvironment.kt | 4 +++ .../repository/FingerprintEnrollmentRepo.kt | 5 +++ .../FingerprintEnrollStageCountInteractor.kt | 32 +++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollStageCountInteractor.kt diff --git a/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt b/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt index 50ac3cdcee5..5d58fc10e66 100644 --- a/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt +++ b/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt @@ -45,6 +45,7 @@ import com.android.settings.biometrics.fingerprint2.domain.interactor.EnrollFing import com.android.settings.biometrics.fingerprint2.domain.interactor.EnrollStageInteractor 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.FingerprintSensorInteractor import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintSensorInteractorImpl import com.android.settings.biometrics.fingerprint2.domain.interactor.FoldStateInteractor @@ -113,6 +114,9 @@ class BiometricsEnvironment( fun createCanEnrollFingerprintsInteractor(): CanEnrollFingerprintsInteractor = CanEnrollFingerprintsInteractorImpl(fingerprintEnrollmentRepository) + fun createFingerprintEnrollStageCountInteractor(): FingerprintEnrollStageCountInteractor = + FingerprintEnrollStageCountInteractor(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 0bb4eead62d..23ad8ef6702 100644 --- a/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintEnrollmentRepo.kt +++ b/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintEnrollmentRepo.kt @@ -46,6 +46,8 @@ interface FingerprintEnrollmentRepository { /** Indicates if a user can enroll another fingerprint */ val canEnrollUser: Flow + val enrollStageCount: Int + /** * Indicates if we should use the default settings for maximum enrollments or the sensor props * from the fingerprint sensor @@ -115,4 +117,7 @@ class FingerprintEnrollmentRepositoryImpl( ?.map { (FingerprintData(it.name.toString(), it.biometricId, it.deviceId)) } ?.toList() } + + override val enrollStageCount: Int + get() = fingerprintManager.enrollStageCount } diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollStageCountInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollStageCountInteractor.kt new file mode 100644 index 00000000000..614815805f5 --- /dev/null +++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollStageCountInteractor.kt @@ -0,0 +1,32 @@ +/* + * 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 total number of enrollment stages. + * + * This class interacts with the `FingerprintsRepository` to obtain the count + * of stages involved in the fingerprint enrollment process. + */ +class FingerprintEnrollStageCountInteractor ( + fingerprintEnrollmentRepository: FingerprintEnrollmentRepository +) { + /** The total number of enrollment stages. */ + val count: Int = fingerprintEnrollmentRepository.enrollStageCount +}