From c1730353d08e0a3d33bfdb20a96f48948736e45e Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Mon, 8 Sep 2025 15:00:27 +0200 Subject: [PATCH] fix: Min Android version --- .../settings/NestedAppSettingsFragment.kt | 26 ++++++++++++++----- .../settings/PasskeysSettingsActivity.kt | 3 +++ .../settings/PasskeysSettingsFragment.kt | 13 +++++----- 3 files changed, 28 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/kunzisoft/keepass/settings/NestedAppSettingsFragment.kt b/app/src/main/java/com/kunzisoft/keepass/settings/NestedAppSettingsFragment.kt index a3fd14898..2bd0344ea 100644 --- a/app/src/main/java/com/kunzisoft/keepass/settings/NestedAppSettingsFragment.kt +++ b/app/src/main/java/com/kunzisoft/keepass/settings/NestedAppSettingsFragment.kt @@ -119,6 +119,15 @@ class NestedAppSettingsFragment : NestedSettingsFragment() { activity?.let { activity -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + + // Hide Passkeys settings if needed + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + findPreference(getString(R.string.passkeys_explanation_key)) + ?.isVisible = false + findPreference(getString(R.string.settings_passkeys_key)) + ?.isVisible = false + } + val autoFillEnablePreference: TwoStatePreference? = findPreference(getString(R.string.settings_credential_provider_enable_key)) activity.getSystemService(AutofillManager::class.java)?.let { autofillManager -> if (autofillManager.hasEnabledAutofillServices()) @@ -192,14 +201,17 @@ class NestedAppSettingsFragment : NestedSettingsFragment() { false } - findPreference(getString(R.string.passkeys_explanation_key))?.setOnPreferenceClickListener { - context?.openUrl(R.string.passkeys_explanation_url) - false - } - findPreference(getString(R.string.settings_passkeys_key))?.setOnPreferenceClickListener { - startActivity(Intent(context, PasskeysSettingsActivity::class.java)) - false + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + findPreference(getString(R.string.passkeys_explanation_key))?.setOnPreferenceClickListener { + context?.openUrl(R.string.passkeys_explanation_url) + false + } + + findPreference(getString(R.string.settings_passkeys_key))?.setOnPreferenceClickListener { + startActivity(Intent(context, PasskeysSettingsActivity::class.java)) + false + } } findPreference(getString(R.string.autofill_explanation_key))?.setOnPreferenceClickListener { diff --git a/app/src/main/java/com/kunzisoft/keepass/settings/PasskeysSettingsActivity.kt b/app/src/main/java/com/kunzisoft/keepass/settings/PasskeysSettingsActivity.kt index e7e05bfa1..3d7668a93 100644 --- a/app/src/main/java/com/kunzisoft/keepass/settings/PasskeysSettingsActivity.kt +++ b/app/src/main/java/com/kunzisoft/keepass/settings/PasskeysSettingsActivity.kt @@ -19,9 +19,12 @@ */ package com.kunzisoft.keepass.settings +import android.os.Build +import androidx.annotation.RequiresApi import androidx.preference.PreferenceFragmentCompat import com.kunzisoft.keepass.R +@RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE) class PasskeysSettingsActivity : ExternalSettingsActivity() { override fun retrieveTitle(): Int { diff --git a/app/src/main/java/com/kunzisoft/keepass/settings/PasskeysSettingsFragment.kt b/app/src/main/java/com/kunzisoft/keepass/settings/PasskeysSettingsFragment.kt index 7c0dd89b2..4a9a6dec8 100644 --- a/app/src/main/java/com/kunzisoft/keepass/settings/PasskeysSettingsFragment.kt +++ b/app/src/main/java/com/kunzisoft/keepass/settings/PasskeysSettingsFragment.kt @@ -21,12 +21,14 @@ package com.kunzisoft.keepass.settings import android.os.Build import android.os.Bundle +import androidx.annotation.RequiresApi import androidx.fragment.app.DialogFragment import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import com.kunzisoft.keepass.R import com.kunzisoft.keepass.settings.preferencedialogfragment.PasskeysPrivilegedAppsPreferenceDialogFragmentCompat +@RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE) class PasskeysSettingsFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { @@ -34,24 +36,21 @@ class PasskeysSettingsFragment : PreferenceFragmentCompat() { setPreferencesFromResource(R.xml.preferences_passkeys, rootKey) } + @Suppress("DEPRECATION") override fun onDisplayPreferenceDialog(preference: Preference) { - var otherDialogFragment = false - var dialogFragment: DialogFragment? = null when (preference.key) { getString(R.string.passkeys_privileged_apps_key) -> { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { - dialogFragment = PasskeysPrivilegedAppsPreferenceDialogFragmentCompat.newInstance(preference.key) - } + dialogFragment = PasskeysPrivilegedAppsPreferenceDialogFragmentCompat.newInstance(preference.key) } - else -> otherDialogFragment = true + else -> {} } if (dialogFragment != null) { dialogFragment.setTargetFragment(this, 0) dialogFragment.show(parentFragmentManager, TAG_PASSKEYS_PREF_FRAGMENT) - } else if (otherDialogFragment) { + } else { super.onDisplayPreferenceDialog(preference) } }