diff --git a/Session/Calls/VideoPreviewVC.swift b/Session/Calls/VideoPreviewVC.swift index b75b05b16..798451bac 100644 --- a/Session/Calls/VideoPreviewVC.swift +++ b/Session/Calls/VideoPreviewVC.swift @@ -2,6 +2,7 @@ import UIKit import SessionUIKit +import CoreMedia public protocol VideoPreviewDelegate: AnyObject { func cameraDidConfirmTurningOn() diff --git a/SessionMessagingKit/Database/Models/Interaction.swift b/SessionMessagingKit/Database/Models/Interaction.swift index cf23e51a2..e45d2506f 100644 --- a/SessionMessagingKit/Database/Models/Interaction.swift +++ b/SessionMessagingKit/Database/Models/Interaction.swift @@ -538,16 +538,9 @@ public extension Interaction { interactionInfo: [InteractionReadInfo], lastReadTimestampMs: Int64 ) throws { - // Update the last read timestamp if needed - try SessionUtil.syncThreadLastReadIfNeeded( - db, - threadId: threadId, - threadVariant: threadVariant, - lastReadTimestampMs: lastReadTimestampMs - ) - // Add the 'DisappearingMessagesJob' if needed - this will update any expiring - // messages `expiresStartedAtMs` values + // messages `expiresStartedAtMs` values in local database, and create seperate + // jobs updating message expiration JobRunner.upsert( db, job: DisappearingMessagesJob.updateNextRunIfNeeded( @@ -558,6 +551,14 @@ public extension Interaction { ) ) + // Update the last read timestamp if needed + try SessionUtil.syncThreadLastReadIfNeeded( + db, + threadId: threadId, + threadVariant: threadVariant, + lastReadTimestampMs: lastReadTimestampMs + ) + // Clear out any notifications for the interactions we mark as read Environment.shared?.notificationsManager.wrappedValue?.cancelNotifications( identifiers: interactionInfo diff --git a/SessionMessagingKit/Jobs/Types/DisappearingMessagesJob.swift b/SessionMessagingKit/Jobs/Types/DisappearingMessagesJob.swift index 86b45f09a..fa77ea935 100644 --- a/SessionMessagingKit/Jobs/Types/DisappearingMessagesJob.swift +++ b/SessionMessagingKit/Jobs/Types/DisappearingMessagesJob.swift @@ -194,7 +194,7 @@ public extension DisappearingMessagesJob { interactionExpirationInfosByExpiresInSeconds.forEach { expiresInSeconds, expirationInfos in let expirationTimestampMs: Int64 = Int64(startedAtMs + expiresInSeconds * 1000) - JobRunner.add( + JobRunner.upsert( db, job: Job( variant: .expirationUpdate,