From 38b469755f7cb04789652d53961c25310adef5c1 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Sun, 10 May 2020 23:55:51 -0400 Subject: [PATCH] Add simple hentai features option --- .../data/preference/PreferenceKeys.kt | 2 + .../data/preference/PreferencesHelper.kt | 2 + .../tachiyomi/ui/library/LibraryController.kt | 2 + .../kanade/tachiyomi/ui/main/MainActivity.kt | 37 +++++++++- .../tachiyomi/ui/more/MoreController.kt | 14 ++-- .../ui/setting/SettingsAdvancedController.kt | 72 +++++++++++++++++++ .../ui/setting/SettingsMainController.kt | 36 +++++----- .../java/exh/source/BlacklistedSources.kt | 2 +- 8 files changed, 142 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt index 0a092a875..b8bb192a9 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt @@ -228,4 +228,6 @@ object PreferenceKeys { const val eh_tag_filtering_value = "eh_tag_filtering_value" const val eh_tag_watching_value = "eh_tag_watching_value" + + const val eh_is_hentai_enabled = "eh_is_hentai_enabled" } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt index f0657b74c..98f54fd89 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt @@ -258,6 +258,8 @@ class PreferencesHelper(val context: Context) { // <-- // --> EH + fun eh_isHentaiEnabled() = flowPrefs.getBoolean(Keys.eh_is_hentai_enabled, true) + fun enableExhentai() = flowPrefs.getBoolean(Keys.eh_enableExHentai, false) fun secureEXH() = flowPrefs.getBoolean("secure_exh", true) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt index 615351958..27cb9309c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt @@ -395,6 +395,8 @@ class LibraryController( // Mutate the filter icon because it needs to be tinted and the resource is shared. menu.findItem(R.id.action_filter).icon.mutate() + + menu.findItem(R.id.action_sync_favorites).isEnabled = preferences.eh_isHentaiEnabled().get() } fun search(query: String) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index afbc9cf28..1f3bebcbc 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -37,8 +37,17 @@ import eu.kanade.tachiyomi.ui.recent.history.HistoryController import eu.kanade.tachiyomi.ui.recent.updates.UpdatesController import eu.kanade.tachiyomi.util.lang.launchUI import eu.kanade.tachiyomi.util.system.toast +import exh.EH_SOURCE_ID +import exh.EIGHTMUSES_SOURCE_ID import exh.EXHMigrations +import exh.EXH_SOURCE_ID +import exh.HBROWSE_SOURCE_ID +import exh.HITOMI_SOURCE_ID +import exh.NHENTAI_SOURCE_ID +import exh.PERV_EDEN_EN_SOURCE_ID +import exh.PERV_EDEN_IT_SOURCE_ID import exh.eh.EHentaiUpdateWorker +import exh.source.BlacklistedSources import exh.uconfig.WarnConfigureDialogController import java.util.Date import java.util.LinkedList @@ -189,8 +198,34 @@ class MainActivity : BaseActivity() { EHentaiUpdateWorker.scheduleBackground(this) } - // EXH <-- } + if (!preferences.eh_isHentaiEnabled().get()) { + if (EH_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += EH_SOURCE_ID + } + if (EXH_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += EXH_SOURCE_ID + } + if (PERV_EDEN_EN_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += PERV_EDEN_EN_SOURCE_ID + } + if (PERV_EDEN_IT_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += PERV_EDEN_IT_SOURCE_ID + } + if (NHENTAI_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += NHENTAI_SOURCE_ID + } + if (HITOMI_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += HITOMI_SOURCE_ID + } + if (EIGHTMUSES_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += EIGHTMUSES_SOURCE_ID + } + if (HBROWSE_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += HBROWSE_SOURCE_ID + } + } + // EXH <-- setExtensionsBadge() preferences.extensionUpdatesCount().asFlow() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreController.kt index 18feea493..54c0fa590 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreController.kt @@ -76,12 +76,14 @@ class MoreController : router.pushController(MigrationController().withFadeTransaction()) } } - preference { - titleRes = R.string.eh_batch_add - iconRes = R.drawable.ic_playlist_add_black_24dp - iconTint = tintColor - onClick { - router.pushController(BatchAddController().withFadeTransaction()) + if (preferences.eh_isHentaiEnabled().get()) { + preference { + titleRes = R.string.eh_batch_add + iconRes = R.drawable.ic_playlist_add_black_24dp + iconTint = tintColor + onClick { + router.pushController(BatchAddController().withFadeTransaction()) + } } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt index 495201e81..aeed72ccd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt @@ -26,6 +26,7 @@ import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction import eu.kanade.tachiyomi.ui.library.LibraryController import eu.kanade.tachiyomi.util.preference.defaultValue import eu.kanade.tachiyomi.util.preference.intListPreference +import eu.kanade.tachiyomi.util.preference.onChange import eu.kanade.tachiyomi.util.preference.onClick import eu.kanade.tachiyomi.util.preference.preference import eu.kanade.tachiyomi.util.preference.preferenceCategory @@ -34,8 +35,17 @@ import eu.kanade.tachiyomi.util.preference.switchPreference import eu.kanade.tachiyomi.util.preference.titleRes import eu.kanade.tachiyomi.util.system.powerManager import eu.kanade.tachiyomi.util.system.toast +import exh.EH_SOURCE_ID +import exh.EIGHTMUSES_SOURCE_ID +import exh.EXH_SOURCE_ID +import exh.HBROWSE_SOURCE_ID +import exh.HITOMI_SOURCE_ID +import exh.NHENTAI_SOURCE_ID +import exh.PERV_EDEN_EN_SOURCE_ID +import exh.PERV_EDEN_IT_SOURCE_ID import exh.debug.SettingsDebugController import exh.log.EHLogLevel +import exh.source.BlacklistedSources import rx.Observable import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers @@ -117,6 +127,68 @@ class SettingsAdvancedController : SettingsController() { title = "Developer tools" isPersistent = false + switchPreference { + title = "Enable integrated hentai features" + summary = "This is a experimental feature that will disable all hentai features if toggled off" + key = PreferenceKeys.eh_is_hentai_enabled + defaultValue = true + + onChange { + if (preferences.eh_isHentaiEnabled().get()) { + if (EH_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += EH_SOURCE_ID + } + if (EXH_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += EXH_SOURCE_ID + } + if (PERV_EDEN_EN_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += PERV_EDEN_EN_SOURCE_ID + } + if (PERV_EDEN_IT_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += PERV_EDEN_IT_SOURCE_ID + } + if (NHENTAI_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += NHENTAI_SOURCE_ID + } + if (HITOMI_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += HITOMI_SOURCE_ID + } + if (EIGHTMUSES_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += EIGHTMUSES_SOURCE_ID + } + if (HBROWSE_SOURCE_ID !in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES += HBROWSE_SOURCE_ID + } + } else { + if (EH_SOURCE_ID in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES -= EH_SOURCE_ID + } + if (EXH_SOURCE_ID in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES -= EXH_SOURCE_ID + } + if (PERV_EDEN_EN_SOURCE_ID in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES -= PERV_EDEN_EN_SOURCE_ID + } + if (PERV_EDEN_IT_SOURCE_ID in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES -= PERV_EDEN_IT_SOURCE_ID + } + if (NHENTAI_SOURCE_ID in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES -= NHENTAI_SOURCE_ID + } + if (HITOMI_SOURCE_ID in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES -= HITOMI_SOURCE_ID + } + if (EIGHTMUSES_SOURCE_ID in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES -= EIGHTMUSES_SOURCE_ID + } + if (HBROWSE_SOURCE_ID in BlacklistedSources.HIDDEN_SOURCES) { + BlacklistedSources.HIDDEN_SOURCES -= HBROWSE_SOURCE_ID + } + } + true + } + } + switchPreference { title = "Enable delegated sources" key = PreferenceKeys.eh_delegateSources diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt index 138f8574d..7350be899 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt @@ -66,23 +66,25 @@ class SettingsMainController : SettingsController() { titleRes = R.string.pref_category_security onClick { navigateTo(SettingsSecurityController()) } } - preference { - iconRes = R.drawable.eh_ic_ehlogo_red_24dp - iconTint = tintColor - titleRes = R.string.pref_category_eh - onClick { navigateTo(SettingsEhController()) } - } - preference { - iconRes = R.drawable.eh_ic_nhlogo_color - iconTint = tintColor - titleRes = R.string.pref_category_nh - onClick { navigateTo(SettingsNhController()) } - } - preference { - iconRes = R.drawable.eh_ic_hllogo - iconTint = tintColor - titleRes = R.string.pref_category_hl - onClick { navigateTo(SettingsHlController()) } + if (preferences.eh_isHentaiEnabled().get()) { + preference { + iconRes = R.drawable.eh_ic_ehlogo_red_24dp + iconTint = tintColor + titleRes = R.string.pref_category_eh + onClick { navigateTo(SettingsEhController()) } + } + preference { + iconRes = R.drawable.eh_ic_nhlogo_color + iconTint = tintColor + titleRes = R.string.pref_category_nh + onClick { navigateTo(SettingsNhController()) } + } + preference { + iconRes = R.drawable.eh_ic_hllogo + iconTint = tintColor + titleRes = R.string.pref_category_hl + onClick { navigateTo(SettingsHlController()) } + } } preference { iconRes = R.drawable.ic_code_24dp diff --git a/app/src/main/java/exh/source/BlacklistedSources.kt b/app/src/main/java/exh/source/BlacklistedSources.kt index 38e6aa57d..482911a9b 100644 --- a/app/src/main/java/exh/source/BlacklistedSources.kt +++ b/app/src/main/java/exh/source/BlacklistedSources.kt @@ -38,7 +38,7 @@ object BlacklistedSources { "eu.kanade.tachiyomi.extension.it.perveden" ) - val HIDDEN_SOURCES = listOf( + var HIDDEN_SOURCES = listOf( MERGED_SOURCE_ID ) }