diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsFragment.kt
index e30fe9789..c2d1d1dc6 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsFragment.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsFragment.kt
@@ -1,8 +1,10 @@
package org.thoughtcrime.securesms.components.settings.app.privacy
+import android.content.ActivityNotFoundException
import android.content.Context
import android.content.DialogInterface
import android.content.Intent
+import android.os.Build
import android.provider.Settings
import android.text.SpannableStringBuilder
import android.text.Spanned
@@ -343,7 +345,20 @@ class PrivacySettingsFragment : DSLSettingsFragment(R.string.preferences__privac
MaterialAlertDialogBuilder(requireContext()).apply {
setTitle(getString(R.string.PrivacySettingsFragment__cant_enable_title))
setMessage(getString(R.string.PrivacySettingsFragment__cant_enable_description))
- setPositiveButton(R.string.PaymentsHomeFragment__enable) { _, _ -> startActivity(Intent(Settings.ACTION_BIOMETRIC_ENROLL)) }
+ setPositiveButton(R.string.PaymentsHomeFragment__enable) { _, _ ->
+ val intent = when {
+ Build.VERSION.SDK_INT >= 30 -> Intent(Settings.ACTION_BIOMETRIC_ENROLL)
+ Build.VERSION.SDK_INT >= 28 -> Intent(Settings.ACTION_FINGERPRINT_ENROLL)
+ else -> Intent(Settings.ACTION_SECURITY_SETTINGS)
+ }
+
+ try {
+ startActivity(intent)
+ } catch (e: ActivityNotFoundException) {
+ Log.w(TAG, "Failed to navigate to system settings.", e)
+ Toast.makeText(requireContext(), R.string.PrivacySettingsFragment__failed_to_navigate_to_system_settings, Toast.LENGTH_SHORT).show()
+ }
+ }
setNegativeButton(R.string.PaymentsHomeFragment__not_now) { _, _ -> }
show()
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f13f59921..44d582e74 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3945,6 +3945,8 @@
Can\’t enable payment lock
To use Payment Lock, you must first enable a screen lock or fingerprint ID in your phone’s settings.
+
+ Failed to navigate to system settings
Go to settings