Do NOT expire control messages in groups

pull/731/head
Ryan ZHAO 7 months ago
parent e38fb400ea
commit ff691529c4

@ -303,8 +303,8 @@ public extension DisappearingMessagesConfiguration {
isPreviousOff: isPreviousOff isPreviousOff: isPreviousOff
), ),
timestampMs: timestampMs, timestampMs: timestampMs,
expiresInSeconds: updatedConfiguration.durationSeconds, expiresInSeconds: (threadVariant == .legacyGroup ? nil : updatedConfiguration.durationSeconds), // Do not expire this control message in legacy groups
expiresStartedAtMs: expiresStartedAtMs expiresStartedAtMs: (threadVariant == .legacyGroup ? nil : expiresStartedAtMs)
).inserted(db) ).inserted(db)
return interaction.id return interaction.id

@ -225,7 +225,7 @@ public extension VisibleMessage {
static func from(_ db: Database, interaction: Interaction) -> VisibleMessage { static func from(_ db: Database, interaction: Interaction) -> VisibleMessage {
let linkPreview: LinkPreview? = try? interaction.linkPreview.fetchOne(db) let linkPreview: LinkPreview? = try? interaction.linkPreview.fetchOne(db)
var visibleMessage: VisibleMessage = VisibleMessage( let visibleMessage: VisibleMessage = VisibleMessage(
sender: interaction.authorId, sender: interaction.authorId,
sentTimestamp: UInt64(interaction.timestampMs), sentTimestamp: UInt64(interaction.timestampMs),
recipient: (try? interaction.recipientStates.fetchOne(db))?.recipientId, recipient: (try? interaction.recipientStates.fetchOne(db))?.recipientId,

@ -670,6 +670,7 @@ extension MessageReceiver {
guard ClosedGroup.filter(id: threadId).isNotEmpty(db) else { return } guard ClosedGroup.filter(id: threadId).isNotEmpty(db) else { return }
// Insert the info message for this group control message // Insert the info message for this group control message
// Note: Control messages for legacy groups are not affected by disappearing messages setting
_ = try Interaction( _ = try Interaction(
serverHash: message.serverHash, serverHash: message.serverHash,
threadId: threadId, threadId: threadId,
@ -680,9 +681,7 @@ extension MessageReceiver {
timestampMs: ( timestampMs: (
message.sentTimestamp.map { Int64($0) } ?? message.sentTimestamp.map { Int64($0) } ??
SnodeAPI.currentOffsetTimestampMs() SnodeAPI.currentOffsetTimestampMs()
), )
expiresInSeconds: message.expiresInSeconds,
expiresStartedAtMs: message.expiresStartedAtMs
).inserted(db) ).inserted(db)
} }
} }

Loading…
Cancel
Save