Refresm usermessagelist better for fetched properties

This commit is contained in:
Garth Vander Houwen 2022-01-06 08:41:44 -08:00
parent 9694637b58
commit 1171ea53c8
3 changed files with 28 additions and 16 deletions

View file

@ -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";
};

View file

@ -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 {

View file

@ -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")