diff options
author | Harsh Shandilya <me@msfjarvis.dev> | 2021-04-07 19:23:21 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-07 13:53:21 +0000 |
commit | e13a54f212f7fc628eb48561f1b225e28468c6e7 (patch) | |
tree | 12a1b181416aaa6d6c0f7c626e3301ec47c7525c /app/src/main | |
parent | ae392beaeb3651e971fcc50a0b7c5af1a783c66a (diff) |
Refactor biometric preference handling (#1374)
Fixes #1371
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/dev/msfjarvis/aps/ui/settings/GeneralSettings.kt | 62 |
1 files changed, 28 insertions, 34 deletions
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 39501d52..da93c3fe 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 @@ -58,49 +58,43 @@ class GeneralSettings(private val activity: FragmentActivity) : SettingsProvider defaultValue = false } + val canAuthenticate = BiometricAuthenticator.canAuthenticate(activity) checkBox(PreferenceKeys.BIOMETRIC_AUTH) { titleRes = R.string.pref_biometric_auth_title defaultValue = false - } - .apply { - val canAuthenticate = BiometricAuthenticator.canAuthenticate(activity) - if (!canAuthenticate) { - enabled = false - checked = false - summaryRes = R.string.pref_biometric_auth_summary_error - } else { - summaryRes = R.string.pref_biometric_auth_summary - onClick { - enabled = false - val isChecked = checked - activity.sharedPrefs.edit { - BiometricAuthenticator.authenticate(activity) { result -> - when (result) { - is BiometricAuthenticator.Result.Success -> { - // Apply the changes - putBoolean(PreferenceKeys.BIOMETRIC_AUTH, checked) - enabled = true - } - else -> { - // If any error occurs, revert back to the previous - // state. This - // catch-all clause includes the cancellation case. - putBoolean(PreferenceKeys.BIOMETRIC_AUTH, !checked) - checked = !isChecked - enabled = true - } - } + enabled = canAuthenticate + summaryRes = + if (canAuthenticate) R.string.pref_biometric_auth_summary else R.string.pref_biometric_auth_summary_error + onClick { + enabled = false + val isChecked = checked + activity.sharedPrefs.edit { + BiometricAuthenticator.authenticate(activity) { result -> + when (result) { + is BiometricAuthenticator.Result.Success -> { + // Apply the changes + putBoolean(PreferenceKeys.BIOMETRIC_AUTH, checked) + enabled = true } - } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) { - activity.getSystemService<ShortcutManager>()?.apply { - removeDynamicShortcuts(dynamicShortcuts.map { it.id }.toMutableList()) + else -> { + // If any error occurs, revert back to the previous + // state. This + // catch-all clause includes the cancellation case. + putBoolean(PreferenceKeys.BIOMETRIC_AUTH, !checked) + checked = !isChecked + enabled = true } } - false } } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) { + activity.getSystemService<ShortcutManager>()?.apply { + removeDynamicShortcuts(dynamicShortcuts.map { it.id }.toMutableList()) + } + } + false } + } } } } |