mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Instantiate extension preferences with proper datastore earlier
This commit is contained in:
		@@ -40,7 +40,7 @@ class EmptyPreferenceDataStore : PreferenceDataStore() {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun getStringSet(key: String?, defValues: Set<String>?): Set<String>? {
 | 
			
		||||
        return emptySet()
 | 
			
		||||
        return null
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun putStringSet(key: String?, values: Set<String>?) {
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,6 @@ import androidx.preference.PreferenceManager
 | 
			
		||||
import androidx.preference.PreferenceScreen
 | 
			
		||||
import androidx.recyclerview.widget.LinearLayoutManager
 | 
			
		||||
import eu.kanade.tachiyomi.R
 | 
			
		||||
import eu.kanade.tachiyomi.data.preference.EmptyPreferenceDataStore
 | 
			
		||||
import eu.kanade.tachiyomi.data.preference.SharedPreferencesDataStore
 | 
			
		||||
import eu.kanade.tachiyomi.databinding.SourcePreferencesControllerBinding
 | 
			
		||||
import eu.kanade.tachiyomi.source.ConfigurableSource
 | 
			
		||||
@@ -66,7 +65,10 @@ class SourcePreferencesController(bundle: Bundle? = null) :
 | 
			
		||||
 | 
			
		||||
        val themedContext by lazy { getPreferenceThemeContext() }
 | 
			
		||||
        val manager = PreferenceManager(themedContext)
 | 
			
		||||
        manager.preferenceDataStore = EmptyPreferenceDataStore()
 | 
			
		||||
        val dataStore = SharedPreferencesDataStore(
 | 
			
		||||
            context.getSharedPreferences(source.getPreferenceKey(), Context.MODE_PRIVATE)
 | 
			
		||||
        )
 | 
			
		||||
        manager.preferenceDataStore = dataStore
 | 
			
		||||
        manager.onDisplayPreferenceDialogListener = this
 | 
			
		||||
        val screen = manager.createPreferenceScreen(themedContext)
 | 
			
		||||
        preferenceScreen = screen
 | 
			
		||||
@@ -101,10 +103,6 @@ class SourcePreferencesController(bundle: Bundle? = null) :
 | 
			
		||||
    private fun addPreferencesForSource(screen: PreferenceScreen, source: Source) {
 | 
			
		||||
        val context = screen.context
 | 
			
		||||
 | 
			
		||||
        val dataStore = SharedPreferencesDataStore(
 | 
			
		||||
            context.getSharedPreferences(source.getPreferenceKey(), Context.MODE_PRIVATE)
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        if (source is ConfigurableSource) {
 | 
			
		||||
            val newScreen = screen.preferenceManager.createPreferenceScreen(context)
 | 
			
		||||
            source.setupPreferenceScreen(newScreen)
 | 
			
		||||
@@ -113,7 +111,6 @@ class SourcePreferencesController(bundle: Bundle? = null) :
 | 
			
		||||
            while (newScreen.preferenceCount != 0) {
 | 
			
		||||
                val pref = newScreen.getPreference(0)
 | 
			
		||||
                pref.isIconSpaceReserved = false
 | 
			
		||||
                pref.preferenceDataStore = dataStore
 | 
			
		||||
                pref.order = Int.MAX_VALUE // reset to default order
 | 
			
		||||
 | 
			
		||||
                newScreen.removePreference(pref)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user