More preference grouping
This commit is contained in:
parent
bf8268adc4
commit
3a62acc54d
3 changed files with 99 additions and 94 deletions
|
@ -27,98 +27,6 @@ class SettingsGeneralController : SettingsController() {
|
||||||
override fun setupPreferenceScreen(screen: PreferenceScreen) = with(screen) {
|
override fun setupPreferenceScreen(screen: PreferenceScreen) = with(screen) {
|
||||||
titleRes = R.string.pref_category_general
|
titleRes = R.string.pref_category_general
|
||||||
|
|
||||||
listPreference {
|
|
||||||
key = Keys.lang
|
|
||||||
titleRes = R.string.pref_language
|
|
||||||
entryValues = arrayOf("", "ar", "bg", "bn", "ca", "cs", "de", "el", "en-US", "en-GB",
|
|
||||||
"es", "fr", "hi", "hu", "in", "it", "ja", "ko", "lv", "ms", "nb-rNO", "nl", "pl", "pt",
|
|
||||||
"pt-BR", "ro", "ru", "sc", "sr", "sv", "th", "tl", "tr", "uk", "vi", "zh-rCN")
|
|
||||||
entries = entryValues.map { value ->
|
|
||||||
val locale = LocaleHelper.getLocaleFromString(value.toString())
|
|
||||||
locale?.getDisplayName(locale)?.capitalize()
|
|
||||||
?: context.getString(R.string.system_default)
|
|
||||||
}.toTypedArray()
|
|
||||||
defaultValue = ""
|
|
||||||
summary = "%s"
|
|
||||||
|
|
||||||
onChange { newValue ->
|
|
||||||
val activity = activity ?: return@onChange false
|
|
||||||
val app = activity.application
|
|
||||||
LocaleHelper.changeLocale(newValue.toString())
|
|
||||||
LocaleHelper.updateConfiguration(app, app.resources.configuration)
|
|
||||||
activity.recreate()
|
|
||||||
true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
listPreference {
|
|
||||||
key = Keys.dateFormat
|
|
||||||
titleRes = R.string.pref_date_format
|
|
||||||
entryValues = arrayOf("", "MM/dd/yy", "dd/MM/yy", "yyyy-MM-dd")
|
|
||||||
entries = entryValues.map { value ->
|
|
||||||
if (value == "") {
|
|
||||||
context.getString(R.string.system_default)
|
|
||||||
} else {
|
|
||||||
value
|
|
||||||
}
|
|
||||||
}.toTypedArray()
|
|
||||||
defaultValue = ""
|
|
||||||
summary = "%s"
|
|
||||||
}
|
|
||||||
listPreference {
|
|
||||||
key = Keys.themeMode
|
|
||||||
titleRes = R.string.pref_theme_mode
|
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
||||||
entriesRes = arrayOf(
|
|
||||||
R.string.theme_system,
|
|
||||||
R.string.theme_light,
|
|
||||||
R.string.theme_dark)
|
|
||||||
entryValues = arrayOf(
|
|
||||||
Values.THEME_MODE_SYSTEM,
|
|
||||||
Values.THEME_MODE_LIGHT,
|
|
||||||
Values.THEME_MODE_DARK)
|
|
||||||
defaultValue = Values.THEME_MODE_SYSTEM
|
|
||||||
} else {
|
|
||||||
entriesRes = arrayOf(
|
|
||||||
R.string.theme_light,
|
|
||||||
R.string.theme_dark)
|
|
||||||
entryValues = arrayOf(
|
|
||||||
Values.THEME_MODE_LIGHT,
|
|
||||||
Values.THEME_MODE_DARK)
|
|
||||||
defaultValue = Values.THEME_MODE_LIGHT
|
|
||||||
}
|
|
||||||
|
|
||||||
summary = "%s"
|
|
||||||
|
|
||||||
onChange {
|
|
||||||
activity?.recreate()
|
|
||||||
true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
listPreference {
|
|
||||||
key = Keys.themeDark
|
|
||||||
titleRes = R.string.pref_theme_dark
|
|
||||||
entriesRes = arrayOf(
|
|
||||||
R.string.theme_dark_default,
|
|
||||||
R.string.theme_dark_blue,
|
|
||||||
R.string.theme_dark_amoled)
|
|
||||||
entryValues = arrayOf(
|
|
||||||
Values.THEME_DARK_DEFAULT,
|
|
||||||
Values.THEME_DARK_BLUE,
|
|
||||||
Values.THEME_DARK_AMOLED)
|
|
||||||
defaultValue = Values.THEME_DARK_DEFAULT
|
|
||||||
summary = "%s"
|
|
||||||
|
|
||||||
preferences.themeMode().asObservable()
|
|
||||||
.subscribeUntilDestroy { isVisible = it != Values.THEME_MODE_LIGHT }
|
|
||||||
|
|
||||||
onChange {
|
|
||||||
if (preferences.themeMode().getOrDefault() != Values.THEME_MODE_LIGHT) {
|
|
||||||
activity?.recreate()
|
|
||||||
}
|
|
||||||
true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
intListPreference {
|
intListPreference {
|
||||||
key = Keys.startScreen
|
key = Keys.startScreen
|
||||||
titleRes = R.string.pref_start_screen
|
titleRes = R.string.pref_start_screen
|
||||||
|
@ -140,6 +48,103 @@ class SettingsGeneralController : SettingsController() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
preferenceCategory {
|
||||||
|
titleRes = R.string.pref_category_display
|
||||||
|
|
||||||
|
listPreference {
|
||||||
|
key = Keys.lang
|
||||||
|
titleRes = R.string.pref_language
|
||||||
|
entryValues = arrayOf("", "ar", "bg", "bn", "ca", "cs", "de", "el", "en-US", "en-GB",
|
||||||
|
"es", "fr", "hi", "hu", "in", "it", "ja", "ko", "lv", "ms", "nb-rNO", "nl", "pl", "pt",
|
||||||
|
"pt-BR", "ro", "ru", "sc", "sr", "sv", "th", "tl", "tr", "uk", "vi", "zh-rCN")
|
||||||
|
entries = entryValues.map { value ->
|
||||||
|
val locale = LocaleHelper.getLocaleFromString(value.toString())
|
||||||
|
locale?.getDisplayName(locale)?.capitalize()
|
||||||
|
?: context.getString(R.string.system_default)
|
||||||
|
}.toTypedArray()
|
||||||
|
defaultValue = ""
|
||||||
|
summary = "%s"
|
||||||
|
|
||||||
|
onChange { newValue ->
|
||||||
|
val activity = activity ?: return@onChange false
|
||||||
|
val app = activity.application
|
||||||
|
LocaleHelper.changeLocale(newValue.toString())
|
||||||
|
LocaleHelper.updateConfiguration(app, app.resources.configuration)
|
||||||
|
activity.recreate()
|
||||||
|
true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
listPreference {
|
||||||
|
key = Keys.dateFormat
|
||||||
|
titleRes = R.string.pref_date_format
|
||||||
|
entryValues = arrayOf("", "MM/dd/yy", "dd/MM/yy", "yyyy-MM-dd")
|
||||||
|
entries = entryValues.map { value ->
|
||||||
|
if (value == "") {
|
||||||
|
context.getString(R.string.system_default)
|
||||||
|
} else {
|
||||||
|
value
|
||||||
|
}
|
||||||
|
}.toTypedArray()
|
||||||
|
defaultValue = ""
|
||||||
|
summary = "%s"
|
||||||
|
}
|
||||||
|
listPreference {
|
||||||
|
key = Keys.themeMode
|
||||||
|
titleRes = R.string.pref_theme_mode
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
|
entriesRes = arrayOf(
|
||||||
|
R.string.theme_system,
|
||||||
|
R.string.theme_light,
|
||||||
|
R.string.theme_dark)
|
||||||
|
entryValues = arrayOf(
|
||||||
|
Values.THEME_MODE_SYSTEM,
|
||||||
|
Values.THEME_MODE_LIGHT,
|
||||||
|
Values.THEME_MODE_DARK)
|
||||||
|
defaultValue = Values.THEME_MODE_SYSTEM
|
||||||
|
} else {
|
||||||
|
entriesRes = arrayOf(
|
||||||
|
R.string.theme_light,
|
||||||
|
R.string.theme_dark)
|
||||||
|
entryValues = arrayOf(
|
||||||
|
Values.THEME_MODE_LIGHT,
|
||||||
|
Values.THEME_MODE_DARK)
|
||||||
|
defaultValue = Values.THEME_MODE_LIGHT
|
||||||
|
}
|
||||||
|
|
||||||
|
summary = "%s"
|
||||||
|
|
||||||
|
onChange {
|
||||||
|
activity?.recreate()
|
||||||
|
true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
listPreference {
|
||||||
|
key = Keys.themeDark
|
||||||
|
titleRes = R.string.pref_theme_dark
|
||||||
|
entriesRes = arrayOf(
|
||||||
|
R.string.theme_dark_default,
|
||||||
|
R.string.theme_dark_blue,
|
||||||
|
R.string.theme_dark_amoled)
|
||||||
|
entryValues = arrayOf(
|
||||||
|
Values.THEME_DARK_DEFAULT,
|
||||||
|
Values.THEME_DARK_BLUE,
|
||||||
|
Values.THEME_DARK_AMOLED)
|
||||||
|
defaultValue = Values.THEME_DARK_DEFAULT
|
||||||
|
summary = "%s"
|
||||||
|
|
||||||
|
preferences.themeMode().asObservable()
|
||||||
|
.subscribeUntilDestroy { isVisible = it != Values.THEME_MODE_LIGHT }
|
||||||
|
|
||||||
|
onChange {
|
||||||
|
if (preferences.themeMode().getOrDefault() != Values.THEME_MODE_LIGHT) {
|
||||||
|
activity?.recreate()
|
||||||
|
}
|
||||||
|
true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
preferenceCategory {
|
preferenceCategory {
|
||||||
titleRes = R.string.pref_category_security
|
titleRes = R.string.pref_category_security
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ class SettingsLibraryController : SettingsController() {
|
||||||
titleRes = R.string.pref_category_library
|
titleRes = R.string.pref_category_library
|
||||||
|
|
||||||
preferenceCategory {
|
preferenceCategory {
|
||||||
titleRes = R.string.pref_category_library_display
|
titleRes = R.string.pref_category_display
|
||||||
|
|
||||||
preference {
|
preference {
|
||||||
titleRes = R.string.pref_library_columns
|
titleRes = R.string.pref_library_columns
|
||||||
|
|
|
@ -147,7 +147,7 @@
|
||||||
<string name="secure_screen_summary">Hide app contents when switching apps and block screenshots</string>
|
<string name="secure_screen_summary">Hide app contents when switching apps and block screenshots</string>
|
||||||
|
|
||||||
<!-- Library section -->
|
<!-- Library section -->
|
||||||
<string name="pref_category_library_display">Display</string>
|
<string name="pref_category_display">Display</string>
|
||||||
<string name="pref_library_columns">Library manga per row</string>
|
<string name="pref_library_columns">Library manga per row</string>
|
||||||
<string name="portrait">Portrait</string>
|
<string name="portrait">Portrait</string>
|
||||||
<string name="landscape">Landscape</string>
|
<string name="landscape">Landscape</string>
|
||||||
|
|
Reference in a new issue