diff --git a/Session/Conversations/ConversationVC+Interaction.swift b/Session/Conversations/ConversationVC+Interaction.swift index 21c8c636d..9428784d0 100644 --- a/Session/Conversations/ConversationVC+Interaction.swift +++ b/Session/Conversations/ConversationVC+Interaction.swift @@ -549,8 +549,7 @@ extension ConversationVC : InputViewDelegate, MessageCellDelegate, ContextMenuAc let _ = self.contextMenuVC?.updateMenu(forDelete: true) } - func deleteLocally(_ viewItem: ConversationViewItem) { - viewItem.deleteLocallyAction() + private func buildUsendRequest(_ viewItem: ConversationViewItem) -> UnsendRequest? { let unsendRequest = UnsendRequest() switch viewItem.interaction.interactionType() { case .incomingMessage: @@ -558,17 +557,29 @@ extension ConversationVC : InputViewDelegate, MessageCellDelegate, ContextMenuAc unsendRequest.author = incomingMessage.authorId } case .outgoingMessage: unsendRequest.author = getUserHexEncodedPublicKey() - default: return // Should never occur + default: return nil// Should never occur } unsendRequest.timestamp = viewItem.interaction.timestamp - SNMessagingKitConfiguration.shared.storage.write { transaction in - MessageSender.send(unsendRequest, in: self.thread, using: transaction as! YapDatabaseReadWriteTransaction) + return unsendRequest + } + + func deleteLocally(_ viewItem: ConversationViewItem) { + viewItem.deleteLocallyAction() + if let unsendRequest = buildUsendRequest(viewItem) { + SNMessagingKitConfiguration.shared.storage.write { transaction in + MessageSender.send(unsendRequest, to: .contact(publicKey: getUserHexEncodedPublicKey()), using: transaction).retainUntilComplete() + } } } func deleteForEveryone(_ viewItem: ConversationViewItem) { + viewItem.deleteLocallyAction() viewItem.deleteRemotelyAction() - deleteLocally(viewItem) + if let unsendRequest = buildUsendRequest(viewItem) { + SNMessagingKitConfiguration.shared.storage.write { transaction in + MessageSender.send(unsendRequest, in: self.thread, using: transaction as! YapDatabaseReadWriteTransaction) + } + } } func save(_ viewItem: ConversationViewItem) {