diff options
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.kt | 83 |
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 + ) } } |