Fix Starting screen summary not showing correct value when using last used

This commit is contained in:
Jays2Kings 2021-03-27 18:23:08 -04:00
parent 4fb120944c
commit 2c6156c061
2 changed files with 37 additions and 1 deletions

View File

@ -21,6 +21,12 @@ class SettingsGeneralController : SettingsController() {
intListPreference(activity) { intListPreference(activity) {
key = Keys.startingTab key = Keys.startingTab
titleRes = R.string.starting_screen titleRes = R.string.starting_screen
summaryRes = when (preferences.startingTab().get()) {
-1 -> R.string.library
-2 -> R.string.recents
-3 -> R.string.browse
else -> R.string.last_used_library_recents
}
entriesRes = arrayOf( entriesRes = arrayOf(
R.string.last_used_library_recents, R.string.last_used_library_recents,
R.string.library, R.string.library,
@ -29,6 +35,25 @@ class SettingsGeneralController : SettingsController() {
) )
entryValues = (0 downTo -3).toList() entryValues = (0 downTo -3).toList()
defaultValue = 0 defaultValue = 0
customSelectedValue = when (val value = preferences.startingTab().get()) {
in -3..-1 -> value
else -> 0
}
onChange { newValue ->
summaryRes = when (newValue) {
0, 1 -> R.string.last_used_library_recents
-1 -> R.string.library
-2 -> R.string.recents
-3 -> R.string.browse
else -> R.string.last_used_library_recents
}
customSelectedValue = when (newValue) {
in -3..-1 -> newValue as Int
else -> 0
}
true
}
} }
switchPreference { switchPreference {

View File

@ -24,6 +24,7 @@ class IntListMatPreference @JvmOverloads constructor(
set(value) { entries = value.map { context.getString(it) } } set(value) { entries = value.map { context.getString(it) } }
private var defValue: Int = 0 private var defValue: Int = 0
var entries: List<String> = emptyList() var entries: List<String> = emptyList()
var customSelectedValue: Int? = null
override fun onSetInitialValue(defaultValue: Any?) { override fun onSetInitialValue(defaultValue: Any?) {
super.onSetInitialValue(defaultValue) super.onSetInitialValue(defaultValue)
@ -37,9 +38,19 @@ class IntListMatPreference @JvmOverloads constructor(
else entries[index] else entries[index]
} }
override fun setSummary(summaryResId: Int) {
super.setSummary(summaryResId)
customSummary = summary.toString()
}
override fun setSummary(summary: CharSequence?) {
super.setSummary(summary)
customSummary = summary?.toString()
}
override fun dialog(): MaterialDialog { override fun dialog(): MaterialDialog {
return super.dialog().apply { return super.dialog().apply {
val default = entryValues.indexOf(prefs.getInt(key, defValue).getOrDefault()) val default = entryValues.indexOf(customSelectedValue ?: prefs.getInt(key, defValue).getOrDefault())
listItemsSingleChoice( listItemsSingleChoice(
items = entries, items = entries,
waitForPositiveButton = false, waitForPositiveButton = false,