Check whether the new message received is different from the first message in the list

This commit is contained in:
Benoit Martins 2024-10-03 17:45:19 +02:00
parent d1148cca1c
commit 423fb56401
2 changed files with 38 additions and 18 deletions

View file

@ -6,9 +6,15 @@
},
" et " : {
},
" has reacted by " : {
},
" or " : {
},
" to: " : {
},
"." : {
@ -141,6 +147,15 @@
},
"👍" : {
},
"📅 Meeting has been cancelled" : {
},
"📅 Meeting has been modified" : {
},
"📅 You are invited to a meeting" : {
},
"😂" : {
@ -1912,6 +1927,9 @@
},
"Message copied into clipboard" : {
},
"Message received" : {
},
"message_delivery_info_error_title" : {
"extractionState" : "manual",

View file

@ -937,25 +937,27 @@ class ConversationViewModel: ObservableObject {
)
)
self.addChatMessageDelegate(message: eventLog.chatMessage!)
DispatchQueue.main.async {
Log.info("[ConversationViewModel] Get new Messages \(self.conversationMessagesSection.count)")
if !self.conversationMessagesSection.isEmpty
&& !self.conversationMessagesSection[0].rows.isEmpty
&& self.conversationMessagesSection[0].rows[0].message.isOutgoing
&& (self.conversationMessagesSection[0].rows[0].message.address == message.message.address) {
self.conversationMessagesSection[0].rows[0].message.isFirstMessage = false
}
if self.conversationMessagesSection[0].rows.first?.eventModel.eventLog.chatMessage?.messageId != eventLog.chatMessage?.messageId {
self.addChatMessageDelegate(message: eventLog.chatMessage!)
if self.conversationMessagesSection.isEmpty && self.displayedConversation != nil {
self.conversationMessagesSection.append(MessagesSection(date: Date(), chatRoomID: self.displayedConversation!.id, rows: [message]))
} else {
self.conversationMessagesSection[0].rows.insert(message, at: 0)
}
if !message.message.isOutgoing {
self.displayedConversationUnreadMessagesCount = unreadMessagesCount
DispatchQueue.main.async {
Log.info("[ConversationViewModel] Get new Messages \(self.conversationMessagesSection.count)")
if !self.conversationMessagesSection.isEmpty
&& !self.conversationMessagesSection[0].rows.isEmpty
&& self.conversationMessagesSection[0].rows[0].message.isOutgoing
&& (self.conversationMessagesSection[0].rows[0].message.address == message.message.address) {
self.conversationMessagesSection[0].rows[0].message.isFirstMessage = false
}
if self.conversationMessagesSection.isEmpty && self.displayedConversation != nil {
self.conversationMessagesSection.append(MessagesSection(date: Date(), chatRoomID: self.displayedConversation!.id, rows: [message]))
} else {
self.conversationMessagesSection[0].rows.insert(message, at: 0)
}
if !message.message.isOutgoing {
self.displayedConversationUnreadMessagesCount = unreadMessagesCount
}
}
}
} else {