aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2023-01-09 22:18:23 -0600
committerIván Ávalos <avalos@disroot.org>2023-01-09 22:18:23 -0600
commite2c8c918478ea967b0a18fd95af421fd048b22c3 (patch)
tree5cfa9248db1201e0fe23e6a1c85e52c90f9a28e5
parentd3d6f20ec3d4a54e3d2036dc6bd809f33c6a02e6 (diff)
parent14b00cea68f5213f574e37b463cd142208b3dbaa (diff)
downloadetbsa-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
-rw-r--r--androidApp/build.gradle.kts6
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/devices/DevicesAdapter.kt1
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt1
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/shared/UnitRenderData.kt26
-rw-r--r--androidApp/src/main/res/drawable/device_ignition.xml5
-rw-r--r--androidApp/src/main/res/layout/unit_item.xml9
-rw-r--r--androidApp/src/main/res/layout/unit_map_fragment.xml9
-rw-r--r--androidApp/src/main/res/values-es-rMX/strings.xml2
-rw-r--r--androidApp/src/main/res/values/strings.xml2
-rw-r--r--shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/models/UnitInformation.kt21
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) {