pull/32/head
parent
c880a91ca0
commit
bf806a7567
@ -1,15 +1,59 @@ |
|||||||
package io.legado.app.ui.config |
package io.legado.app.ui.config |
||||||
|
|
||||||
|
import android.content.SharedPreferences |
||||||
import android.os.Bundle |
import android.os.Bundle |
||||||
|
import androidx.preference.ListPreference |
||||||
|
import androidx.preference.Preference |
||||||
import androidx.preference.PreferenceFragmentCompat |
import androidx.preference.PreferenceFragmentCompat |
||||||
import io.legado.app.R |
import io.legado.app.R |
||||||
|
import io.legado.app.utils.getPrefString |
||||||
|
|
||||||
|
|
||||||
class ConfigFragment : PreferenceFragmentCompat() { |
class ConfigFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChangeListener, |
||||||
|
SharedPreferences.OnSharedPreferenceChangeListener { |
||||||
|
|
||||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { |
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { |
||||||
addPreferencesFromResource(R.xml.pref_config) |
addPreferencesFromResource(R.xml.pref_config) |
||||||
} |
} |
||||||
|
|
||||||
|
override fun onResume() { |
||||||
|
super.onResume() |
||||||
|
preferenceManager.sharedPreferences.registerOnSharedPreferenceChangeListener(this) |
||||||
|
} |
||||||
|
|
||||||
|
override fun onPause() { |
||||||
|
preferenceManager.sharedPreferences.unregisterOnSharedPreferenceChangeListener(this) |
||||||
|
super.onPause() |
||||||
|
} |
||||||
|
|
||||||
|
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) { |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
override fun onPreferenceChange(preference: Preference?, newValue: Any?): Boolean { |
||||||
|
val stringValue = newValue.toString() |
||||||
|
|
||||||
|
if (preference is ListPreference) { |
||||||
|
val index = preference.findIndexOfValue(stringValue) |
||||||
|
// Set the summary to reflect the new value. |
||||||
|
preference.setSummary(if (index >= 0) preference.entries[index] else null) |
||||||
|
} else { |
||||||
|
// For all other preferences, set the summary to the value's |
||||||
|
preference?.summary = stringValue |
||||||
|
} |
||||||
|
return true |
||||||
|
} |
||||||
|
|
||||||
|
private fun bindPreferenceSummaryToValue(preference: Preference?) { |
||||||
|
preference?.let { |
||||||
|
preference.onPreferenceChangeListener = this |
||||||
|
onPreferenceChange( |
||||||
|
preference, |
||||||
|
preference.context.getPrefString(preference.key, "") |
||||||
|
) |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
} |
} |
Loading…
Reference in new issue