From 5e7ffa32859b776bb9c0662648c35bf1b5d77456 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Mon, 1 Jun 2020 23:11:57 -0400 Subject: [PATCH] Add default category list Fix default language list --- .../data/preference/PreferenceKeys.kt | 2 + .../data/preference/PreferencesHelper.kt | 4 +- .../ui/setting/SettingsEhController.kt | 61 +++++++++++++++++++ .../main/java/exh/uconfig/EhUConfigBuilder.kt | 61 +++++++++++++++++++ 4 files changed, 127 insertions(+), 1 deletion(-) 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 16af3e607..d7a400acb 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 @@ -248,4 +248,6 @@ object PreferenceKeys { const val eh_watched_list_default_state = "eh_watched_list_default_state" const val eh_settings_languages = "eh_settings_languages" + + const val eh_enabled_categories = "eh_enabled_categories" } 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 17fe3e05e..6765fdc3d 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 @@ -353,5 +353,7 @@ class PreferencesHelper(val context: Context) { fun eh_watchedListDefaultState() = flowPrefs.getBoolean(Keys.eh_watched_list_default_state, false) - fun eh_settingsLanguages() = flowPrefs.getString(Keys.eh_settings_languages, "false,false,false\nfalse,false,false\nfalse,false,false\nfalse,false,false\nfalse,false,false\nfalse,false,false\nfalse,false,false\nfalse,false,false\nfalse,false,false\nfalse,false,false\nfalse,false,false\nfalse,false,false\nfalse,false,false\nfalse,false,false\nfalse,false,false\nfalse,false,false\nfalse,false,false") + fun eh_settingsLanguages() = flowPrefs.getString(Keys.eh_settings_languages, "false*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false") + + fun eh_EnabledCategories() = flowPrefs.getString(Keys.eh_enabled_categories, "false,false,false,false,false,false,false,false,false,false") } 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 e6931975c..4fe887a16 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 @@ -50,6 +50,16 @@ import exh.util.await import exh.util.trans import humanize.Humanize import java.util.Date +import kotlinx.android.synthetic.main.eh_dialog_categories.view.artist_cg_checkbox +import kotlinx.android.synthetic.main.eh_dialog_categories.view.asian_porn_checkbox +import kotlinx.android.synthetic.main.eh_dialog_categories.view.cosplay_checkbox +import kotlinx.android.synthetic.main.eh_dialog_categories.view.doujinshi_checkbox +import kotlinx.android.synthetic.main.eh_dialog_categories.view.game_cg_checkbox +import kotlinx.android.synthetic.main.eh_dialog_categories.view.image_set_checkbox +import kotlinx.android.synthetic.main.eh_dialog_categories.view.manga_checkbox +import kotlinx.android.synthetic.main.eh_dialog_categories.view.misc_checkbox +import kotlinx.android.synthetic.main.eh_dialog_categories.view.non_h_checkbox +import kotlinx.android.synthetic.main.eh_dialog_categories.view.western_checkbox import kotlinx.android.synthetic.main.eh_dialog_languages.view.chinese_original import kotlinx.android.synthetic.main.eh_dialog_languages.view.chinese_rewrite import kotlinx.android.synthetic.main.eh_dialog_languages.view.chinese_translated @@ -414,6 +424,57 @@ class SettingsEhController : SettingsController() { } }.dependency = PreferenceKeys.eh_enableExHentai + preference { + title = "Front Page Categories" + summary = "What categories would you like to show by default on the front page and in searches? They can still be enabled by enabling their filters" + + onClick { + MaterialDialog(activity!!) + .title(text = "Front Page Categories") + .message(text = "What categories would you like to show by default on the front page and in searches? They can still be enabled by enabling their filters") + .customView(R.layout.eh_dialog_categories, scrollable = true) + .positiveButton { + val customView = it.view.contentLayout.customView!! + + with(customView) { + preferences.eh_EnabledCategories().set( + listOf( + (!doujinshi_checkbox.isChecked).toString(), + (!manga_checkbox.isChecked).toString(), + (!artist_cg_checkbox.isChecked).toString(), + (!game_cg_checkbox.isChecked).toString(), + (!western_checkbox.isChecked).toString(), + (!non_h_checkbox.isChecked).toString(), + (!image_set_checkbox.isChecked).toString(), + (!cosplay_checkbox.isChecked).toString(), + (!asian_porn_checkbox.isChecked).toString(), + (!misc_checkbox.isChecked).toString() + ).joinToString(",") + ) + } + + preferences.eh_EnabledCategories().reconfigure() + } + .show { + val customView = this.view.contentLayout.customView!! + + with(customView) { + val list = preferences.eh_EnabledCategories().get().split(",").map { !it.toBoolean() } + doujinshi_checkbox.isChecked = list[0] + manga_checkbox.isChecked = list[1] + artist_cg_checkbox.isChecked = list[2] + game_cg_checkbox.isChecked = list[3] + western_checkbox.isChecked = list[4] + non_h_checkbox.isChecked = list[5] + image_set_checkbox.isChecked = list[6] + cosplay_checkbox.isChecked = list[7] + asian_porn_checkbox.isChecked = list[8] + misc_checkbox.isChecked = list[9] + } + } + } + }.dependency = PreferenceKeys.eh_enableExHentai + switchPreference { defaultValue = false key = PreferenceKeys.eh_watched_list_default_state diff --git a/app/src/main/java/exh/uconfig/EhUConfigBuilder.kt b/app/src/main/java/exh/uconfig/EhUConfigBuilder.kt index aecc6c97a..5bd98639f 100644 --- a/app/src/main/java/exh/uconfig/EhUConfigBuilder.kt +++ b/app/src/main/java/exh/uconfig/EhUConfigBuilder.kt @@ -65,6 +65,8 @@ class EhUConfigBuilder { configItems += Entry.LanguageSystem().getLanguages(prefs.eh_settingsLanguages().get().split("\n")) + configItems += Entry.Categories().categoryConfigs(prefs.eh_EnabledCategories().get().split(",").map { it.toBoolean() }) + // Actually build form body val formBody = FormBody.Builder() configItems.forEach { @@ -154,6 +156,65 @@ object Entry { override val value = "$value" } + class Categories() { + + fun categoryConfigs(list: List): List { + return listOf( + Doujinshi(list[0]), + Manga(list[1]), + ArtistCG(list[2]), + GameCG(list[3]), + Western(list[4]), + NonH(list[5]), + ImageSet(list[6]), + Cosplay(list[7]), + AsianPorn(list[8]), + Misc(list[9]) + ) + } + + class Doujinshi(exclude: Boolean) : ConfigItem { + override val value = if (exclude) "1" else "0" + override val key = "ct_doujinshi" + } + class Manga(exclude: Boolean) : ConfigItem { + override val value = if (exclude) "1" else "0" + override val key = "ct_manga" + } + class ArtistCG(exclude: Boolean) : ConfigItem { + override val value = if (exclude) "1" else "0" + override val key = "ct_artistcg" + } + class GameCG(exclude: Boolean) : ConfigItem { + override val value = if (exclude) "1" else "0" + override val key = "ct_gamecg" + } + class Western(exclude: Boolean) : ConfigItem { + override val value = if (exclude) "1" else "0" + override val key = "ct_western" + } + class NonH(exclude: Boolean) : ConfigItem { + override val value = if (exclude) "1" else "0" + override val key = "ct_non-h" + } + class ImageSet(exclude: Boolean) : ConfigItem { + override val value = if (exclude) "1" else "0" + override val key = "ct_imageset" + } + class Cosplay(exclude: Boolean) : ConfigItem { + override val value = if (exclude) "1" else "0" + override val key = "ct_cosplay" + } + class AsianPorn(exclude: Boolean) : ConfigItem { + override val value = if (exclude) "1" else "0" + override val key = "ct_asianporn" + } + class Misc(exclude: Boolean) : ConfigItem { + override val value = if (exclude) "1" else "0" + override val key = "ct_misc_div" + } + } + class LanguageSystem { fun getLanguages(values: List): List {