From 879c55906eb9060b31742d447fd1d0a6cf0d6063 Mon Sep 17 00:00:00 2001 From: Ryan Zhao Date: Thu, 17 Nov 2022 15:58:08 +1100 Subject: [PATCH] fix disappear after send --- .../Message Handling/MessageReceiver+VisibleMessages.swift | 2 +- .../Sending & Receiving/MessageReceiver.swift | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+VisibleMessages.swift b/SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+VisibleMessages.swift index 2eec5e70e..4cda81fd5 100644 --- a/SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+VisibleMessages.swift +++ b/SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+VisibleMessages.swift @@ -97,7 +97,7 @@ extension MessageReceiver { let disappearingMessagesConfiguration: DisappearingMessagesConfiguration = (try? thread.disappearingMessagesConfiguration.fetchOne(db)) .defaulting(to: DisappearingMessagesConfiguration.defaultWith(thread.id)) - let expiresStartedAtMs: Double? = (disappearingMessagesConfiguration.isEnabled && disappearingMessagesConfiguration.type == .disappearAfterSend) ? messageSentTimestamp : nil + let expiresStartedAtMs: Double? = (disappearingMessagesConfiguration.isEnabled && disappearingMessagesConfiguration.type == .disappearAfterSend) ? Double(message.sentTimestamp ?? 0) : nil // Try to insert the interaction // diff --git a/SessionMessagingKit/Sending & Receiving/MessageReceiver.swift b/SessionMessagingKit/Sending & Receiving/MessageReceiver.swift index fad08fc7a..1e6f6f773 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageReceiver.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageReceiver.swift @@ -259,6 +259,13 @@ public enum MessageReceiver { .fetchOrCreate(db, id: threadInfo.id, variant: threadInfo.variant) .with(shouldBeVisible: true) .saved(db) + + // Start the disappearing messages timer if needed + // For disappear after send, this is necessary so the message will disappear even if it is not read + JobRunner.upsert( + db, + job: DisappearingMessagesJob.updateNextRunIfNeeded(db) + ) } }