fix disappearing messages update control messages for legacy groups and linked devices

pull/731/head
Ryan ZHAO 7 months ago
parent 74efe8cc72
commit 42f2440067

@ -479,11 +479,21 @@ class ThreadDisappearingMessagesSettingsViewModel: SessionTableViewModel, Naviga
let userPublicKey: String = getUserHexEncodedPublicKey(db, using: dependencies)
if Features.useNewDisappearingMessagesConfig {
_ = try Interaction
.filter(Interaction.Columns.threadId == threadId)
.filter(Interaction.Columns.variant == Interaction.Variant.infoDisappearingMessagesUpdate)
.filter(Interaction.Columns.authorId == userPublicKey) // FIXME: Remove all in legacy groups
.deleteAll(db)
switch threadVariant {
case .contact:
_ = try Interaction
.filter(Interaction.Columns.threadId == threadId)
.filter(Interaction.Columns.variant == Interaction.Variant.infoDisappearingMessagesUpdate)
.filter(Interaction.Columns.authorId == userPublicKey)
.deleteAll(db)
case .legacyGroup:
_ = try Interaction
.filter(Interaction.Columns.threadId == threadId)
.filter(Interaction.Columns.variant == Interaction.Variant.infoDisappearingMessagesUpdate)
.deleteAll(db)
default:
break
}
}
let currentTimestampMs: Int64 = SnodeAPI.currentOffsetTimestampMs()

@ -225,6 +225,22 @@ extension MessageReceiver {
) throws {
guard threadVariant != .contact || authorId != getUserHexEncodedPublicKey(db) else { return }
switch threadVariant {
case .contact:
_ = try Interaction
.filter(Interaction.Columns.threadId == threadId)
.filter(Interaction.Columns.variant == Interaction.Variant.infoDisappearingMessagesUpdate)
.filter(Interaction.Columns.authorId == authorId)
.deleteAll(db)
case .legacyGroup:
_ = try Interaction
.filter(Interaction.Columns.threadId == threadId)
.filter(Interaction.Columns.variant == Interaction.Variant.infoDisappearingMessagesUpdate)
.deleteAll(db)
default:
break
}
_ = try Interaction
.filter(Interaction.Columns.threadId == threadId)
.filter(Interaction.Columns.variant == Interaction.Variant.infoDisappearingMessagesUpdate)

@ -185,11 +185,6 @@ internal extension SessionUtil {
durationSeconds: data.config.durationSeconds,
type: data.config.type
).save(db)
_ = try Interaction
.filter(Interaction.Columns.threadId == sessionId)
.filter(Interaction.Columns.variant == Interaction.Variant.infoDisappearingMessagesUpdate)
.deleteAll(db)
}
}

Loading…
Cancel
Save