|
|
|
@ -963,8 +963,24 @@ public final class MessageSender {
|
|
|
|
|
openGroupServerMessageId: message.openGroupServerMessageId.map { Int64($0) }
|
|
|
|
|
).update(db)
|
|
|
|
|
|
|
|
|
|
if interaction.isExpiringMessage {
|
|
|
|
|
// Start disappearing messages job after a message is successfully sent.
|
|
|
|
|
// For DAR and DAS outgoing messages, the expiration start time are the
|
|
|
|
|
// same as message sentTimestamp. So do this once, DAR and DAS messages
|
|
|
|
|
// should all be covered.
|
|
|
|
|
dependencies.jobRunner.upsert(
|
|
|
|
|
db,
|
|
|
|
|
job: DisappearingMessagesJob.updateNextRunIfNeeded(
|
|
|
|
|
db,
|
|
|
|
|
interaction: interaction,
|
|
|
|
|
startedAtMs: Double(interaction.timestampMs)
|
|
|
|
|
),
|
|
|
|
|
canStartJob: true,
|
|
|
|
|
using: dependencies
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if
|
|
|
|
|
interaction.isExpiringMessage && isSyncMessage,
|
|
|
|
|
isSyncMessage,
|
|
|
|
|
let startedAtMs: Double = interaction.expiresStartedAtMs,
|
|
|
|
|
let expiresInSeconds: TimeInterval = interaction.expiresInSeconds,
|
|
|
|
|
let serverHash: String = message.serverHash
|
|
|
|
@ -985,18 +1001,7 @@ public final class MessageSender {
|
|
|
|
|
using: dependencies
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dependencies.jobRunner.upsert(
|
|
|
|
|
db,
|
|
|
|
|
job: DisappearingMessagesJob.updateNextRunIfNeeded(
|
|
|
|
|
db,
|
|
|
|
|
interaction: interaction,
|
|
|
|
|
startedAtMs: Double(interaction.timestampMs)
|
|
|
|
|
),
|
|
|
|
|
canStartJob: true,
|
|
|
|
|
using: dependencies
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Mark the message as sent
|
|
|
|
|