aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/main/java/mx/trackermap/TrackerMap/android/devices/DevicesAdapter.kt
diff options
context:
space:
mode:
Diffstat (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/devices/DevicesAdapter.kt')
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/devices/DevicesAdapter.kt30
1 files changed, 25 insertions, 5 deletions
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/devices/DevicesAdapter.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/devices/DevicesAdapter.kt
index 72d61e3..4aa210d 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/devices/DevicesAdapter.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/devices/DevicesAdapter.kt
@@ -4,11 +4,20 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
+import mx.trackermap.TrackerMap.android.R
import mx.trackermap.TrackerMap.android.databinding.UnitItemBinding
import mx.trackermap.TrackerMap.client.models.UnitInformation
-class DevicesAdapter(private val units: List<UnitInformation>) :
- RecyclerView.Adapter<DevicesAdapter.ViewHolder>() {
+enum class Action {
+ DETAILS, REPORTS, COMMANDS
+}
+
+typealias ActionCallback = (unit: UnitInformation, action: Action) -> Unit
+
+class DevicesAdapter(
+ private val units: List<UnitInformation>,
+ private val actionCallback: ActionCallback?
+) : RecyclerView.Adapter<DevicesAdapter.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val binding = UnitItemBinding.inflate(LayoutInflater.from(parent.context), parent, false)
@@ -26,6 +35,11 @@ class DevicesAdapter(private val units: List<UnitInformation>) :
unitSpeed.text = "${unit.position?.speed ?: "--"} Km/h"
lastAddress.text = unit.position?.address ?: "Unknown location"
lastDate.text = "yyyy/mm/dd, hh:mm"
+ actionCallback?.let { callback ->
+ detailsButton.setOnClickListener { callback(unit, Action.DETAILS) }
+ reportsButton.setOnClickListener { callback(unit, Action.REPORTS) }
+ commandsButton.setOnClickListener { callback(unit, Action.COMMANDS) }
+ }
}
}
@@ -38,9 +52,15 @@ class DevicesAdapter(private val units: List<UnitInformation>) :
}
}
- fun toggleOptions(shouldShow: Boolean) {
- binding.itemOptions.visibility = if (shouldShow) View.VISIBLE else View.GONE
- binding.unitCard.cardElevation = if (shouldShow) 5.0F else 0.0F
+ fun toggleOptions(shouldExpand: Boolean) {
+ val context = binding.root.context
+ binding.unitCard.setCardBackgroundColor(
+ context
+ .resources
+ .getColor(if (shouldExpand) R.color.background else R.color.darkBackground)
+ )
+ binding.itemOptions.visibility = if (shouldExpand) View.VISIBLE else View.GONE
+ binding.unitCard.cardElevation = if (shouldExpand) 5.0F else 0.0F
}
}
} \ No newline at end of file