From 43d63ae08100e71ed06346a2e87dfad700e40c59 Mon Sep 17 00:00:00 2001 From: Benoit Martins Date: Mon, 15 Sep 2025 12:07:41 +0200 Subject: [PATCH] Reset the displayed chat room also when the chat room is empty --- .../ViewModel/ConversationViewModel.swift | 36 +++++++++---------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift b/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift index f10417f51..50eab7080 100644 --- a/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift +++ b/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift @@ -2004,25 +2004,23 @@ class ConversationViewModel: ObservableObject { } func resetDisplayedChatRoom() { - if !self.conversationMessagesSection.isEmpty && !self.conversationMessagesSection[0].rows.isEmpty { - if let displayedConversation = self.sharedMainViewModel.displayedConversation { - CoreContext.shared.doOnCoreQueue { core in - let nilParams: ConferenceParams? = nil - if let newChatRoom = core.searchChatRoom(params: nilParams, localAddr: nil, remoteAddr: displayedConversation.chatRoom.peerAddress, participants: nil) { - if LinphoneUtils.getChatRoomId(room: newChatRoom) == displayedConversation.id { - self.addConversationDelegate(chatRoom: newChatRoom) - let conversation = ConversationModel(chatRoom: newChatRoom) - DispatchQueue.main.async { - self.sharedMainViewModel.displayedConversation = conversation - } - self.computeComposingLabel() - let historyEventsSizeTmp = newChatRoom.historyEventsSize - if self.displayedConversationHistorySize < historyEventsSizeTmp { - let eventLogList = newChatRoom.getHistoryRangeEvents(begin: 0, end: historyEventsSizeTmp - self.displayedConversationHistorySize) - - if !eventLogList.isEmpty { - self.getNewMessages(eventLogs: eventLogList) - } + if let displayedConversation = self.sharedMainViewModel.displayedConversation { + CoreContext.shared.doOnCoreQueue { core in + let nilParams: ConferenceParams? = nil + if let newChatRoom = core.searchChatRoom(params: nilParams, localAddr: nil, remoteAddr: displayedConversation.chatRoom.peerAddress, participants: nil) { + if LinphoneUtils.getChatRoomId(room: newChatRoom) == displayedConversation.id { + self.addConversationDelegate(chatRoom: newChatRoom) + let conversation = ConversationModel(chatRoom: newChatRoom) + DispatchQueue.main.async { + self.sharedMainViewModel.displayedConversation = conversation + } + self.computeComposingLabel() + let historyEventsSizeTmp = newChatRoom.historyEventsSize + if self.displayedConversationHistorySize < historyEventsSizeTmp { + let eventLogList = newChatRoom.getHistoryRangeEvents(begin: 0, end: historyEventsSizeTmp - self.displayedConversationHistorySize) + + if !eventLogList.isEmpty { + self.getNewMessages(eventLogs: eventLogList) } } }