Do NOT expire control messages in groups

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

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

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

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

Loading…
Cancel
Save