diff options
| author | Harsh Shandilya <me@msfjarvis.dev> | 2021-12-29 16:05:19 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-29 10:35:19 +0000 |
| commit | 4c9413709d58594a6d2c1e2bdbf854ec4a7fc291 (patch) | |
| tree | 927c818c22f0094974a4e0499f335da0260de076 /app/src/main/java/dev/msfjarvis/aps/ui/sshkeygen | |
| parent | 8b5be3f7857605dd0c152610fbf2fb750f717b67 (diff) | |
| download | HardenedPass-4c9413709d58594a6d2c1e2bdbf854ec4a7fc291.tar.gz HardenedPass-4c9413709d58594a6d2c1e2bdbf854ec4a7fc291.zip | |
Refactor BiometricAuthenticator and add proper support for retries (#1627)
Diffstat (limited to 'app/src/main/java/dev/msfjarvis/aps/ui/sshkeygen')
| -rw-r--r-- | app/src/main/java/dev/msfjarvis/aps/ui/sshkeygen/SshKeyGenActivity.kt | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/sshkeygen/SshKeyGenActivity.kt b/app/src/main/java/dev/msfjarvis/aps/ui/sshkeygen/SshKeyGenActivity.kt index 0d8ffcbc..63abdf7c 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/sshkeygen/SshKeyGenActivity.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/sshkeygen/SshKeyGenActivity.kt @@ -22,6 +22,7 @@ import dev.msfjarvis.aps.R import dev.msfjarvis.aps.databinding.ActivitySshKeygenBinding import dev.msfjarvis.aps.injection.prefs.GitPreferences import dev.msfjarvis.aps.util.auth.BiometricAuthenticator +import dev.msfjarvis.aps.util.auth.BiometricAuthenticator.Result import dev.msfjarvis.aps.util.extensions.keyguardManager import dev.msfjarvis.aps.util.extensions.viewBinding import dev.msfjarvis.aps.util.git.sshj.SshKey @@ -121,17 +122,17 @@ class SshKeyGenActivity : AppCompatActivity() { if (requireAuthentication) { val result = withContext(Dispatchers.Main) { - suspendCoroutine<BiometricAuthenticator.Result> { cont -> + suspendCoroutine<Result> { cont -> BiometricAuthenticator.authenticate( this@SshKeyGenActivity, R.string.biometric_prompt_title_ssh_keygen - ) { + ) { result -> // Do not cancel on failed attempts as these are handled by the authenticator UI. - if (it !is BiometricAuthenticator.Result.Failure) cont.resume(it) + if (result !is Result.Retry) cont.resume(result) } } } - if (result !is BiometricAuthenticator.Result.Success) + if (result !is Result.Success) throw UserNotAuthenticatedException(getString(R.string.biometric_auth_generic_failure)) } keyGenType.generateKey(requireAuthentication) |
