Spit up FingerprintManagerInteractor 2/N

Test: atest, screenshot tests passed
Flag: com.android.settings.flags.fingerprint_v2_enrollment
Change-Id: I1a2cf61290906e112a5a0129ef7ed3587d14de7e
This commit is contained in:
Joshua McCloskey
2024-08-16 21:34:49 +00:00
parent d0ea9bc2bc
commit 6383e738d4
12 changed files with 199 additions and 70 deletions

View File

@@ -38,8 +38,12 @@ 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 kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.transform
import kotlinx.coroutines.flow.update
/** Fake to be used by other classes to easily fake the FingerprintManager implementation. */
class FakeFingerprintManagerInteractor :
@@ -52,7 +56,7 @@ class FakeFingerprintManagerInteractor :
RenameFingerprintInteractor,
SensorInteractor {
var enrollableFingerprints: Int = 5
private val enrollableFingerprints = MutableStateFlow(5)
var enrolledFingerprintsInternal: MutableList<FingerprintData> = mutableListOf()
var challengeToGenerate: Pair<Long, ByteArray> = Pair(-1L, byteArrayOf())
var authenticateAttempt = FingerprintAuthAttemptModel.Success(1)
@@ -82,13 +86,13 @@ class FakeFingerprintManagerInteractor :
override val enrolledFingerprints: Flow<List<FingerprintData>> = flow {
emit(enrolledFingerprintsInternal)
}
override val canEnrollFingerprints: Flow<Boolean> = flow {
emit(enrolledFingerprintsInternal.size < enrollableFingerprints)
override val canEnrollFingerprints: Flow<Boolean> = enrollableFingerprints.transform {
emit(enrolledFingerprintsInternal.size < it)
}
override fun maxFingerprintsEnrollable(): Int {
return enrollableFingerprints
}
override val maxFingerprintsEnrollable: Flow<Int> = enrollableFingerprints.asStateFlow()
override fun setShouldUseSettingsMaxFingerprints(useSettings: Boolean) {}
override val sensorPropertiesInternal: Flow<FingerprintSensor?> = flow { emit(sensorProp) }
override val hasSideFps: Flow<Boolean> =
@@ -110,4 +114,7 @@ class FakeFingerprintManagerInteractor :
}
}
fun setMaxEnrollableFingerprints(fingerprints: Int) {
enrollableFingerprints.update { fingerprints }
}
}