diff options
author | Iván Ávalos <avalos@disroot.org> | 2023-01-09 22:18:23 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2023-01-09 22:18:23 -0600 |
commit | e2c8c918478ea967b0a18fd95af421fd048b22c3 (patch) | |
tree | 5cfa9248db1201e0fe23e6a1c85e52c90f9a28e5 | |
parent | d3d6f20ec3d4a54e3d2036dc6bd809f33c6a02e6 (diff) | |
parent | 14b00cea68f5213f574e37b463cd142208b3dbaa (diff) | |
download | etbsa-trackermap-mobile-e2c8c918478ea967b0a18fd95af421fd048b22c3.tar.gz etbsa-trackermap-mobile-e2c8c918478ea967b0a18fd95af421fd048b22c3.tar.bz2 etbsa-trackermap-mobile-e2c8c918478ea967b0a18fd95af421fd048b22c3.zip |
Merge branch 'main' of lraspi:/secret/git/repos/etbsa-trackermap-mobile
10 files changed, 53 insertions, 29 deletions
diff --git a/androidApp/build.gradle.kts b/androidApp/build.gradle.kts index f4fb316..73b9759 100644 --- a/androidApp/build.gradle.kts +++ b/androidApp/build.gradle.kts @@ -11,11 +11,11 @@ android { applicationId = "net.etbsa.etbsa" minSdk = 21 targetSdk = 31 - versionCode = 1403 - versionName = "1.3.3" + versionCode = 1405 + versionName = "1.3.5" ndk { abiFilters.clear() - //abiFilters += listOf("armeabi-v7a", "arm64-v8a") + abiFilters += listOf("armeabi-v7a", "arm64-v8a") } } buildTypes { 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 0fbf597..326fe79 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 @@ -63,6 +63,7 @@ class DevicesAdapter( unitName = unitName, unitIcon = unitIcon, statusIcon = statusIcon, + ignitionIcon = ignitionIcon, engineStopIcon = engineStopIcon, gridLayout = gridLayout, detailsButton = detailsButton, diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt index 5e2224b..2fbb25a 100644 --- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt +++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt @@ -124,6 +124,7 @@ class UnitMapFragment : Fragment() { UnitRenderData.UnitRenderViewHolder( unitName = binding.unitName, statusIcon = binding.statusIcon, + ignitionIcon = binding.ignitionIcon, engineStopIcon = binding.engineStopIcon, gridLayout = binding.gridLayout, detailsButton = binding.detailsButton, diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/shared/UnitRenderData.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/shared/UnitRenderData.kt index 9a9f85c..6e96552 100644 --- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/shared/UnitRenderData.kt +++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/shared/UnitRenderData.kt @@ -29,7 +29,6 @@ import android.widget.TextView import androidx.cardview.widget.CardView import androidx.core.content.ContextCompat import com.zerobranch.layout.SwipeLayout -import kotlinx.serialization.json.longOrNull import mx.trackermap.TrackerMap.android.R import mx.trackermap.TrackerMap.client.models.UnitInformation import mx.trackermap.TrackerMap.utils.Formatter @@ -42,6 +41,7 @@ class UnitRenderData { val unitName: TextView, val unitIcon: ImageView? = null, val statusIcon: ImageView, + val ignitionIcon: ImageView, val engineStopIcon: ImageView, val gridLayout: GridLayout, val detailsButton: Button? = null, @@ -90,20 +90,16 @@ class UnitRenderData { } /* Status icon */ - when (unit.getStatus()) { - UnitInformation.Status.ONLINE -> { - statusIcon.setColorFilter( - ContextCompat.getColor(context, R.color.colorOnline) - ) - } - UnitInformation.Status.OFFLINE -> { - statusIcon.setColorFilter( - ContextCompat.getColor(context, R.color.colorOffline) - ) - } - else -> { - statusIcon.setColorFilter(Color.GRAY) - } + if (unit.getIgnition()) { + statusIcon.setColorFilter( + ContextCompat.getColor(context, R.color.colorOnline) + ) + statusIcon.contentDescription = context.getString(R.string.unit_ignition_on) + } else { + statusIcon.setColorFilter( + ContextCompat.getColor(context, R.color.colorOffline) + ) + statusIcon.contentDescription = context.getString(R.string.unit_ignition_off) } /* Engine stop */ diff --git a/androidApp/src/main/res/drawable/device_ignition.xml b/androidApp/src/main/res/drawable/device_ignition.xml new file mode 100644 index 0000000..d2d8103 --- /dev/null +++ b/androidApp/src/main/res/drawable/device_ignition.xml @@ -0,0 +1,5 @@ +<vector android:height="14dp" android:tint="#FFAB00" + android:viewportHeight="24" android:viewportWidth="24" + android:width="14dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M21,10h-8.35C11.83,7.67 9.61,6 7,6c-3.31,0 -6,2.69 -6,6s2.69,6 6,6c2.61,0 4.83,-1.67 5.65,-4H13l2,2l2,-2l2,2l4,-4.04L21,10zM7,15c-1.65,0 -3,-1.35 -3,-3c0,-1.65 1.35,-3 3,-3s3,1.35 3,3C10,13.65 8.65,15 7,15z"/> +</vector> diff --git a/androidApp/src/main/res/layout/unit_item.xml b/androidApp/src/main/res/layout/unit_item.xml index 6946d1d..d0f827b 100644 --- a/androidApp/src/main/res/layout/unit_item.xml +++ b/androidApp/src/main/res/layout/unit_item.xml @@ -113,6 +113,15 @@ tools:ignore="ContentDescription" /> <ImageView + android:id="@+id/ignitionIcon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginEnd="5dp" + android:src="@drawable/device_ignition" + android:contentDescription="@string/unit_ignition_on" + android:visibility="gone" /> + + <ImageView android:id="@+id/engineStopIcon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/androidApp/src/main/res/layout/unit_map_fragment.xml b/androidApp/src/main/res/layout/unit_map_fragment.xml index f168662..34698f7 100644 --- a/androidApp/src/main/res/layout/unit_map_fragment.xml +++ b/androidApp/src/main/res/layout/unit_map_fragment.xml @@ -59,6 +59,15 @@ tools:ignore="ContentDescription" /> <ImageView + android:id="@+id/ignitionIcon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginEnd="5dp" + android:src="@drawable/device_ignition" + tools:ignore="ContentDescription" + android:visibility="gone" /> + + <ImageView android:id="@+id/engineStopIcon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/androidApp/src/main/res/values-es-rMX/strings.xml b/androidApp/src/main/res/values-es-rMX/strings.xml index 26e0cad..53e74a2 100644 --- a/androidApp/src/main/res/values-es-rMX/strings.xml +++ b/androidApp/src/main/res/values-es-rMX/strings.xml @@ -33,6 +33,8 @@ <!-- Unit Item --> <string name="unit_status_on">Estatus encendido</string> <string name="unit_status_off">Estatus apagado</string> + <string name="unit_ignition_on">Ignición encendida</string> + <string name="unit_ignition_off">Ignición apagada</string> <string name="unit_lock_on">Paro de motor encendido</string> <string name="unit_lock_off">Paro de motor apagado</string> <string name="unit_driver_name">Nombre del conductor</string> diff --git a/androidApp/src/main/res/values/strings.xml b/androidApp/src/main/res/values/strings.xml index c349cd8..3177ad6 100644 --- a/androidApp/src/main/res/values/strings.xml +++ b/androidApp/src/main/res/values/strings.xml @@ -47,6 +47,8 @@ <!-- Unit Item --> <string name="unit_status_on">Status on</string> <string name="unit_status_off">Status off</string> + <string name="unit_ignition_on">Ignition on</string> + <string name="unit_ignition_off">Ignition off</string> <string name="unit_lock_on">Engine stop on</string> <string name="unit_lock_off">Engine stop off</string> <string name="unit_driver_name">Driver name</string> diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/models/UnitInformation.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/models/UnitInformation.kt index 1e23396..6afa350 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/models/UnitInformation.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/models/UnitInformation.kt @@ -17,6 +17,7 @@ */ package mx.trackermap.TrackerMap.client.models +import kotlinx.serialization.json.boolean import kotlinx.serialization.json.longOrNull data class UnitInformation( @@ -31,17 +32,15 @@ data class UnitInformation( ON, OFF, UNKNOWN } - /** - * Status is calculated from speed, because status based on - * the actual connection to the server is useless for our clients. - */ - fun getStatus() = position?.speed?.let { - if (it >= 2) { - Status.ONLINE - } else { - Status.OFFLINE - } - } ?: Status.UNKNOWN + fun getStatus() = when (device.status) { + "online" -> Status.ONLINE + "offline" -> Status.OFFLINE + else -> Status.UNKNOWN + } + + fun getIgnition() = if (position?.attributes?.containsKey("ignition") == true) { + position.attributes["ignition"]?.boolean ?: false + } else false /* Many GPS devices reserve pin 1 for engine stop */ fun getEngineStop() = if (position?.attributes?.containsKey("out1") == true) { |