diff --git a/Linphone/Localizable.xcstrings b/Linphone/Localizable.xcstrings index 205ff1ae7..f225dd1d9 100644 --- a/Linphone/Localizable.xcstrings +++ b/Linphone/Localizable.xcstrings @@ -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", diff --git a/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift b/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift index 40ca23567..da8a6fde1 100644 --- a/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift +++ b/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift @@ -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 {