Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1cdc17a7 authored by MiltonWu's avatar MiltonWu
Browse files

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
parent b34562ef
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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)

+5 −0
Original line number Diff line number Diff line
@@ -46,6 +46,8 @@ interface FingerprintEnrollmentRepository {
  /** Indicates if a user can enroll another fingerprint */
  val canEnrollUser: Flow<Boolean>

  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
}
+32 −0
Original line number Diff line number Diff line
/*
 * 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
}