diff --git a/Meshtastic/Helpers/MeshPackets.swift b/Meshtastic/Helpers/MeshPackets.swift index 29583cf4..f025093e 100644 --- a/Meshtastic/Helpers/MeshPackets.swift +++ b/Meshtastic/Helpers/MeshPackets.swift @@ -686,6 +686,7 @@ func telemetryPacket(packet: MeshPacket, connectedNode: Int64, context: NSManage let content = UNMutableNotificationContent() content.title = "Critically Low Battery!" content.body = "Time to charge your radio, there is \(telemetry.batteryLevel)% battery remaining." + content.userInfo["target"] = "node" let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 1, repeats: false) let uuidString = UUID().uuidString let request = UNNotificationRequest(identifier: uuidString, content: content, trigger: trigger) @@ -777,7 +778,6 @@ func textMessageAppPacket(packet: MeshPacket, connectedNode: Int64, context: NSM messageSaved = true if messageSaved { - if newMessage.fromUser != nil && newMessage.toUser != nil && !(newMessage.fromUser?.mute ?? false) { // Create an iOS Notification for the received DM message and schedule it immediately let manager = LocalNotificationManager() @@ -786,7 +786,9 @@ func textMessageAppPacket(packet: MeshPacket, connectedNode: Int64, context: NSM id: ("notification.id.\(newMessage.messageId)"), title: "\(newMessage.fromUser?.longName ?? "unknown".localized)", subtitle: "AKA \(newMessage.fromUser?.shortName ?? "???")", - content: messageText) + content: messageText, + target: "message" + ) ] manager.schedule() print("💬 iOS Notification Scheduled for text message from \(newMessage.fromUser?.longName ?? "unknown".localized)") @@ -813,7 +815,8 @@ func textMessageAppPacket(packet: MeshPacket, connectedNode: Int64, context: NSM id: ("notification.id.\(newMessage.messageId)"), title: "\(newMessage.fromUser?.longName ?? "unknown".localized)", subtitle: "AKA \(newMessage.fromUser?.shortName ?? "???")", - content: messageText) + content: messageText, + target: "message") ] manager.schedule() print("💬 iOS Notification Scheduled for text message from \(newMessage.fromUser?.longName ?? "unknown".localized)") @@ -879,7 +882,7 @@ func waypointPacket (packet: MeshPacket, context: NSManagedObjectContext) { title: "New Waypoint Received", subtitle: "\(icon) \(waypoint.name ?? "Dropped Pin")", content: "\(waypoint.longDescription ?? "\(latitude), \(longitude)")", - target: "waypoint" + target: "map" ) ] manager.schedule() diff --git a/Meshtastic/MeshtasticAppDelegate.swift b/Meshtastic/MeshtasticAppDelegate.swift index c04a1b51..a86e9bf9 100644 --- a/Meshtastic/MeshtasticAppDelegate.swift +++ b/Meshtastic/MeshtasticAppDelegate.swift @@ -22,16 +22,17 @@ class MeshtasticAppDelegate: NSObject, UIApplicationDelegate, UNUserNotification func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { let userInfo = response.notification.request.content.userInfo - if let targetValue = userInfo["target"] as? String, targetValue == "waypoint" - { - openWaypoint() + let targetValue = userInfo["target"] as? String + if targetValue == "map" { + AppState.shared.tabSelection = Tab.map } - + else if targetValue == "message" { + AppState.shared.tabSelection = Tab.messages + } + else if targetValue == "node" { + AppState.shared.tabSelection = Tab.nodes + } + completionHandler() } - - private func openWaypoint() - { - AppState.shared.tabSelection = Tab.map - } }