[BiometricsV2] Refactor AutoCredentialViewModel

Fix previous review comments on
I84bab0b46e023303c0046a6ae6886ab1cf9458b8

Bug: 286197659
Test: atest AutoCredentialViewModelTest
Test: atest biometrics-enrollment-test
Change-Id: I9b43a637439e941bdb884e3ae2f656d573364123
This commit is contained in:
Milton Wu
2023-08-08 09:28:48 +00:00
parent 99e0dba2c5
commit f8cdda45aa
2 changed files with 16 additions and 40 deletions

View File

@@ -64,11 +64,8 @@ class AutoCredentialViewModel(
*/ */
interface ChallengeGenerator { interface ChallengeGenerator {
/** Get callback that will be called later after challenge generated */ /** Callback that will be called later after challenge generated */
fun getCallback(): GenerateChallengeCallback? var callback: GenerateChallengeCallback?
/** Set callback that will be called later after challenge generated */
fun setCallback(callback: GenerateChallengeCallback?)
/** Method for generating challenge from FingerprintManager or FaceManager */ /** Method for generating challenge from FingerprintManager or FaceManager */
fun generateChallenge(userId: Int) fun generateChallenge(userId: Int)
@@ -79,30 +76,16 @@ class AutoCredentialViewModel(
private val fingerprintRepository: FingerprintRepository private val fingerprintRepository: FingerprintRepository
) : ChallengeGenerator { ) : ChallengeGenerator {
private var mCallback: GenerateChallengeCallback? = null override var callback: GenerateChallengeCallback? = null
override fun getCallback(): GenerateChallengeCallback? {
return mCallback
}
override fun setCallback(callback: GenerateChallengeCallback?) {
mCallback = callback
}
override fun generateChallenge(userId: Int) { override fun generateChallenge(userId: Int) {
val callback = mCallback callback?.let {
if (callback == null) { fingerprintRepository.generateChallenge(userId) {
sensorId: Int, uid: Int, challenge: Long ->
it.onChallengeGenerated(sensorId, uid, challenge)
}
} ?:run {
Log.e(TAG, "generateChallenge, null callback") Log.e(TAG, "generateChallenge, null callback")
return
}
fingerprintRepository.generateChallenge(userId) {
sensorId: Int, uid: Int, challenge: Long ->
callback.onChallengeGenerated(
sensorId,
uid,
challenge
)
} }
} }
@@ -160,7 +143,7 @@ class AutoCredentialViewModel(
revokeGkPwHandle: Boolean, revokeGkPwHandle: Boolean,
scope: CoroutineScope scope: CoroutineScope
) { ) {
challengeGenerator.setCallback(object : GenerateChallengeCallback { challengeGenerator.callback = object : GenerateChallengeCallback {
override fun onChallengeGenerated(sensorId: Int, userId: Int, challenge: Long) { override fun onChallengeGenerated(sensorId: Int, userId: Int, challenge: Long) {
var illegalStateExceptionCaught = false var illegalStateExceptionCaught = false
try { try {
@@ -188,7 +171,7 @@ class AutoCredentialViewModel(
} }
} }
} }
}) }
challengeGenerator.generateChallenge(userId) challengeGenerator.generateChallenge(userId)
} }

View File

@@ -507,20 +507,13 @@ class AutoCredentialViewModelTest {
var challenge = CredentialModel.INVALID_CHALLENGE var challenge = CredentialModel.INVALID_CHALLENGE
var callbackRunCount = 0 var callbackRunCount = 0
private var _callback: AutoCredentialViewModel.GenerateChallengeCallback? = null override var callback: AutoCredentialViewModel.GenerateChallengeCallback? = null
override fun getCallback(): AutoCredentialViewModel.GenerateChallengeCallback? {
return _callback
}
override fun setCallback(callback: AutoCredentialViewModel.GenerateChallengeCallback?) {
_callback = callback
}
override fun generateChallenge(userId: Int) { override fun generateChallenge(userId: Int) {
val callback = _callback ?: return callback?.let {
callback.onChallengeGenerated(sensorId, this.userId, challenge) it.onChallengeGenerated(sensorId, this.userId, challenge)
++callbackRunCount ++callbackRunCount
}
} }
} }