|
|
@ -477,42 +477,19 @@ class ThreadDisappearingMessagesSettingsViewModel: SessionTableViewModel, Naviga
|
|
|
|
_ = try updatedConfig.saved(db)
|
|
|
|
_ = try updatedConfig.saved(db)
|
|
|
|
|
|
|
|
|
|
|
|
let userPublicKey: String = getUserHexEncodedPublicKey(db, using: dependencies)
|
|
|
|
let userPublicKey: String = getUserHexEncodedPublicKey(db, using: dependencies)
|
|
|
|
|
|
|
|
|
|
|
|
if Features.useNewDisappearingMessagesConfig {
|
|
|
|
|
|
|
|
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()
|
|
|
|
let currentTimestampMs: Int64 = SnodeAPI.currentOffsetTimestampMs()
|
|
|
|
|
|
|
|
|
|
|
|
let interaction: Interaction = try Interaction(
|
|
|
|
let interactionId = try DisappearingMessagesConfiguration.insertControlMessage(
|
|
|
|
|
|
|
|
db,
|
|
|
|
threadId: threadId,
|
|
|
|
threadId: threadId,
|
|
|
|
|
|
|
|
threadVariant: threadVariant,
|
|
|
|
authorId: userPublicKey,
|
|
|
|
authorId: userPublicKey,
|
|
|
|
variant: .infoDisappearingMessagesUpdate,
|
|
|
|
|
|
|
|
body: updatedConfig.messageInfoString(
|
|
|
|
|
|
|
|
threadVariant: threadVariant,
|
|
|
|
|
|
|
|
senderName: nil,
|
|
|
|
|
|
|
|
isPreviousOff: !self.config.isEnabled
|
|
|
|
|
|
|
|
),
|
|
|
|
|
|
|
|
timestampMs: currentTimestampMs,
|
|
|
|
timestampMs: currentTimestampMs,
|
|
|
|
expiresInSeconds: updatedConfig.durationSeconds,
|
|
|
|
serverHash: nil,
|
|
|
|
expiresStartedAtMs: (updatedConfig.type == .disappearAfterSend ? Double(currentTimestampMs) : nil)
|
|
|
|
updatedConfiguration: updatedConfig,
|
|
|
|
|
|
|
|
isPreviousOff: !self.config.isEnabled
|
|
|
|
)
|
|
|
|
)
|
|
|
|
.inserted(db)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let duration: UInt32? = {
|
|
|
|
let duration: UInt32? = {
|
|
|
|
guard !Features.useNewDisappearingMessagesConfig else { return nil }
|
|
|
|
guard !Features.useNewDisappearingMessagesConfig else { return nil }
|
|
|
|
return UInt32(floor(updatedConfig.isEnabled ? updatedConfig.durationSeconds : 0))
|
|
|
|
return UInt32(floor(updatedConfig.isEnabled ? updatedConfig.durationSeconds : 0))
|
|
|
@ -524,7 +501,7 @@ class ThreadDisappearingMessagesSettingsViewModel: SessionTableViewModel, Naviga
|
|
|
|
syncTarget: nil,
|
|
|
|
syncTarget: nil,
|
|
|
|
duration: duration
|
|
|
|
duration: duration
|
|
|
|
),
|
|
|
|
),
|
|
|
|
interactionId: interaction.id,
|
|
|
|
interactionId: interactionId,
|
|
|
|
threadId: threadId,
|
|
|
|
threadId: threadId,
|
|
|
|
threadVariant: threadVariant,
|
|
|
|
threadVariant: threadVariant,
|
|
|
|
using: dependencies
|
|
|
|
using: dependencies
|
|
|
|