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

View File

@@ -507,22 +507,15 @@ class AutoCredentialViewModelTest {
var challenge = CredentialModel.INVALID_CHALLENGE
var callbackRunCount = 0
private var _callback: AutoCredentialViewModel.GenerateChallengeCallback? = null
override fun getCallback(): AutoCredentialViewModel.GenerateChallengeCallback? {
return _callback
}
override fun setCallback(callback: AutoCredentialViewModel.GenerateChallengeCallback?) {
_callback = callback
}
override var callback: AutoCredentialViewModel.GenerateChallengeCallback? = null
override fun generateChallenge(userId: Int) {
val callback = _callback ?: return
callback.onChallengeGenerated(sensorId, this.userId, challenge)
callback?.let {
it.onChallengeGenerated(sensorId, this.userId, challenge)
++callbackRunCount
}
}
}
private fun newGoodCredential(gkPwHandle: Long, hat: ByteArray): VerifyCredentialResponse {
return VerifyCredentialResponse.Builder()