From e007870c3429716134d30d2315ce80f5da8a2c69 Mon Sep 17 00:00:00 2001 From: Morgan Pretty Date: Fri, 12 Aug 2022 08:32:31 +1000 Subject: [PATCH] Fixed a bug where disappearing messages weren't working for local outgoing messages --- .../ConversationVC+Interaction.swift | 16 ++++++++++++++-- Session/Notifications/AppNotifications.swift | 8 +++++++- .../Database/Models/OpenGroup.swift | 6 ++++++ SessionShareExtension/ThreadPickerVC.swift | 6 ++++++ 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/Session/Conversations/ConversationVC+Interaction.swift b/Session/Conversations/ConversationVC+Interaction.swift index caef86415..fab17974c 100644 --- a/Session/Conversations/ConversationVC+Interaction.swift +++ b/Session/Conversations/ConversationVC+Interaction.swift @@ -369,9 +369,15 @@ extension ConversationVC: body: text, timestampMs: sentTimestampMs, hasMention: Interaction.isUserMentioned(db, threadId: threadId, body: text), + expiresInSeconds: try? DisappearingMessagesConfiguration + .select(.durationSeconds) + .filter(id: threadId) + .filter(DisappearingMessagesConfiguration.Columns.isEnabled == true) + .asRequest(of: TimeInterval.self) + .fetchOne(db), linkPreviewUrl: linkPreviewDraft?.urlString ).inserted(db) - + // If there is a LinkPreview and it doesn't match an existing one then add it now if let linkPreviewDraft: LinkPreviewDraft = linkPreviewDraft, @@ -459,7 +465,13 @@ extension ConversationVC: variant: .standardOutgoing, body: text, timestampMs: sentTimestampMs, - hasMention: Interaction.isUserMentioned(db, threadId: threadId, body: text) + hasMention: Interaction.isUserMentioned(db, threadId: threadId, body: text), + expiresInSeconds: try? DisappearingMessagesConfiguration + .select(.durationSeconds) + .filter(id: threadId) + .filter(DisappearingMessagesConfiguration.Columns.isEnabled == true) + .asRequest(of: TimeInterval.self) + .fetchOne(db) ).inserted(db) try MessageSender.send( diff --git a/Session/Notifications/AppNotifications.swift b/Session/Notifications/AppNotifications.swift index 96463a3f8..e894f5ad6 100644 --- a/Session/Notifications/AppNotifications.swift +++ b/Session/Notifications/AppNotifications.swift @@ -436,7 +436,13 @@ class NotificationActionHandler { variant: .standardOutgoing, body: replyText, timestampMs: Int64(floor(Date().timeIntervalSince1970 * 1000)), - hasMention: Interaction.isUserMentioned(db, threadId: threadId, body: replyText) + hasMention: Interaction.isUserMentioned(db, threadId: threadId, body: replyText), + expiresInSeconds: try? DisappearingMessagesConfiguration + .select(.durationSeconds) + .filter(id: threadId) + .filter(DisappearingMessagesConfiguration.Columns.isEnabled == true) + .asRequest(of: TimeInterval.self) + .fetchOne(db) ).inserted(db) try Interaction.markAsRead( diff --git a/SessionMessagingKit/Database/Models/OpenGroup.swift b/SessionMessagingKit/Database/Models/OpenGroup.swift index 71912d32d..b9a879e07 100644 --- a/SessionMessagingKit/Database/Models/OpenGroup.swift +++ b/SessionMessagingKit/Database/Models/OpenGroup.swift @@ -233,6 +233,12 @@ public class SMKOpenGroup: NSObject { authorId: userId, variant: .standardOutgoing, timestampMs: Int64(floor(Date().timeIntervalSince1970 * 1000)), + expiresInSeconds: try? DisappearingMessagesConfiguration + .select(.durationSeconds) + .filter(id: userId) + .filter(DisappearingMessagesConfiguration.Columns.isEnabled == true) + .asRequest(of: TimeInterval.self) + .fetchOne(db), linkPreviewUrl: urlString ) .saved(db) diff --git a/SessionShareExtension/ThreadPickerVC.swift b/SessionShareExtension/ThreadPickerVC.swift index b75214326..4d3352558 100644 --- a/SessionShareExtension/ThreadPickerVC.swift +++ b/SessionShareExtension/ThreadPickerVC.swift @@ -236,6 +236,12 @@ final class ThreadPickerVC: UIViewController, UITableViewDataSource, UITableView body: body, timestampMs: Int64(floor(Date().timeIntervalSince1970 * 1000)), hasMention: Interaction.isUserMentioned(db, threadId: threadId, body: body), + expiresInSeconds: try? DisappearingMessagesConfiguration + .select(.durationSeconds) + .filter(id: threadId) + .filter(DisappearingMessagesConfiguration.Columns.isEnabled == true) + .asRequest(of: TimeInterval.self) + .fetchOne(db), linkPreviewUrl: (isSharingUrl ? attachments.first?.linkPreviewDraft?.urlString : nil) ).inserted(db)