diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/SourcePreferencesScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/SourcePreferencesScreen.kt index ee3ef9e8c..9d5b8c759 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/SourcePreferencesScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/SourcePreferencesScreen.kt @@ -66,8 +66,7 @@ class SourcePreferencesScreen(val sourceId: Long) : Screen() { .fillMaxSize() .padding(contentPadding), ) { - val fragment = SourcePreferencesFragment.getInstance(sourceId) - add(it, fragment, null) + add(it, SourcePreferencesFragment.getInstance(sourceId), null) } } } @@ -130,7 +129,7 @@ class SourcePreferencesFragment : PreferenceFragmentCompat() { val sourceId = requireArguments().getLong(SOURCE_ID) // SY --> val source = Injekt.get() - .get(sourceId) + .getOrStub(sourceId) ?.let { source -> if (source is EnhancedHttpSource) { if (source.enhancedSource is ConfigurableSource) { @@ -144,27 +143,27 @@ class SourcePreferencesFragment : PreferenceFragmentCompat() { } ?: throw NullPointerException("source = null, SOURCE_ID = $SOURCE_ID") // SY <-- - - check(source is ConfigurableSource) - - val dataStore = SharedPreferencesDataStore(source.sourcePreferences()) - preferenceManager.preferenceDataStore = dataStore - val sourceScreen = preferenceManager.createPreferenceScreen(requireContext()) - source.setupPreferenceScreen(sourceScreen) - sourceScreen.forEach { pref -> - pref.isIconSpaceReserved = false - pref.isSingleLineTitle = false - if (pref is DialogPreference && pref.dialogTitle.isNullOrEmpty()) { - pref.dialogTitle = pref.title - } - // Apply incognito IME for EditTextPreference - if (pref is EditTextPreference) { - val setListener = pref.getOnBindEditTextListener() - pref.setOnBindEditTextListener { - setListener?.onBindEditText(it) - it.setIncognito(lifecycleScope) + if (source is ConfigurableSource) { + val dataStore = SharedPreferencesDataStore(source.sourcePreferences()) + preferenceManager.preferenceDataStore = dataStore + + source.setupPreferenceScreen(sourceScreen) + sourceScreen.forEach { pref -> + pref.isIconSpaceReserved = false + pref.isSingleLineTitle = false + if (pref is DialogPreference && pref.dialogTitle.isNullOrEmpty()) { + pref.dialogTitle = pref.title + } + + // Apply incognito IME for EditTextPreference + if (pref is EditTextPreference) { + val setListener = pref.getOnBindEditTextListener() + pref.setOnBindEditTextListener { + setListener?.onBindEditText(it) + it.setIncognito(lifecycleScope) + } } } } @@ -176,9 +175,9 @@ class SourcePreferencesFragment : PreferenceFragmentCompat() { private const val SOURCE_ID = "source_id" fun getInstance(sourceId: Long): SourcePreferencesFragment { - val fragment = SourcePreferencesFragment() - fragment.arguments = bundleOf(SOURCE_ID to sourceId) - return fragment + return SourcePreferencesFragment().apply { + arguments = bundleOf(SOURCE_ID to sourceId) + } } } }