From 8436d7b76f6ccb46c889a1de737308c4f04c832b Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Thu, 1 Aug 2024 21:51:01 -0700 Subject: [PATCH] Position enchange notificaton --- Meshtastic/Helpers/BLEManager.swift | 2 +- Meshtastic/Persistence/UpdateCoreData.swift | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Meshtastic/Helpers/BLEManager.swift b/Meshtastic/Helpers/BLEManager.swift index 93879e02..a04c78af 100644 --- a/Meshtastic/Helpers/BLEManager.swift +++ b/Meshtastic/Helpers/BLEManager.swift @@ -751,7 +751,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, MqttClientProxyManagerDelegate case .remoteHardwareApp: MeshLogger.log("πŸ•ΈοΈ MESH PACKET received for Remote Hardware App UNHANDLED \((try? decodedInfo.packet.jsonString()) ?? "JSON Decode Failure")") case .positionApp: - upsertPositionPacket(packet: decodedInfo.packet, context: context) + upsertPositionPacket(packet: decodedInfo.packet, connectedNodeNum: self.connectedPeripheral.num, context: context) case .waypointApp: waypointPacket(packet: decodedInfo.packet, context: context) case .nodeinfoApp: diff --git a/Meshtastic/Persistence/UpdateCoreData.swift b/Meshtastic/Persistence/UpdateCoreData.swift index 2a525d07..b2cc65e7 100644 --- a/Meshtastic/Persistence/UpdateCoreData.swift +++ b/Meshtastic/Persistence/UpdateCoreData.swift @@ -280,7 +280,7 @@ func upsertNodeInfoPacket (packet: MeshPacket, context: NSManagedObjectContext) } } -func upsertPositionPacket (packet: MeshPacket, context: NSManagedObjectContext) { +func upsertPositionPacket (packet: MeshPacket, connectedNodeNum: Int64, context: NSManagedObjectContext) { let logString = String.localizedStringWithFormat("mesh.log.position.received %@".localized, String(packet.from)) MeshLogger.log("πŸ“ \(logString)") @@ -358,14 +358,14 @@ func upsertPositionPacket (packet: MeshPacket, context: NSManagedObjectContext) try context.save() Logger.data.info("πŸ’Ύ [Position] Saved from Position App Packet For: \(fetchedNode[0].num.toHex(), privacy: .public)") // Notification for position exchanges - if packet.from != 4294967295 { + if packet.from != 4294967295 && packet.to == UInt32(truncatingIfNeeded: connectedNodeNum) { let manager = LocalNotificationManager() manager.notifications = [ Notification( id: (UUID().uuidString), title: "Position Exchange", - subtitle: "\(packet.from.toHex()) replied with a position for \(packet.to.toHex())", - content: "From User has shared their location with you.", + subtitle: "\(fetchedNode[0].user?.shortName ?? "unknown".localized)", + content: "\(fetchedNode[0].user?.longName ?? "unknown".localized) has shared their location with you.", target: "nodes", path: "meshtastic:///nodes?nodenum=\(packet.from)&detail=nodeMap" )