add comments and minor refactor

pull/731/head
Ryan Zhao 8 months ago
parent a64d054537
commit 928d7f2b1e

@ -219,6 +219,7 @@ public extension DisappearingMessagesConfiguration {
// MARK: - UI Constraints
extension DisappearingMessagesConfiguration {
// TODO: Remove this when disappearing messages V2 is up and running
public static var validDurationsSeconds: [TimeInterval] {
return [
5,

@ -4,6 +4,7 @@ import Foundation
import GRDB
import SessionUtilitiesKit
// TODO: Refactor this when disappearing messages V2 is up and running
public final class ExpirationTimerUpdate: ControlMessage {
private enum CodingKeys: String, CodingKey {
case syncTarget

@ -5,6 +5,7 @@ import GRDB
import SessionUtilitiesKit
extension MessageReceiver {
// TODO: Remove this when disappearing messages V2 is up and running
internal static func handleExpirationTimerUpdate(
_ db: Database,
threadId: String,

@ -963,40 +963,45 @@ public final class MessageSender {
openGroupServerMessageId: message.openGroupServerMessageId.map { Int64($0) }
).update(db)
if
interaction.isExpiringMessage && isSyncMessage,
let startedAtMs: Double = interaction.expiresStartedAtMs,
let expiresInSeconds: TimeInterval = interaction.expiresInSeconds,
let serverHash: String = message.serverHash
{
let expirationTimestampMs: Int64 = Int64(startedAtMs + expiresInSeconds * 1000)
dependencies.jobRunner.add(
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: Job(
variant: .expirationUpdate,
behaviour: .runOnce,
threadId: interaction.threadId,
details: ExpirationUpdateJob.Details(
serverHashes: [serverHash],
expirationTimestampMs: expirationTimestampMs
)
job: DisappearingMessagesJob.updateNextRunIfNeeded(
db,
interaction: interaction,
startedAtMs: Double(interaction.timestampMs)
),
canStartJob: true,
using: dependencies
)
if
isSyncMessage,
let startedAtMs: Double = interaction.expiresStartedAtMs,
let expiresInSeconds: TimeInterval = interaction.expiresInSeconds,
let serverHash: String = message.serverHash
{
let expirationTimestampMs: Int64 = Int64(startedAtMs + expiresInSeconds * 1000)
dependencies.jobRunner.add(
db,
job: Job(
variant: .expirationUpdate,
behaviour: .runOnce,
threadId: interaction.threadId,
details: ExpirationUpdateJob.Details(
serverHashes: [serverHash],
expirationTimestampMs: expirationTimestampMs
)
),
canStartJob: true,
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

Loading…
Cancel
Save