Fix instance reload on instance changed in settings.

This commit is contained in:
RafaRamos 2024-01-11 16:39:45 +01:00
parent cc06278c70
commit 769919bb7c

View File

@ -34,6 +34,7 @@ class InstanceSettings : BasePreferenceFragment() {
override val titleResourceId: Int = R.string.instance
private val token get() = PreferenceHelper.getToken()
private var instances = listOf<PipedInstance>()
private val authInstanceToggle get() = findPreference<SwitchPreferenceCompat>(PreferenceKeys.AUTH_INSTANCE_TOGGLE)!!
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.instance_settings, rootKey)
@ -44,7 +45,6 @@ class InstanceSettings : BasePreferenceFragment() {
)!!
val authInstance = findPreference<ListPreference>(PreferenceKeys.AUTH_INSTANCE)!!
val instancePrefs = listOf(instancePref, authInstance)
val appContext = requireContext().applicationContext
lifecycleScope.launch {
@ -62,15 +62,6 @@ class InstanceSettings : BasePreferenceFragment() {
}
}
instancePref.setOnPreferenceChangeListener { _, _ ->
if (!authInstanceToggle.isChecked) {
logoutAndUpdateUI()
}
RetrofitInstance.lazyMgr.reset()
ActivityCompat.recreate(requireActivity())
true
}
authInstance.setOnPreferenceChangeListener { _, _ ->
RetrofitInstance.lazyMgr.reset()
logoutAndUpdateUI()
@ -190,6 +181,7 @@ class InstanceSettings : BasePreferenceFragment() {
.setView(binding.root)
.setPositiveButton(R.string.okay) { _, _ ->
preference.value = selectedInstance
resetForNewInstance()
}
.setNegativeButton(R.string.cancel, null)
.show()
@ -203,6 +195,14 @@ class InstanceSettings : BasePreferenceFragment() {
findPreference<Preference>(PreferenceKeys.DELETE_ACCOUNT)?.isEnabled = false
}
private fun resetForNewInstance() {
if (!authInstanceToggle.isChecked) {
logoutAndUpdateUI()
}
RetrofitInstance.lazyMgr.reset()
ActivityCompat.recreate(requireActivity())
}
companion object {
const val INSTANCE_DIALOG_REQUEST_KEY = "instance_dialog_request_key"
}