From 2a57b8ab5b3b1189d1229b5f9c532f270274e4e7 Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Fri, 27 Nov 2020 11:08:48 +1100 Subject: [PATCH] Fix disappearing messages --- Session/Signal/OWSConversationSettingsViewController.m | 3 ++- SessionMessagingKit/Database/Storage+Messaging.swift | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Session/Signal/OWSConversationSettingsViewController.m b/Session/Signal/OWSConversationSettingsViewController.m index ac678182e..3a34330f7 100644 --- a/Session/Signal/OWSConversationSettingsViewController.m +++ b/Session/Signal/OWSConversationSettingsViewController.m @@ -875,7 +875,8 @@ static CGRect oldframe; [infoMessage saveWithTransaction:transaction]; SNExpirationTimerUpdate *expirationTimerUpdate = [SNExpirationTimerUpdate new]; - expirationTimerUpdate.duration = self.disappearingMessagesConfiguration.durationSeconds; + BOOL isEnabled = self.disappearingMessagesConfiguration.enabled; + expirationTimerUpdate.duration = isEnabled ? self.disappearingMessagesConfiguration.durationSeconds : 0; [SNMessageSender send:expirationTimerUpdate inThread:self.thread usingTransaction:transaction]; }]; } diff --git a/SessionMessagingKit/Database/Storage+Messaging.swift b/SessionMessagingKit/Database/Storage+Messaging.swift index 0d6df572d..96a265d7d 100644 --- a/SessionMessagingKit/Database/Storage+Messaging.swift +++ b/SessionMessagingKit/Database/Storage+Messaging.swift @@ -46,6 +46,8 @@ extension Storage { /// Also touches the associated message. public func setAttachmentState(to state: TSAttachmentPointerState, for pointer: TSAttachmentPointer, associatedWith tsIncomingMessageID: String, using transaction: Any) { let transaction = transaction as! YapDatabaseReadWriteTransaction + // Workaround for some YapDatabase funkiness where pointer at this point can actually be a TSAttachmentStream + guard pointer.responds(to: #selector(setter: TSAttachmentPointer.state)) else { return } pointer.state = state pointer.save(with: transaction) guard let tsIncomingMessage = TSIncomingMessage.fetch(uniqueId: tsIncomingMessageID, transaction: transaction) else { return }