From e3dd3f5a86e55ded85b66dfc42cfc08f0eddc614 Mon Sep 17 00:00:00 2001 From: Benoit Martins Date: Mon, 27 Jan 2025 16:45:53 +0100 Subject: [PATCH] Prevent index out of range in conversationMessagesSection rows --- .../ViewModel/ConversationViewModel.swift | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift b/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift index 67626bab1..848dda5aa 100644 --- a/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift +++ b/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift @@ -311,18 +311,18 @@ class ConversationViewModel: ObservableObject { } } } - - if let indexMessageEventLogId = self.conversationMessagesSection[0].rows.firstIndex(where: {$0.eventModel.eventLogId.isEmpty && $0.eventModel.eventLog.chatMessage != nil ? $0.eventModel.eventLog.chatMessage!.messageId == message.messageId : false}) { - DispatchQueue.main.async { - self.conversationMessagesSection[0].rows[indexMessageEventLogId].eventModel.eventLogId = message.messageId + if !self.conversationMessagesSection.isEmpty, + !self.conversationMessagesSection[0].rows.isEmpty { + if let indexMessageEventLogId = self.conversationMessagesSection[0].rows.firstIndex(where: {$0.eventModel.eventLogId.isEmpty && $0.eventModel.eventLog.chatMessage != nil ? $0.eventModel.eventLog.chatMessage!.messageId == message.messageId : false}) { + DispatchQueue.main.async { + self.conversationMessagesSection[0].rows[indexMessageEventLogId].eventModel.eventLogId = message.messageId + } } - } - - let indexMessage = self.conversationMessagesSection[0].rows.firstIndex(where: {$0.eventModel.eventLogId == message.messageId}) - - DispatchQueue.main.async { - if indexMessage != nil { - self.conversationMessagesSection[0].rows[indexMessage!].message.status = statusTmp ?? .error + + if let indexMessage = self.conversationMessagesSection[0].rows.firstIndex(where: {$0.eventModel.eventLogId == message.messageId}) { + DispatchQueue.main.async { + self.conversationMessagesSection[0].rows[indexMessage].message.status = statusTmp ?? .error + } } } }, onNewMessageReaction: { (message: ChatMessage, _: ChatMessageReaction) in