From a1afb74e57127233696c20af0bed84a5867ab342 Mon Sep 17 00:00:00 2001 From: Christophe Deschamps <christophe.deschamps.work@gmail.com> Date: Tue, 8 Dec 2020 10:38:58 +0100 Subject: [PATCH] Highlight selected value in dropdown widgets --- app/src/main/java/org/linhome/ui/widgets/LSpinner.kt | 3 ++- .../main/java/org/linhome/ui/widgets/LSpinnerAdapter.kt | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/linhome/ui/widgets/LSpinner.kt b/app/src/main/java/org/linhome/ui/widgets/LSpinner.kt index 5d0d296..b7383bc 100644 --- a/app/src/main/java/org/linhome/ui/widgets/LSpinner.kt +++ b/app/src/main/java/org/linhome/ui/widgets/LSpinner.kt @@ -72,7 +72,7 @@ class LSpinner : LinearLayout { var items: ArrayList<SpinnerItem>? = null set(value) { - binding.root.spinner.adapter = value?.let { LSpinnerAdapter(it, binding.root.spinner, this) } + binding.root.spinner.adapter = value?.let { LSpinnerAdapter(it, binding.root.spinner, this, null) } } @@ -93,6 +93,7 @@ class LSpinner : LinearLayout { set(value) { if (value != null) { binding.root.spinner.setSelection(value) + (binding.root.spinner.adapter as LSpinnerAdapter).selectedIndex = value } } diff --git a/app/src/main/java/org/linhome/ui/widgets/LSpinnerAdapter.kt b/app/src/main/java/org/linhome/ui/widgets/LSpinnerAdapter.kt index f63acd6..c862963 100644 --- a/app/src/main/java/org/linhome/ui/widgets/LSpinnerAdapter.kt +++ b/app/src/main/java/org/linhome/ui/widgets/LSpinnerAdapter.kt @@ -41,7 +41,7 @@ import org.linhome.databinding.ItemSpinnerBinding import org.linhome.utils.cdlog class SpinnerItem(val textKey: String, val iconFile: String? = null, val backingKey: String? = null) -class LSpinnerAdapter(private val options: ArrayList<SpinnerItem>, val spinner: Spinner, val lSpinner:LSpinner) : +class LSpinnerAdapter(private val options: ArrayList<SpinnerItem>, val spinner: Spinner, val lSpinner:LSpinner, var selectedIndex: Int?) : SpinnerAdapter { var height: Int? = null @@ -114,6 +114,13 @@ class LSpinnerAdapter(private val options: ArrayList<SpinnerItem>, val spinner: view.visibility = View.VISIBLE } + if (lSpinner.opened && position == selectedIndex) { + view.background = Theme.roundRectInputBackgroundWithColorKeyAndRadius( + "color_i", + "user_input_corner_radius" + ) + } + return view } -- GitLab