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.kt83
1 files changed, 22 insertions, 61 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 56b114d..e1ccd0a 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
@@ -1,10 +1,19 @@
package mx.trackermap.TrackerMap.android.devices
import android.graphics.Color
+import android.util.Size
+import android.util.TypedValue
+import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.GridLayout
+import android.widget.ImageView
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
+import com.mousebird.maply.ImageLoaderInterpreter
import mx.trackermap.TrackerMap.android.R
import mx.trackermap.TrackerMap.android.databinding.UnitItemBinding
import mx.trackermap.TrackerMap.utils.Formatter
@@ -15,8 +24,6 @@ enum class Action {
CLICK, DETAILS, REPORTS, COMMANDS
}
-typealias ActionCallback = (unit: UnitInformation, action: Action) -> Unit
-
class DevicesAdapter(
private val units: List<UnitInformation>,
private val actionCallback: ActionCallback?
@@ -32,65 +39,19 @@ class DevicesAdapter(
val unit = units[position]
val context = holder.itemView.context
holder.binding.apply {
-
- unit.position?.let { position ->
- /* Status icon */
- position.speed?.let { speed ->
- if (speed >= 2) {
- statusIcon.setColorFilter(Color.GREEN)
- } else {
- statusIcon.setColorFilter(Color.RED)
- }
- } ?: run {
- statusIcon.setColorFilter(Color.GRAY)
- }
-
- /* Engine stop */
- val attributes = position.attributes
- if (attributes["out1"].toString() == "null") {
- engineStopIcon.visibility = View.GONE
- } else {
- engineStopIcon.visibility = View.VISIBLE
- engineStopIcon.setImageResource(
- when (attributes["out1"].toString()) {
- "true" -> R.drawable.device_unlocked
- "false" -> R.drawable.device_locked
- else -> R.drawable.device_locked
- }
- )
- engineStopIcon.contentDescription = when (attributes["out1"].toString()) {
- "true" -> context.getString(R.string.unit_lock_on)
- "false" -> context.getString(R.string.unit_lock_off)
- else -> context.getString(R.string.unit_lock_on)
- }
- }
- }
-
- unitName.text = unit.device.name
- driverName.text = unit.device.contact
- unitSpeed.text = Formatter.formatSpeed(unit.position?.speed ?: 0.0, SpeedUnit.KMH)
- lastAddress.text = unit.position?.address
- unit.position?.fixTime?.let {
- lastDate.text = Formatter.formatDate(it)
- }
- actionCallback?.let { callback ->
- unitCard.setOnClickListener {
- swipeLayout.close()
- callback(unit, Action.CLICK)
- }
- detailsButton.setOnClickListener {
- swipeLayout.close()
- callback(unit, Action.DETAILS)
- }
- reportsButton.setOnClickListener {
- swipeLayout.close()
- callback(unit, Action.REPORTS)
- }
- commandsButton.setOnClickListener {
- swipeLayout.close()
- callback(unit, Action.COMMANDS)
- }
- }
+ UnitRenderData.render(
+ UnitRenderData.UnitRenderViewHolder(
+ unitName = unitName,
+ statusIcon = statusIcon,
+ engineStopIcon = engineStopIcon,
+ gridLayout = gridLayout,
+ detailsButton = detailsButton,
+ reportsButton = reportsButton,
+ commandsButton = commandsButton,
+ unitCard = unitCard,
+ swipeLayout = swipeLayout
+ ), context, unit, actionCallback
+ )
}
}