Add default category list

Fix default language list
This commit is contained in:
Jobobby04 2020-06-01 23:11:57 -04:00
parent bf4887d0b4
commit 5e7ffa3285
4 changed files with 127 additions and 1 deletions

View File

@ -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"
}

View File

@ -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")
}

View File

@ -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

View File

@ -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<Boolean>): List<ConfigItem> {
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<String>): List<ConfigItem> {