multiple choice filter: add "all" and "none" buttons

This commit is contained in:
Johan von Forstner
2020-05-15 18:56:20 +02:00
parent 02d24a3b3f
commit c82e12bb47
4 changed files with 36 additions and 1 deletions

View File

@@ -184,6 +184,7 @@ class FiltersAdapter : DataBindingAdapter<FilterWithValue<FilterValue>>() {
if (it !in filter.choices.keys) value.values.remove(it)
}
val chips = mutableMapOf<String, Chip>()
binding.chipGroup.removeAllViews()
filter.choices.entries.sortedByDescending {
it.key in value.values
@@ -208,8 +209,19 @@ class FiltersAdapter : DataBindingAdapter<FilterWithValue<FilterValue>>() {
}
binding.chipGroup.addView(chip)
chips.put(choice.key, chip)
}
binding.btnAll.setOnClickListener {
value.all = true
value.values.addAll(filter.choices.keys)
chips.values.forEach { it.isChecked = true }
}
binding.btnNone.setOnClickListener {
value.all = true
value.values.addAll(filter.choices.keys)
chips.values.forEach { it.isChecked = false }
}
}
private fun setupSlider(