From ac30b3c7974333dc9044ac30165a64e51f605d4b Mon Sep 17 00:00:00 2001 From: Ryan ZHAO <> Date: Mon, 18 Dec 2023 13:29:45 +1100 Subject: [PATCH] fix unsend requests --- .../ConversationVC+Interaction.swift | 2 ++ .../Database/Models/Interaction.swift | 19 ++++++++++--------- .../Control Messages/UnsendRequest.swift | 2 ++ 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Session/Conversations/ConversationVC+Interaction.swift b/Session/Conversations/ConversationVC+Interaction.swift index 2f8b96c7b..74452257a 100644 --- a/Session/Conversations/ConversationVC+Interaction.swift +++ b/Session/Conversations/ConversationVC+Interaction.swift @@ -2087,6 +2087,8 @@ extension ConversationVC: cellViewModel.authorId ) ) + unsendRequest.expiresInSeconds = cellViewModel.expiresInSeconds + unsendRequest.expiresStartedAtMs = cellViewModel.expiresStartedAtMs // For incoming interactions or interactions with no serverHash just delete them locally guard cellViewModel.variant == .standardOutgoing, let serverHash: String = serverHash else { diff --git a/SessionMessagingKit/Database/Models/Interaction.swift b/SessionMessagingKit/Database/Models/Interaction.swift index 3c0c7e992..6d166b0d5 100644 --- a/SessionMessagingKit/Database/Models/Interaction.swift +++ b/SessionMessagingKit/Database/Models/Interaction.swift @@ -477,19 +477,20 @@ public extension Interaction { ) } - func withDisappearingMessagesConfiguration( - _ db: Database, - disappearingMessagesConfiguration: DisappearingMessagesConfiguration? = nil - ) -> Interaction { - if let config = disappearingMessagesConfiguration ?? (try? DisappearingMessagesConfiguration.fetchOne(db, id: self.threadId)) { - return self.with( - expiresInSeconds: config.durationSeconds, - expiresStartedAtMs: (config.type == .disappearAfterSend ? Double(self.timestampMs) : nil) - ) + func withDisappearingMessagesConfiguration(_ db: Database) -> Interaction { + if let config = try? DisappearingMessagesConfiguration.fetchOne(db, id: self.threadId) { + return self.withDisappearingMessagesConfiguration(config: config) } return self } + + func withDisappearingMessagesConfiguration(config: DisappearingMessagesConfiguration) -> Interaction { + return self.with( + expiresInSeconds: config.durationSeconds, + expiresStartedAtMs: (config.type == .disappearAfterSend ? Double(self.timestampMs) : nil) + ) + } } // MARK: - GRDB Interactions diff --git a/SessionMessagingKit/Messages/Control Messages/UnsendRequest.swift b/SessionMessagingKit/Messages/Control Messages/UnsendRequest.swift index c34fc422e..7798833f7 100644 --- a/SessionMessagingKit/Messages/Control Messages/UnsendRequest.swift +++ b/SessionMessagingKit/Messages/Control Messages/UnsendRequest.swift @@ -70,6 +70,8 @@ public final class UnsendRequest: ControlMessage { let contentProto = SNProtoContent.builder() do { contentProto.setUnsendRequest(try unsendRequestProto.build()) + // DisappearingMessagesConfiguration + setDisappearingMessagesConfigurationIfNeeded(on: contentProto) return try contentProto.build() } catch { SNLog("Couldn't construct unsend request proto from: \(self).")