From b22fe40d6e858da10f8acf5f6dfada19449ad308 Mon Sep 17 00:00:00 2001 From: Ryan ZHAO <> Date: Mon, 11 Dec 2023 16:22:05 +1100 Subject: [PATCH] fix an issue where received expiration update control message should already be read --- .../DisappearingMessageConfiguration.swift | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/SessionMessagingKit/Database/Models/DisappearingMessageConfiguration.swift b/SessionMessagingKit/Database/Models/DisappearingMessageConfiguration.swift index ed0130408..4cea9b07b 100644 --- a/SessionMessagingKit/Database/Models/DisappearingMessageConfiguration.swift +++ b/SessionMessagingKit/Database/Models/DisappearingMessageConfiguration.swift @@ -276,6 +276,22 @@ public extension DisappearingMessagesConfiguration { } } + let expiresStartedAtMs: Double? = { + if updatedConfiguration.type == .disappearAfterSend || + SessionUtil.timestampAlreadyRead( + threadId: threadId, + threadVariant: threadVariant, + timestampMs: timestampMs, + userPublicKey: getUserHexEncodedPublicKey(db), + openGroup: nil + ) + { + return Double(timestampMs) + } + + return nil + }() + let interaction = try Interaction( serverHash: serverHash, threadId: threadId, @@ -288,7 +304,7 @@ public extension DisappearingMessagesConfiguration { ), timestampMs: timestampMs, expiresInSeconds: updatedConfiguration.durationSeconds, - expiresStartedAtMs: (updatedConfiguration.type == .disappearAfterSend ? Double(timestampMs) : nil) + expiresStartedAtMs: expiresStartedAtMs ).inserted(db) return interaction.id