diff options
Diffstat (limited to 'app/src/main/java/dev/msfjarvis/aps/ui')
3 files changed, 15 insertions, 10 deletions
diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/main/LaunchActivity.kt b/app/src/main/java/dev/msfjarvis/aps/ui/main/LaunchActivity.kt index 629ddb9c..b5f7a593 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/main/LaunchActivity.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/main/LaunchActivity.kt @@ -14,6 +14,7 @@ import dev.msfjarvis.aps.ui.crypto.BasePgpActivity import dev.msfjarvis.aps.ui.crypto.DecryptActivity import dev.msfjarvis.aps.ui.passwords.PasswordStore import dev.msfjarvis.aps.util.auth.BiometricAuthenticator +import dev.msfjarvis.aps.util.auth.BiometricAuthenticator.Result import dev.msfjarvis.aps.util.extensions.sharedPrefs import dev.msfjarvis.aps.util.settings.PreferenceKeys @@ -23,18 +24,19 @@ class LaunchActivity : AppCompatActivity() { super.onCreate(savedInstanceState) val prefs = sharedPrefs if (prefs.getBoolean(PreferenceKeys.BIOMETRIC_AUTH, false)) { - BiometricAuthenticator.authenticate(this) { - when (it) { - is BiometricAuthenticator.Result.Success -> { + BiometricAuthenticator.authenticate(this) { result -> + when (result) { + is Result.Success -> { startTargetActivity(false) } - is BiometricAuthenticator.Result.HardwareUnavailableOrDisabled -> { + is Result.HardwareUnavailableOrDisabled -> { prefs.edit { remove(PreferenceKeys.BIOMETRIC_AUTH) } startTargetActivity(false) } - is BiometricAuthenticator.Result.Failure, BiometricAuthenticator.Result.Cancelled -> { + is Result.Failure, Result.Cancelled -> { finish() } + is Result.Retry -> {} } } } else { diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/settings/GeneralSettings.kt b/app/src/main/java/dev/msfjarvis/aps/ui/settings/GeneralSettings.kt index 1e67a2b5..f78f2cb2 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/settings/GeneralSettings.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/settings/GeneralSettings.kt @@ -17,6 +17,7 @@ import de.Maxr1998.modernpreferences.helpers.singleChoice import de.Maxr1998.modernpreferences.preferences.choice.SelectionItem import dev.msfjarvis.aps.R import dev.msfjarvis.aps.util.auth.BiometricAuthenticator +import dev.msfjarvis.aps.util.auth.BiometricAuthenticator.Result import dev.msfjarvis.aps.util.extensions.sharedPrefs import dev.msfjarvis.aps.util.settings.PreferenceKeys @@ -73,11 +74,12 @@ class GeneralSettings(private val activity: FragmentActivity) : SettingsProvider activity.sharedPrefs.edit { BiometricAuthenticator.authenticate(activity) { result -> when (result) { - is BiometricAuthenticator.Result.Success -> { + is Result.Success -> { // Apply the changes putBoolean(PreferenceKeys.BIOMETRIC_AUTH, checked) enabled = true } + is Result.Retry -> {} else -> { // If any error occurs, revert back to the previous // state. This 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) |
