Instantiate extension preferences with proper datastore earlier
This commit is contained in:
parent
4bfd395d9f
commit
5700c7a0c7
@ -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>?) {
|
||||||
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user