diff --git a/SessionMessagingKit/Sending & Receiving/MessageSender+Convenience.swift b/SessionMessagingKit/Sending & Receiving/MessageSender+Convenience.swift index 9892fa027..d30c4372b 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageSender+Convenience.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageSender+Convenience.swift @@ -196,20 +196,24 @@ extension MessageSender { // MARK: - Convenience internal static func getSpecifiedTTL( - _ db: Database, - threadId: String, message: Message, isSyncMessage: Bool ) -> UInt64? { - guard - let disappearingMessagesConfiguration = try? DisappearingMessagesConfiguration.fetchOne(db, id: threadId), - disappearingMessagesConfiguration.isEnabled, - ( - disappearingMessagesConfiguration.type == .disappearAfterSend || - isSyncMessage - ) - else { return nil } + guard let expiresInSeconds = message.expiresInSeconds else { return nil } + + // Sync message + if isSyncMessage { + return UInt64(expiresInSeconds * 1000) + } + + // Disappear after send + if let expiresStartedAtMs = message.expiresStartedAtMs, + let sentTimestamp = message.sentTimestamp, + UInt64(expiresStartedAtMs) == sentTimestamp + { + return UInt64(expiresInSeconds * 1000) + } - return UInt64(disappearingMessagesConfiguration.durationSeconds * 1000) + return nil } } diff --git a/SessionMessagingKit/Sending & Receiving/MessageSender.swift b/SessionMessagingKit/Sending & Receiving/MessageSender.swift index 4fc8b0fab..fa80e6450 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageSender.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageSender.swift @@ -349,7 +349,7 @@ public final class MessageSender { recipient: message.recipient!, data: base64EncodedData, ttl: MessageSender - .getSpecifiedTTL(db, threadId: threadId, message: message, isSyncMessage: isSyncMessage) + .getSpecifiedTTL(message: message, isSyncMessage: isSyncMessage) .defaulting(to: message.ttl), timestampMs: UInt64(messageSendTimestamp) )