@@ -17,6 +17,7 @@ import androidx.recyclerview.widget.RecyclerView
1717import com.peterlaurence.trekme.R
1818import com.peterlaurence.trekme.core.map.Map
1919import com.peterlaurence.trekme.core.map.Map.CalibrationStatus
20+ import com.peterlaurence.trekme.model.map.MapModel
2021import com.peterlaurence.trekme.ui.maplist.MapAdapter.MapViewHolder
2122
2223/* *
@@ -32,9 +33,6 @@ class MapAdapter internal constructor(
3233 private val colorAccent : Int , private val colorWhiteText : Int ,
3334 private val colorBlackText : Int , private val resources : Resources
3435) : RecyclerView.Adapter<MapViewHolder>() {
35- private var selectedMapIndex = - 1
36- private var previousSelectedMapIndex = - 1
37-
3836 private val diffCallback = object : DiffUtil .ItemCallback <Map >() {
3937 override fun areItemsTheSame (oldItem : Map , newItem : Map ): Boolean {
4038 return oldItem.id == newItem.id
@@ -50,22 +48,6 @@ class MapAdapter internal constructor(
5048 differ.submitList(mapList)
5149 }
5250
53- /* *
54- * Simple implementation of a toggle selection. When an item is clicked, we change its
55- * background and we remember his index. When another item is clicked, the background of the
56- * first item is set to its original state.
57- *
58- * @param position index of the selected view
59- */
60- private fun updateSelectionColor (position : Int ) {
61- selectedMapIndex = position
62- notifyItemChanged(position)
63- if (previousSelectedMapIndex != - 1 ) {
64- notifyItemChanged(previousSelectedMapIndex)
65- }
66- previousSelectedMapIndex = position
67- }
68-
6951 override fun onCreateViewHolder (parent : ViewGroup , viewType : Int ): MapViewHolder {
7052 val ctx = parent.context
7153 val v = LayoutInflater .from(ctx).inflate(R .layout.map_row, parent, false )
@@ -86,12 +68,13 @@ class MapAdapter internal constructor(
8668 } else {
8769 favoriteButton.setImageResource(R .drawable.ic_baseline_star_border_24)
8870 }
89- if (layoutPosition == selectedMapIndex ) {
71+ if (map == MapModel .getCurrentMap() ) {
9072 cardView.setCardBackgroundColor(colorAccent)
9173 mapName.setTextColor(colorWhiteText)
9274 editButton.setTextColor(colorWhiteText)
9375 deleteButton.setColorFilter(colorWhiteText)
9476 calibrationStatus.setTextColor(colorWhiteText)
77+ favoriteButton.setColorFilter(colorWhiteText)
9578 } else {
9679 cardView.setCardBackgroundColor(Color .WHITE )
9780 mapName.setTextColor(colorBlackText)
@@ -106,9 +89,6 @@ class MapAdapter internal constructor(
10689
10790 /* Set click listeners */
10891 itemView.setOnClickListener {
109- // Toggle background color
110- updateSelectionColor(position)
111-
11292 // Call the listener for Map selection
11393 mapSelectionListener.onMapSelected(map)
11494 }
0 commit comments