From c3ec67a9babf568750c5d0589a66265a27925a9c Mon Sep 17 00:00:00 2001 From: andrekir Date: Fri, 25 Aug 2023 17:19:39 -0300 Subject: [PATCH] feat: add waypoint notifications closes #665 --- .../com/geeksville/mesh/service/MeshService.kt | 16 ++++++++++++---- app/src/main/res/values/strings.xml | 1 + 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt index 3e9768b05..969644f07 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt @@ -223,10 +223,17 @@ class MeshService : Service(), Logging { startPacketQueue() } - private fun updateMessageNotification(message: DataPacket) = - serviceNotifications.updateMessageNotification( - getSenderName(message), message.bytes!!.decodeToString() - ) + private fun updateMessageNotification(dataPacket: DataPacket) { + val message: String = when (dataPacket.dataType) { + Portnums.PortNum.TEXT_MESSAGE_APP_VALUE -> dataPacket.text!! + Portnums.PortNum.WAYPOINT_APP_VALUE -> { + getString(R.string.waypoint_received, dataPacket.waypoint!!.name) + } + + else -> return + } + serviceNotifications.updateMessageNotification(getSenderName(dataPacket), message) + } override fun onCreate() { super.onCreate() @@ -625,6 +632,7 @@ class MeshService : Service(), Logging { // Validate locked Waypoints from the original sender if (u.lockedTo != 0 && u.lockedTo != packet.from) return rememberDataPacket(dataPacket) + if (u.expire > currentSecond()) updateMessageNotification(dataPacket) } // Handle new style position info diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 86f1fa7cd..56ac98770 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -177,4 +177,5 @@ Edit waypoint Delete waypoint? New waypoint + Received waypoint: %s