diff --git a/SessionMessagingKit/Configuration.swift b/SessionMessagingKit/Configuration.swift index defafca92..5c9771011 100644 --- a/SessionMessagingKit/Configuration.swift +++ b/SessionMessagingKit/Configuration.swift @@ -61,5 +61,6 @@ public enum SNMessagingKit { // Just to make the external API nice JobRunner.add(executor: ConfigurationSyncJob.self, for: .configurationSync) JobRunner.add(executor: ConfigMessageReceiveJob.self, for: .configMessageReceive) JobRunner.add(executor: ExpirationUpdateJob.self, for: .expirationUpdate) + JobRunner.add(executor: GetExpirationJob.self, for: .getExpiration) } } diff --git a/SessionMessagingKit/Jobs/Types/GetExpirationJob.swift b/SessionMessagingKit/Jobs/Types/GetExpirationJob.swift index c0335d6c8..6459d6a5b 100644 --- a/SessionMessagingKit/Jobs/Types/GetExpirationJob.swift +++ b/SessionMessagingKit/Jobs/Types/GetExpirationJob.swift @@ -29,6 +29,10 @@ public enum GetExpirationJob: JobExecutor { } var expirationInfo: [String: TimeInterval] = details.expirationInfo + guard expirationInfo.count > 0 else { + success(job, false) + return + } let userPublicKey: String = getUserHexEncodedPublicKey() SnodeAPI.getSwarm(for: userPublicKey) @@ -82,11 +86,9 @@ public enum GetExpirationJob: JobExecutor { } if !expirationInfo.isEmpty { - let updatedJob: Job? = Storage.shared.write { db in - try job - .with(nextRunTimestamp: Date().timeIntervalSince1970 + minRunFrequency) - .saved(db) - } + let updatedJob: Job? = try job + .with(nextRunTimestamp: Date().timeIntervalSince1970 + minRunFrequency) + .saved(db) deferred(updatedJob ?? job) } diff --git a/SessionUtilitiesKit/JobRunner/JobRunner.swift b/SessionUtilitiesKit/JobRunner/JobRunner.swift index ac62a022e..4a70aa368 100644 --- a/SessionUtilitiesKit/JobRunner/JobRunner.swift +++ b/SessionUtilitiesKit/JobRunner/JobRunner.swift @@ -72,7 +72,8 @@ public final class JobRunner { executionType: .concurrent, // Allow as many jobs to run at once as supported by the device qos: .default, jobVariants: [ - jobVariants.remove(.expirationUpdate) + jobVariants.remove(.expirationUpdate), + jobVariants.remove(.getExpiration) ].compactMap { $0 } ) let messageSendQueue: JobQueue = JobQueue(