Added sorting order to modules

This commit is contained in:
Viktor De Pasquale
2019-11-16 20:07:59 +01:00
parent 59c5363933
commit 1c77e26c05
6 changed files with 70 additions and 7 deletions

View File

@@ -90,11 +90,24 @@ object InstallModule : ComparableRvItem<InstallModule>() {
class SectionTitle(
val title: Int,
val button: Int = 0,
val icon: Int = 0
) : ComparableRvItem<SectionTitle>() {
_button: Int = 0,
_icon: Int = 0
) : ObservableItem<SectionTitle>() {
override val layoutRes = R.layout.item_section_md2
@Bindable
var button = _button
set(value) {
field = value
notifyChange(BR.button)
}
@Bindable
var icon = _icon
set(value) {
field = value
notifyChange(BR.icon)
}
val hasButton = KObservableField(button != 0 || icon != 0)
override fun onBindingBound(binding: ViewDataBinding) {

View File

@@ -68,12 +68,25 @@ class ModuleViewModel(
}
companion object {
private val sectionRemote = SectionTitle(R.string.module_section_remote)
private val sectionRemote =
SectionTitle(R.string.module_section_remote, R.string.sorting_order)
private val sectionActive = SectionTitle(
R.string.module_section_installed,
R.string.reboot,
R.drawable.ic_restart
).also { it.hasButton.value = false }
init {
updateOrderIcon()
}
private fun updateOrderIcon() {
sectionRemote.icon = when (Config.repoOrder) {
Config.Value.ORDER_NAME -> R.drawable.ic_order_name
Config.Value.ORDER_DATE -> R.drawable.ic_order_date
else -> return
}
}
}
// ---
@@ -221,6 +234,20 @@ class ModuleViewModel(
fun sectionPressed(item: SectionTitle) = when (item) {
sectionActive -> reboot() //TODO add reboot picker, regular reboot is not always preferred
sectionRemote -> {
Config.repoOrder = when (Config.repoOrder) {
Config.Value.ORDER_NAME -> Config.Value.ORDER_DATE
Config.Value.ORDER_DATE -> Config.Value.ORDER_NAME
else -> Config.Value.ORDER_NAME
}
updateOrderIcon()
Single.fromCallable { itemsRemote }
.subscribeK {
items.removeAll(it)
remoteJob?.dispose()
loadRemote()
}.add()
}
else -> Unit
}