From 6ede4ed3bd45a1ac26e3ac7e7d7978dd95b54de7 Mon Sep 17 00:00:00 2001 From: Andre K Date: Sat, 10 Dec 2022 00:14:32 -0300 Subject: [PATCH] fix broadcastMessageStatus (#535) --- .../geeksville/mesh/service/MeshService.kt | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 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 d9a409c09..5e363a233 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt @@ -837,7 +837,7 @@ class MeshService : Service(), Logging { serviceScope.handledLaunch { packetRepository.get().updateMessageStatus(p, m) } - serviceBroadcasts.broadcastMessageStatus(p) + serviceBroadcasts.broadcastMessageStatus(p.copy(status = m)) } /** @@ -1628,19 +1628,11 @@ class MeshService : Service(), Logging { if (p.dataType == 0) throw Exception("Port numbers must be non-zero!") // we are now more strict - // Keep a record of datapackets, so GUIs can show proper chat history - rememberDataPacket(p) - if (p.bytes.size >= MeshProtos.Constants.DATA_PAYLOAD_LEN.number) { p.status = MessageStatus.ERROR throw RemoteException("Message too long") } - if (p.id != 0) { // If we have an ID we can wait for an ack or nak - deleteOldPackets() - sentPackets[p.id] = p - } - // If radio is sleeping or disconnected, queue the packet when (connectionState) { ConnectionState.CONNECTED -> @@ -1654,6 +1646,15 @@ class MeshService : Service(), Logging { else -> // sleeping or disconnected enqueueForSending(p) } + serviceBroadcasts.broadcastMessageStatus(p) + + // Keep a record of datapackets, so GUIs can show proper chat history + rememberDataPacket(p) + + if (p.id != 0) { // If we have an ID we can wait for an ack or nak + deleteOldPackets() + sentPackets[p.id] = p + } GeeksvilleApplication.analytics.track( "data_send",