diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsEhController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsEhController.kt index 9d64dd264..84d1e1251 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsEhController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsEhController.kt @@ -18,6 +18,7 @@ import com.tfcporciuncula.flow.Preference import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.preference.PreferenceKeys +import eu.kanade.tachiyomi.data.preference.asImmediateFlow import eu.kanade.tachiyomi.ui.webview.WebViewActivity import eu.kanade.tachiyomi.util.preference.defaultValue import eu.kanade.tachiyomi.util.preference.entriesRes @@ -191,7 +192,10 @@ class SettingsEhController : SettingsController() { entryValues = arrayOf("0", "1") onChange { preferences.useHentaiAtHome().reconfigure() } - }.dependency = PreferenceKeys.eh_enableExHentai + + preferences.enableExhentai().asImmediateFlow { isVisible = it } + .launchIn(scope) + } switchPreference { titleRes = R.string.show_japanese_titles @@ -201,7 +205,10 @@ class SettingsEhController : SettingsController() { defaultValue = false onChange { preferences.useJapaneseTitle().reconfigure() } - }.dependency = PreferenceKeys.eh_enableExHentai + + preferences.enableExhentai().asImmediateFlow { isVisible = it } + .launchIn(scope) + } switchPreference { titleRes = R.string.use_original_images @@ -211,7 +218,10 @@ class SettingsEhController : SettingsController() { defaultValue = false onChange { preferences.eh_useOriginalImages().reconfigure() } - }.dependency = PreferenceKeys.eh_enableExHentai + + preferences.enableExhentai().asImmediateFlow { isVisible = it } + .launchIn(scope) + } preference { key = "pref_watched_tags" @@ -225,7 +235,10 @@ class SettingsEhController : SettingsController() { } startActivity(intent) } - }.dependency = PreferenceKeys.eh_enableExHentai + + preferences.enableExhentai().asImmediateFlow { isVisible = it } + .launchIn(scope) + } preference { titleRes = R.string.tag_filtering_threshold @@ -261,7 +274,10 @@ class SettingsEhController : SettingsController() { .negativeButton(android.R.string.cancel) .show() } - }.dependency = PreferenceKeys.eh_enableExHentai + + preferences.enableExhentai().asImmediateFlow { isVisible = it } + .launchIn(scope) + } preference { titleRes = R.string.tag_watching_threshhold @@ -298,7 +314,10 @@ class SettingsEhController : SettingsController() { .negativeButton(android.R.string.cancel) .show() } - }.dependency = PreferenceKeys.eh_enableExHentai + + preferences.enableExhentai().asImmediateFlow { isVisible = it } + .launchIn(scope) + } preference { key = "pref_language_filtering" @@ -437,7 +456,10 @@ class SettingsEhController : SettingsController() { } } } - }.dependency = PreferenceKeys.eh_enableExHentai + + preferences.enableExhentai().asImmediateFlow { isVisible = it } + .launchIn(scope) + } preference { key = "pref_front_page_categories" @@ -489,14 +511,20 @@ class SettingsEhController : SettingsController() { } } } - }.dependency = PreferenceKeys.eh_enableExHentai + + preferences.enableExhentai().asImmediateFlow { isVisible = it } + .launchIn(scope) + } switchPreference { defaultValue = false key = PreferenceKeys.eh_watched_list_default_state titleRes = R.string.watched_list_default summaryRes = R.string.watched_list_state_summary - }.dependency = PreferenceKeys.eh_enableExHentai + + preferences.enableExhentai().asImmediateFlow { isVisible = it } + .launchIn(scope) + } listPreference { defaultValue = "auto" @@ -521,7 +549,10 @@ class SettingsEhController : SettingsController() { ) onChange { preferences.imageQuality().reconfigure() } - }.dependency = PreferenceKeys.eh_enableExHentai + + preferences.enableExhentai().asImmediateFlow { isVisible = it } + .launchIn(scope) + } switchPreference { titleRes = R.string.pref_enhanced_e_hentai_view diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMangaDexController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMangaDexController.kt index 897421459..310812eb1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMangaDexController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMangaDexController.kt @@ -26,7 +26,7 @@ class SettingsMangaDexController : override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply { titleRes = R.string.mangadex_specific_settings - if (mdex == null) router.popCurrentController() + if (mdex == null) return@apply val sourcePreference = MangaDexLoginPreference(context, mdex!!).apply { title = mdex!!.name + " Login" key = getSourceKey(source.id) @@ -43,7 +43,7 @@ class SettingsMangaDexController : } } - preferenceScreen.addPreference(sourcePreference) + addPreference(sourcePreference) listPreference { titleRes = R.string.mangadex_preffered_source diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/settingssearch/SettingsSearchHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/settingssearch/SettingsSearchHelper.kt index 94087415a..5fe2f90e4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/settingssearch/SettingsSearchHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/settingssearch/SettingsSearchHelper.kt @@ -7,19 +7,25 @@ import androidx.preference.Preference import androidx.preference.PreferenceCategory import androidx.preference.PreferenceGroup import androidx.preference.PreferenceManager +import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.ui.setting.SettingsAdvancedController import eu.kanade.tachiyomi.ui.setting.SettingsBackupController import eu.kanade.tachiyomi.ui.setting.SettingsBrowseController import eu.kanade.tachiyomi.ui.setting.SettingsController import eu.kanade.tachiyomi.ui.setting.SettingsDownloadController +import eu.kanade.tachiyomi.ui.setting.SettingsEhController import eu.kanade.tachiyomi.ui.setting.SettingsGeneralController import eu.kanade.tachiyomi.ui.setting.SettingsLibraryController +import eu.kanade.tachiyomi.ui.setting.SettingsMangaDexController import eu.kanade.tachiyomi.ui.setting.SettingsParentalControlsController import eu.kanade.tachiyomi.ui.setting.SettingsReaderController import eu.kanade.tachiyomi.ui.setting.SettingsSecurityController import eu.kanade.tachiyomi.ui.setting.SettingsTrackingController import eu.kanade.tachiyomi.util.lang.launchNow import eu.kanade.tachiyomi.util.system.isLTR +import exh.md.utils.MdUtil +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get import kotlin.reflect.KClass import kotlin.reflect.full.createInstance @@ -29,18 +35,30 @@ object SettingsSearchHelper { /** * All subclasses of `SettingsController` should be listed here, in order to have their preferences searchable. */ - private val settingControllersList: List> = listOf( - SettingsAdvancedController::class, - SettingsBackupController::class, - SettingsBrowseController::class, - SettingsDownloadController::class, - SettingsGeneralController::class, - SettingsLibraryController::class, - SettingsParentalControlsController::class, - SettingsReaderController::class, - SettingsSecurityController::class, - SettingsTrackingController::class - ) + // SY --> + private val settingControllersList: List> = { + val controllers = mutableListOf( + SettingsAdvancedController::class, + SettingsBackupController::class, + SettingsBrowseController::class, + SettingsDownloadController::class, + SettingsGeneralController::class, + SettingsLibraryController::class, + SettingsParentalControlsController::class, + SettingsReaderController::class, + SettingsSecurityController::class, + SettingsTrackingController::class + ) + val preferences = Injekt.get() + if (MdUtil.getEnabledMangaDexs(preferences).isNotEmpty()) { + controllers += SettingsMangaDexController::class + } + if (preferences.eh_isHentaiEnabled().get()) { + controllers += SettingsEhController::class + } + controllers + }() + // SY <-- /** * Must be called to populate `prefSearchResultList`