From c82e12bb47ae0b1132fd05d41629da4d3a0d6f5e Mon Sep 17 00:00:00 2001 From: Johan von Forstner Date: Fri, 15 May 2020 18:56:20 +0200 Subject: [PATCH] multiple choice filter: add "all" and "none" buttons --- .../evmap/adapter/DataBindingAdapters.kt | 12 +++++++++++ .../layout/item_filter_multiple_choice.xml | 21 ++++++++++++++++++- app/src/main/res/values-de/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/net/vonforst/evmap/adapter/DataBindingAdapters.kt b/app/src/main/java/net/vonforst/evmap/adapter/DataBindingAdapters.kt index 407cd4e6..6a0b334f 100644 --- a/app/src/main/java/net/vonforst/evmap/adapter/DataBindingAdapters.kt +++ b/app/src/main/java/net/vonforst/evmap/adapter/DataBindingAdapters.kt @@ -184,6 +184,7 @@ class FiltersAdapter : DataBindingAdapter>() { if (it !in filter.choices.keys) value.values.remove(it) } + val chips = mutableMapOf() binding.chipGroup.removeAllViews() filter.choices.entries.sortedByDescending { it.key in value.values @@ -208,8 +209,19 @@ class FiltersAdapter : DataBindingAdapter>() { } 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( diff --git a/app/src/main/res/layout/item_filter_multiple_choice.xml b/app/src/main/res/layout/item_filter_multiple_choice.xml index acec11d1..967eb054 100644 --- a/app/src/main/res/layout/item_filter_multiple_choice.xml +++ b/app/src/main/res/layout/item_filter_multiple_choice.xml @@ -45,7 +45,26 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/textView17" /> + app:layout_constraintTop_toBottomOf="@+id/btnAll" /> + +