From 5e7af19a596f6144b09933c0232ecda3e8c659c4 Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Fri, 26 Sep 2025 22:09:08 -0700 Subject: [PATCH] clean up toUser logic --- Meshtastic/Helpers/MeshPackets.swift | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/Meshtastic/Helpers/MeshPackets.swift b/Meshtastic/Helpers/MeshPackets.swift index ddc19e5e..c4639051 100644 --- a/Meshtastic/Helpers/MeshPackets.swift +++ b/Meshtastic/Helpers/MeshPackets.swift @@ -944,25 +944,26 @@ func textMessageAppPacket( newMessage.replyID = Int64(packet.decoded.replyID) } // Updated logic for handling toUser - if fetchedUsers.first(where: { $0.num == packet.to }) != nil && packet.to != Constants.maximumNodeNum { + // Updated logic for handling toUser + if packet.to != Constants.maximumNodeNum, let existingUser = fetchedUsers.first(where: { $0.num == packet.to }) { if !storeForwardBroadcast { - newMessage.toUser = fetchedUsers.first(where: { $0.num == packet.to }) + newMessage.toUser = existingUser } else if storeForwardBroadcast { // For S&F broadcast messages, treat as a channel message (not a DM) newMessage.toUser = nil - } else { - do { - let newUser = try createUser(num: Int64(truncatingIfNeeded: packet.to), context: context) - newMessage.toUser = newUser - } catch CoreDataError.invalidInput(let message) { - Logger.data.error("Error Creating a new Core Data UserEntity (Invalid Input) from node number: \(packet.to, privacy: .public) Error: \(message, privacy: .public)") - } catch { - Logger.data.error("Error Creating a new Core Data UserEntity from node number: \(packet.to, privacy: .public) Error: \(error.localizedDescription, privacy: .public)") - } + } + } else { + do { + let newUser = try createUser(num: Int64(truncatingIfNeeded: packet.to), context: context) + newMessage.toUser = newUser + } catch CoreDataError.invalidInput(let message) { + Logger.data.error("Error Creating a new Core Data UserEntity (Invalid Input) from node number: \(packet.to, privacy: .public) Error: \(message, privacy: .public)") + } catch { + Logger.data.error("Error Creating a new Core Data UserEntity from node number: \(packet.to, privacy: .public) Error: \(error.localizedDescription, privacy: .public)") } } - if fetchedUsers.first(where: { $0.num == packet.from }) != nil { - newMessage.fromUser = fetchedUsers.first(where: { $0.num == packet.from }) + if let existingUser = fetchedUsers.first(where: { $0.num == packet.from }) { + newMessage.fromUser = existingUser /// Set the public key for the message if newMessage.fromUser?.pkiEncrypted ?? false && packet.pkiEncrypted { newMessage.pkiEncrypted = true