bring back false deleted logic

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

@ -373,6 +373,23 @@ public struct Interaction: Codable, Identifiable, Equatable, FetchableRecord, Mu
// Automatically mark interactions which can't be unread as read so the unread count
// isn't impacted
self.wasRead = (self.wasRead || !self.variant.canBeUnread)
// Automatically add disapeparing messages configuration
if self.variant.shouldFollowDisappearingMessagesConfiguration,
self.expiresInSeconds == nil,
self.expiresStartedAtMs == nil
{
guard
let disappearingMessagesConfiguration = try? DisappearingMessagesConfiguration.fetchOne(db, id: self.threadId),
disappearingMessagesConfiguration.isEnabled
else {
self.expiresInSeconds = 0
return
}
self.expiresInSeconds = disappearingMessagesConfiguration.durationSeconds
}
}
public func aroundInsert(_ db: Database, insert: () throws -> InsertionSuccess) throws {

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

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

Loading…
Cancel
Save