refactor: eliminate one level of nesting from BiometricAuthenticator
This commit is contained in:
parent
6f3f7e4b4c
commit
dfe4b14b4c
1 changed files with 37 additions and 35 deletions
|
@ -61,42 +61,44 @@ object BiometricAuthenticator {
|
|||
override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
|
||||
super.onAuthenticationError(errorCode, errString)
|
||||
logcat(TAG) { "onAuthenticationError(errorCode=$errorCode, msg=$errString)" }
|
||||
callback(
|
||||
when (errorCode) {
|
||||
BiometricPrompt.ERROR_CANCELED,
|
||||
BiometricPrompt.ERROR_USER_CANCELED,
|
||||
BiometricPrompt.ERROR_NEGATIVE_BUTTON -> {
|
||||
Result.Cancelled
|
||||
}
|
||||
BiometricPrompt.ERROR_HW_NOT_PRESENT,
|
||||
BiometricPrompt.ERROR_HW_UNAVAILABLE,
|
||||
BiometricPrompt.ERROR_NO_BIOMETRICS,
|
||||
BiometricPrompt.ERROR_NO_DEVICE_CREDENTIAL -> {
|
||||
Result.HardwareUnavailableOrDisabled
|
||||
}
|
||||
BiometricPrompt.ERROR_LOCKOUT,
|
||||
BiometricPrompt.ERROR_LOCKOUT_PERMANENT,
|
||||
BiometricPrompt.ERROR_NO_SPACE,
|
||||
BiometricPrompt.ERROR_TIMEOUT,
|
||||
BiometricPrompt.ERROR_VENDOR -> {
|
||||
Result.Failure(
|
||||
errorCode,
|
||||
activity.getString(R.string.biometric_auth_error_reason, errString)
|
||||
)
|
||||
}
|
||||
BiometricPrompt.ERROR_UNABLE_TO_PROCESS -> {
|
||||
Result.Retry
|
||||
}
|
||||
// We cover all guaranteed values above, but [errorCode] is still an Int
|
||||
// at the end of the day so a catch-all else will always be required.
|
||||
else -> {
|
||||
Result.Failure(
|
||||
errorCode,
|
||||
activity.getString(R.string.biometric_auth_error_reason, errString)
|
||||
)
|
||||
}
|
||||
when (errorCode) {
|
||||
BiometricPrompt.ERROR_CANCELED,
|
||||
BiometricPrompt.ERROR_USER_CANCELED,
|
||||
BiometricPrompt.ERROR_NEGATIVE_BUTTON -> {
|
||||
callback(Result.Cancelled)
|
||||
}
|
||||
)
|
||||
BiometricPrompt.ERROR_HW_NOT_PRESENT,
|
||||
BiometricPrompt.ERROR_HW_UNAVAILABLE,
|
||||
BiometricPrompt.ERROR_NO_BIOMETRICS,
|
||||
BiometricPrompt.ERROR_NO_DEVICE_CREDENTIAL -> {
|
||||
callback(Result.HardwareUnavailableOrDisabled)
|
||||
}
|
||||
BiometricPrompt.ERROR_LOCKOUT,
|
||||
BiometricPrompt.ERROR_LOCKOUT_PERMANENT,
|
||||
BiometricPrompt.ERROR_NO_SPACE,
|
||||
BiometricPrompt.ERROR_TIMEOUT,
|
||||
BiometricPrompt.ERROR_VENDOR -> {
|
||||
callback(
|
||||
Result.Failure(
|
||||
errorCode,
|
||||
activity.getString(R.string.biometric_auth_error_reason, errString)
|
||||
)
|
||||
)
|
||||
}
|
||||
BiometricPrompt.ERROR_UNABLE_TO_PROCESS -> {
|
||||
callback(Result.Retry)
|
||||
}
|
||||
// We cover all guaranteed values above, but [errorCode] is still an Int
|
||||
// at the end of the day so a catch-all else will always be required.
|
||||
else -> {
|
||||
callback(
|
||||
Result.Failure(
|
||||
errorCode,
|
||||
activity.getString(R.string.biometric_auth_error_reason, errString)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onAuthenticationFailed() {
|
||||
|
|
Loading…
Reference in a new issue