diff --git a/app/src/main/java/oppen/ariane/ui/settings/SettingsFragment.kt b/app/src/main/java/oppen/ariane/ui/settings/SettingsFragment.kt index 23b35bd..fd8bd01 100644 --- a/app/src/main/java/oppen/ariane/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/oppen/ariane/ui/settings/SettingsFragment.kt @@ -41,19 +41,32 @@ class SettingsFragment: PreferenceFragmentCompat(), Preference.OnPreferenceChang } override fun onPreferenceChange(preference: Preference?, newValue: Any?): Boolean { - - preference?.key?.let{ key -> - if(key.startsWith("tls_")){ - protocols.forEach {protocol -> - val tlsSwitchKey = "tls_${protocol.toLowerCase(Locale.getDefault())}" - if(tlsSwitchKey != key){ - val otherTLSSwitch = preferenceScreen.findPreference(tlsSwitchKey) - otherTLSSwitch?.isChecked = false + if(preference is SwitchPreferenceCompat && newValue is Boolean && newValue == true) { + preference.key?.let { key -> + if (key.startsWith("tls_")) { + protocols.forEach { protocol -> + val tlsSwitchKey = "tls_${protocol.toLowerCase(Locale.getDefault())}" + if (tlsSwitchKey != key) { + val otherTLSSwitch = + preferenceScreen.findPreference(tlsSwitchKey) + otherTLSSwitch?.isChecked = false + } } } } + + setTLSProtocol(preference.title.toString()) + + return true } - return true + return false + } + + private fun setTLSProtocol(protocol: String){ + preferenceManager.sharedPreferences.edit().putString( + "tls_protocol", + protocol + ).apply() } }