mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-12-31 02:00:13 +00:00
Added sorting order to modules
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user