fix logic error for message ttl

pull/731/head
Ryan ZHAO 7 months ago
parent 3667d304f2
commit 79eafa7df8

@ -196,20 +196,24 @@ extension MessageSender {
// MARK: - Convenience // MARK: - Convenience
internal static func getSpecifiedTTL( internal static func getSpecifiedTTL(
_ db: Database,
threadId: String,
message: Message, message: Message,
isSyncMessage: Bool isSyncMessage: Bool
) -> UInt64? { ) -> UInt64? {
guard guard let expiresInSeconds = message.expiresInSeconds else { return nil }
let disappearingMessagesConfiguration = try? DisappearingMessagesConfiguration.fetchOne(db, id: threadId),
disappearingMessagesConfiguration.isEnabled, // Sync message
( if isSyncMessage {
disappearingMessagesConfiguration.type == .disappearAfterSend || return UInt64(expiresInSeconds * 1000)
isSyncMessage }
)
else { return nil } // 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
} }
} }

@ -349,7 +349,7 @@ public final class MessageSender {
recipient: message.recipient!, recipient: message.recipient!,
data: base64EncodedData, data: base64EncodedData,
ttl: MessageSender ttl: MessageSender
.getSpecifiedTTL(db, threadId: threadId, message: message, isSyncMessage: isSyncMessage) .getSpecifiedTTL(message: message, isSyncMessage: isSyncMessage)
.defaulting(to: message.ttl), .defaulting(to: message.ttl),
timestampMs: UInt64(messageSendTimestamp) timestampMs: UInt64(messageSendTimestamp)
) )

Loading…
Cancel
Save