Skip to content

Commit 0b03aa9

Browse files
committed
Show selected map in the map list
1 parent 1e286b7 commit 0b03aa9

File tree

3 files changed

+6
-25
lines changed

3 files changed

+6
-25
lines changed

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ android {
1717
applicationId "com.peterlaurence.trekme"
1818
minSdkVersion 24
1919
targetSdkVersion 29
20-
versionCode 95
21-
versionName "2.4.1"
20+
versionCode 96
21+
versionName "2.4.2"
2222
}
2323

2424
buildTypes {

app/src/main/java/com/peterlaurence/trekme/model/map/MapModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.peterlaurence.trekme.ui.maplist.MapSettingsFragment
99
*
1010
* * the [Map] that should be used when navigating to the [MapViewFragment]
1111
* * the [Map] that should be displayed when navigating to the [MapSettingsFragment]
12+
* TODO: Refactor-rename as MapRepository and inject using Hilt
1213
*/
1314
object MapModel {
1415
private var map: Map? = null

app/src/main/java/com/peterlaurence/trekme/ui/maplist/MapAdapter.kt

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import androidx.recyclerview.widget.RecyclerView
1717
import com.peterlaurence.trekme.R
1818
import com.peterlaurence.trekme.core.map.Map
1919
import com.peterlaurence.trekme.core.map.Map.CalibrationStatus
20+
import com.peterlaurence.trekme.model.map.MapModel
2021
import 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

Comments
 (0)