diff --git a/Meshtastic Client.xcodeproj/project.pbxproj b/Meshtastic Client.xcodeproj/project.pbxproj index fbc29e02..b786ab07 100644 --- a/Meshtastic Client.xcodeproj/project.pbxproj +++ b/Meshtastic Client.xcodeproj/project.pbxproj @@ -718,7 +718,7 @@ ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CODE_SIGN_ENTITLEMENTS = MeshtasticClient/MeshtasticClient.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 9; + CURRENT_PROJECT_VERSION = 12; DEVELOPMENT_ASSET_PATHS = "\"MeshtasticClient/Preview Content\""; DEVELOPMENT_TEAM = GCH7VS5Y9R; ENABLE_PREVIEWS = YES; @@ -732,7 +732,7 @@ PRODUCT_BUNDLE_IDENTIFIER = gvh.MeshtasticClient; PRODUCT_NAME = "$(TARGET_NAME)"; SUPPORTS_MACCATALYST = YES; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,6"; }; @@ -746,7 +746,7 @@ ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CODE_SIGN_ENTITLEMENTS = MeshtasticClient/MeshtasticClient.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 9; + CURRENT_PROJECT_VERSION = 12; DEVELOPMENT_ASSET_PATHS = "\"MeshtasticClient/Preview Content\""; DEVELOPMENT_TEAM = GCH7VS5Y9R; ENABLE_PREVIEWS = YES; @@ -760,7 +760,7 @@ PRODUCT_BUNDLE_IDENTIFIER = gvh.MeshtasticClient; PRODUCT_NAME = "$(TARGET_NAME)"; SUPPORTS_MACCATALYST = YES; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,6"; }; diff --git a/MeshtasticClient/Views/Messages/UserMessageList.swift b/MeshtasticClient/Views/Messages/UserMessageList.swift index 2fd4cbb2..16d6f5dd 100644 --- a/MeshtasticClient/Views/Messages/UserMessageList.swift +++ b/MeshtasticClient/Views/Messages/UserMessageList.swift @@ -23,7 +23,7 @@ struct UserMessageList: View { @State var lastTypingMessage = "" @FocusState var focusedField: Field? - var user: UserEntity + @State var user: UserEntity @State var showDeleteMessageAlert = false @State private var deleteMessageId: Int64 = 0 @@ -57,12 +57,13 @@ struct UserMessageList: View { if message.toUser!.num == Int64(bleManager.broadcastNodeNum) || ((bleManager.connectedPeripheral) != nil && bleManager.connectedPeripheral.num == message.fromUser?.num) ? true : true { - if message.replyID > 0 { + let messageReply = allMessages.first(where: { $0.messageId == message.replyID }) + HStack { - Text(message.messagePayload ?? "EMPTY MESSAGE").foregroundColor(.blue).font(.caption2) + Text(messageReply?.messagePayload ?? "EMPTY MESSAGE").foregroundColor(.blue).font(.caption2) .padding(10) .overlay( RoundedRectangle(cornerRadius: 18) @@ -101,6 +102,7 @@ struct UserMessageList: View { if bleManager.sendMessage(message: "❤️", toUserNum: user.num, isTapback: true, replyID: message.messageId) { print("Sent ❤️ Tapback") + self.context.refresh(user, mergeChanges: true) } else { print("❤️ Tapback Failed") } @@ -114,6 +116,7 @@ struct UserMessageList: View { if bleManager.sendMessage(message: "👍", toUserNum: user.num, isTapback: true, replyID: message.messageId) { print("Sent 👍 Tapback") + self.context.refresh(user, mergeChanges: true) } else { print("👍 Tapback Failed")} @@ -127,6 +130,7 @@ struct UserMessageList: View { if bleManager.sendMessage(message: "👎", toUserNum: user.num, isTapback: true, replyID: message.messageId) { print("Sent 👎 Tapback") + self.context.refresh(user, mergeChanges: true) } else { print("👎 Tapback Failed") } @@ -140,7 +144,7 @@ struct UserMessageList: View { if bleManager.sendMessage(message: "🤣", toUserNum: user.num, isTapback: true, replyID: message.messageId) { print("Sent 🤣 Tapback") - + self.context.refresh(user, mergeChanges: true) } else { print("🤣 Tapback Failed") } @@ -154,6 +158,7 @@ struct UserMessageList: View { if bleManager.sendMessage(message: "‼️", toUserNum: user.num, isTapback: true, replyID: message.messageId) { print("Sent ‼️ Tapback") + self.context.refresh(user, mergeChanges: true) } else { print("‼️ Tapback Failed") } @@ -167,6 +172,7 @@ struct UserMessageList: View { if bleManager.sendMessage(message: "❓", toUserNum: user.num, isTapback: true, replyID: message.messageId) { print("Sent ❓ Tapback") + self.context.refresh(user, mergeChanges: true) } else { print("❓ Tapback Failed") } @@ -180,6 +186,7 @@ struct UserMessageList: View { if bleManager.sendMessage(message: "💩", toUserNum: user.num, isTapback: true, replyID: message.messageId) { print("Sent 💩 Tapback") + self.context.refresh(user, mergeChanges: true) } else { print("💩 Tapback Failed") } @@ -219,7 +226,7 @@ struct UserMessageList: View { if hasTapbackSupport { let tapbacks = message.value(forKey: "tapbacks") as! [MessageEntity] - + if tapbacks.count > 0 { @@ -311,6 +318,7 @@ struct UserMessageList: View { }) .onChange(of: user, perform: { newValue in + self.context.refresh(user, mergeChanges: true) messageCount = ((user.sentMessages?.count ?? 0) + (user.receivedMessages?.count ?? 0)) if messageCount > 0 { diff --git a/MeshtasticClient/Views/Nodes/NodeDetail.swift b/MeshtasticClient/Views/Nodes/NodeDetail.swift index 2d6f8086..8ae18b63 100644 --- a/MeshtasticClient/Views/Nodes/NodeDetail.swift +++ b/MeshtasticClient/Views/Nodes/NodeDetail.swift @@ -91,13 +91,16 @@ struct NodeDetail: View { VStack { - Image(node.user!.hwModel ?? "UNSET") - .resizable() - .frame(width: 50, height: 50) - .cornerRadius(5) + if node.user != nil { + + Image(node.user!.hwModel ?? "UNSET") + .resizable() + .frame(width: 50, height: 50) + .cornerRadius(5) - Text(String(node.user!.hwModel ?? "UNSET")) - .font(.callout).fixedSize() + Text(String(node.user!.hwModel ?? "UNSET")) + .font(.callout).fixedSize() + } } .padding(5) @@ -262,7 +265,8 @@ struct NodeDetail: View { } } } - }.ignoresSafeArea(.all, edges: [.leading, .trailing]) + } + .edgesIgnoringSafeArea([.leading, .trailing]) } } .navigationTitle(node.user!.longName ?? "Unknown")