Instantiate extension preferences with proper datastore earlier

This commit is contained in:
arkon 2021-05-08 19:52:31 -04:00
parent 4bfd395d9f
commit 5700c7a0c7
2 changed files with 5 additions and 8 deletions

View File

@ -40,7 +40,7 @@ class EmptyPreferenceDataStore : PreferenceDataStore() {
} }
override fun getStringSet(key: String?, defValues: Set<String>?): Set<String>? { override fun getStringSet(key: String?, defValues: Set<String>?): Set<String>? {
return emptySet() return null
} }
override fun putStringSet(key: String?, values: Set<String>?) { override fun putStringSet(key: String?, values: Set<String>?) {

View File

@ -21,7 +21,6 @@ import androidx.preference.PreferenceManager
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.preference.EmptyPreferenceDataStore
import eu.kanade.tachiyomi.data.preference.SharedPreferencesDataStore import eu.kanade.tachiyomi.data.preference.SharedPreferencesDataStore
import eu.kanade.tachiyomi.databinding.SourcePreferencesControllerBinding import eu.kanade.tachiyomi.databinding.SourcePreferencesControllerBinding
import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.ConfigurableSource
@ -66,7 +65,10 @@ class SourcePreferencesController(bundle: Bundle? = null) :
val themedContext by lazy { getPreferenceThemeContext() } val themedContext by lazy { getPreferenceThemeContext() }
val manager = PreferenceManager(themedContext) val manager = PreferenceManager(themedContext)
manager.preferenceDataStore = EmptyPreferenceDataStore() val dataStore = SharedPreferencesDataStore(
context.getSharedPreferences(source.getPreferenceKey(), Context.MODE_PRIVATE)
)
manager.preferenceDataStore = dataStore
manager.onDisplayPreferenceDialogListener = this manager.onDisplayPreferenceDialogListener = this
val screen = manager.createPreferenceScreen(themedContext) val screen = manager.createPreferenceScreen(themedContext)
preferenceScreen = screen preferenceScreen = screen
@ -101,10 +103,6 @@ class SourcePreferencesController(bundle: Bundle? = null) :
private fun addPreferencesForSource(screen: PreferenceScreen, source: Source) { private fun addPreferencesForSource(screen: PreferenceScreen, source: Source) {
val context = screen.context val context = screen.context
val dataStore = SharedPreferencesDataStore(
context.getSharedPreferences(source.getPreferenceKey(), Context.MODE_PRIVATE)
)
if (source is ConfigurableSource) { if (source is ConfigurableSource) {
val newScreen = screen.preferenceManager.createPreferenceScreen(context) val newScreen = screen.preferenceManager.createPreferenceScreen(context)
source.setupPreferenceScreen(newScreen) source.setupPreferenceScreen(newScreen)
@ -113,7 +111,6 @@ class SourcePreferencesController(bundle: Bundle? = null) :
while (newScreen.preferenceCount != 0) { while (newScreen.preferenceCount != 0) {
val pref = newScreen.getPreference(0) val pref = newScreen.getPreference(0)
pref.isIconSpaceReserved = false pref.isIconSpaceReserved = false
pref.preferenceDataStore = dataStore
pref.order = Int.MAX_VALUE // reset to default order pref.order = Int.MAX_VALUE // reset to default order
newScreen.removePreference(pref) newScreen.removePreference(pref)