From 94e387dac2ba28a2b58a3717d8c2f1fcd6d159b6 Mon Sep 17 00:00:00 2001 From: Benoit Martins Date: Fri, 15 Nov 2024 09:51:00 +0100 Subject: [PATCH] Message can be deleted when selected --- .../Fragments/ConversationFragment.swift | 1 + .../ViewModel/ConversationViewModel.swift | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/Linphone/UI/Main/Conversations/Fragments/ConversationFragment.swift b/Linphone/UI/Main/Conversations/Fragments/ConversationFragment.swift index 5719c50f6..5de44778d 100644 --- a/Linphone/UI/Main/Conversations/Fragments/ConversationFragment.swift +++ b/Linphone/UI/Main/Conversations/Fragments/ConversationFragment.swift @@ -923,6 +923,7 @@ struct ConversationFragment: View { Divider() Button { + conversationViewModel.deleteMessage() } label: { HStack { Text("menu_delete_selected_item") diff --git a/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift b/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift index cc8ac2a67..efb321009 100644 --- a/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift +++ b/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift @@ -2260,6 +2260,18 @@ class ConversationViewModel: ObservableObject { func getAttachmentIndex(attachment: Attachment) -> Int { return self.attachments.firstIndex(where: {$0.id == attachment.id}) ?? 0 } + + func deleteMessage() { + if self.displayedConversation != nil && selectedMessage != nil && selectedMessage!.eventModel.eventLog.chatMessage != nil { + coreContext.doOnCoreQueue { _ in + self.displayedConversation!.chatRoom.deleteMessage(message: self.selectedMessage!.eventModel.eventLog.chatMessage!) + DispatchQueue.main.async { + self.conversationMessagesSection[0].rows.remove(at: self.conversationMessagesSection[0].rows.firstIndex(of: self.selectedMessage!)!) + self.selectedMessage = nil + } + } + } + } } // swiftlint:enable line_length // swiftlint:enable type_body_length