From 7d40987e03a7125d3df4490ac7831044dc146073 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 12 Apr 2019 09:42:25 +0200 Subject: [PATCH] Add single selection --- .../android/ui/fragment/GraphFragment.kt | 13 +++++++++---- .../util/extensions/ChipGroupExtension.kt | 16 ++++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/net/pokeranalytics/android/util/extensions/ChipGroupExtension.kt diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt index 5cfb9755..1293fc0a 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt @@ -13,6 +13,7 @@ import com.github.mikephil.charting.data.LineDataSet import com.github.mikephil.charting.highlight.Highlight import com.github.mikephil.charting.listener.OnChartValueSelectedListener import com.google.android.material.chip.Chip +import com.google.android.material.chip.ChipGroup import kotlinx.android.synthetic.main.fragment_evograph.* import net.pokeranalytics.android.R import net.pokeranalytics.android.calculus.GraphType @@ -21,7 +22,9 @@ import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.ui.graph.setStyle import net.pokeranalytics.android.ui.view.LegendView +import net.pokeranalytics.android.util.extensions.ChipGroupExtension import net.pokeranalytics.android.util.extensions.px +import net.pokeranalytics.android.util.extensions.toast interface GraphDataSource { @@ -109,9 +112,12 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener { this.chipGroup.addView(chip) } - this.chipGroup.setOnCheckedChangeListener { group, i -> - - } + this.chipGroup.setOnCheckedChangeListener(object : ChipGroupExtension.SingleSelectionOnCheckedListener() { + override fun onCheckedChanged(group: ChipGroup, checkedId: Int) { + super.onCheckedChanged(group, checkedId) + toast("Show: ${stat.aggregationTypes[group.getChildAt(checkedId).id].name}") + } + }) this.chipGroup.check(this.stat.aggregationTypes.first().ordinal) } @@ -144,7 +150,6 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener { // this.text.text = "" - } } diff --git a/app/src/main/java/net/pokeranalytics/android/util/extensions/ChipGroupExtension.kt b/app/src/main/java/net/pokeranalytics/android/util/extensions/ChipGroupExtension.kt new file mode 100644 index 00000000..8a642069 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/util/extensions/ChipGroupExtension.kt @@ -0,0 +1,16 @@ +package net.pokeranalytics.android.util.extensions + +import com.google.android.material.chip.ChipGroup + +class ChipGroupExtension { + + open class SingleSelectionOnCheckedListener : ChipGroup.OnCheckedChangeListener { + override fun onCheckedChanged(group: ChipGroup, checkedId: Int) { + for (i in 0 until group.childCount) { + val chip = group.getChildAt(i) + chip.isClickable = chip.id != group.checkedChipId + } + } + } + +} \ No newline at end of file