diff options
author | Iván Ávalos <avalos@disroot.org> | 2022-01-11 20:05:03 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2022-01-11 20:05:03 -0600 |
commit | ee9e673695e221e115758b1ac32a6b63683ae7c9 (patch) | |
tree | ea175b800416bf82662538b9df0426bf5f8e4d8b /androidApp/src/main/java/mx/trackermap/TrackerMap/android/devices/DevicesAdapter.kt | |
parent | 7baad408f97d7d4ab512b822bdc0799469e2d496 (diff) | |
download | etbsa-trackermap-mobile-ee9e673695e221e115758b1ac32a6b63683ae7c9.tar.gz etbsa-trackermap-mobile-ee9e673695e221e115758b1ac32a6b63683ae7c9.tar.bz2 etbsa-trackermap-mobile-ee9e673695e221e115758b1ac32a6b63683ae7c9.zip |
unit_item.xml data fields are generated programmatically, and DevicesAdapter code was refactored into UnitRenderData to be shared with UnitMapFragment.
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 + ) } } |