- implement searchable settings

- `SettingsController.setupPreferenceScreen` must return a PreferenceScreen
This commit is contained in:
lmj0011
2020-08-19 09:28:29 -05:00
parent 22518f173f
commit 8c82b766e3
24 changed files with 218 additions and 99 deletions
@@ -13,7 +13,7 @@ import uy.kohesive.injekt.api.get
class ExtensionFilterController : SettingsController() {
override fun setupPreferenceScreen(screen: PreferenceScreen) = with(screen) {
override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply {
titleRes = R.string.label_extensions
val activeLangs = preferences.enabledLanguages().get()
@@ -24,7 +24,7 @@ class SourceFilterController : SettingsController() {
private val onlineSources by lazy { Injekt.get<SourceManager>().getOnlineSources() }
override fun setupPreferenceScreen(screen: PreferenceScreen) = with(screen) {
override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply {
titleRes = R.string.label_sources
// Get the list of active language codes.
@@ -46,7 +46,7 @@ class SourceFilterController : SettingsController() {
// Create a preference group and set initial state and change listener
switchPreferenceCategory {
preferenceScreen.addPreference(this)
this@apply.addPreference(this)
title = LocaleHelper.getSourceDisplayName(lang, context)
isPersistent = false
if (lang in activeLangsCodes) {