diff --git a/Session.xcodeproj/project.pbxproj b/Session.xcodeproj/project.pbxproj index ba8f2b20f..2f7951848 100644 --- a/Session.xcodeproj/project.pbxproj +++ b/Session.xcodeproj/project.pbxproj @@ -143,7 +143,6 @@ 7BA68909272A27BE00EFC32F /* SessionCall.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA68908272A27BE00EFC32F /* SessionCall.swift */; }; 7BA6890D27325CCC00EFC32F /* SessionCallManager+CXCallController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA6890C27325CCC00EFC32F /* SessionCallManager+CXCallController.swift */; }; 7BA6890F27325CE300EFC32F /* SessionCallManager+CXProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA6890E27325CE300EFC32F /* SessionCallManager+CXProvider.swift */; }; - 7BA7F0EF2942C33600CF6B05 /* SyncExpiriesJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA7F0EE2942C33600CF6B05 /* SyncExpiriesJob.swift */; }; 7BAA7B6628D2DE4700AE1489 /* _009_OpenGroupPermission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BAA7B6528D2DE4700AE1489 /* _009_OpenGroupPermission.swift */; }; 7BAADFCC27B0EF23007BCF92 /* CallVideoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BAADFCB27B0EF23007BCF92 /* CallVideoView.swift */; }; 7BAADFCE27B215FE007BCF92 /* UIView+Draggable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BAADFCD27B215FE007BCF92 /* UIView+Draggable.swift */; }; @@ -159,8 +158,6 @@ 7BC707F227290ACB002817AD /* SessionCallManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BC707F127290ACB002817AD /* SessionCallManager.swift */; }; 7BCD116C27016062006330F1 /* WebRTCSession+DataChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BCD116B27016062006330F1 /* WebRTCSession+DataChannel.swift */; }; 7BD01B122921BDDF00E7D9E6 /* MessageSender+TTL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BD01B112921BDDF00E7D9E6 /* MessageSender+TTL.swift */; }; - 7BD01B142921FD9900E7D9E6 /* SyncedExpiriesMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BD01B132921FD9900E7D9E6 /* SyncedExpiriesMessage.swift */; }; - 7BD01B1629233F3B00E7D9E6 /* MessageReceiver+SyncedExpiriesMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BD01B1529233F3B00E7D9E6 /* MessageReceiver+SyncedExpiriesMessage.swift */; }; 7BD477A827EC39F5004E2822 /* Atomic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BD477A727EC39F5004E2822 /* Atomic.swift */; }; 7BDCFC08242186E700641C39 /* NotificationServiceExtensionContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDCFC07242186E700641C39 /* NotificationServiceExtensionContext.swift */; }; 7BDCFC0B2421EB7600641C39 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = B6F509951AA53F760068F56A /* Localizable.strings */; }; @@ -1218,7 +1215,6 @@ 7BA68908272A27BE00EFC32F /* SessionCall.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionCall.swift; sourceTree = ""; }; 7BA6890C27325CCC00EFC32F /* SessionCallManager+CXCallController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SessionCallManager+CXCallController.swift"; sourceTree = ""; }; 7BA6890E27325CE300EFC32F /* SessionCallManager+CXProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SessionCallManager+CXProvider.swift"; sourceTree = ""; }; - 7BA7F0EE2942C33600CF6B05 /* SyncExpiriesJob.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncExpiriesJob.swift; sourceTree = ""; }; 7BAA7B6528D2DE4700AE1489 /* _009_OpenGroupPermission.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = _009_OpenGroupPermission.swift; sourceTree = ""; }; 7BAADFCB27B0EF23007BCF92 /* CallVideoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallVideoView.swift; sourceTree = ""; }; 7BAADFCD27B215FE007BCF92 /* UIView+Draggable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+Draggable.swift"; sourceTree = ""; }; @@ -1236,8 +1232,6 @@ 7BC707F127290ACB002817AD /* SessionCallManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionCallManager.swift; sourceTree = ""; }; 7BCD116B27016062006330F1 /* WebRTCSession+DataChannel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WebRTCSession+DataChannel.swift"; sourceTree = ""; }; 7BD01B112921BDDF00E7D9E6 /* MessageSender+TTL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MessageSender+TTL.swift"; sourceTree = ""; }; - 7BD01B132921FD9900E7D9E6 /* SyncedExpiriesMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncedExpiriesMessage.swift; sourceTree = ""; }; - 7BD01B1529233F3B00E7D9E6 /* MessageReceiver+SyncedExpiriesMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MessageReceiver+SyncedExpiriesMessage.swift"; sourceTree = ""; }; 7BD477A727EC39F5004E2822 /* Atomic.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Atomic.swift; sourceTree = ""; }; 7BD477A927F15F24004E2822 /* OpenGroupServerIdLookup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenGroupServerIdLookup.swift; sourceTree = ""; }; 7BDCFC0424206E7300641C39 /* SessionNotificationServiceExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = SessionNotificationServiceExtension.entitlements; sourceTree = ""; }; @@ -2668,7 +2662,6 @@ C300A5BC2554B00D00555489 /* ReadReceipt.swift */, C300A5D22554B05A00555489 /* TypingIndicator.swift */, 7B4C75CA26B37E0F0000AC89 /* UnsendRequest.swift */, - 7BD01B132921FD9900E7D9E6 /* SyncedExpiriesMessage.swift */, ); path = "Control Messages"; sourceTree = ""; @@ -3915,7 +3908,6 @@ FD5C7304284F0FF30029977D /* MessageReceiver+VisibleMessages.swift */, C32C5A87256DBCF9003C73A2 /* MessageReceiver+ClosedGroups.swift */, FD5C7306284F103B0029977D /* MessageReceiver+MessageRequests.swift */, - 7BD01B1529233F3B00E7D9E6 /* MessageReceiver+SyncedExpiriesMessage.swift */, ); path = "Message Handling"; sourceTree = ""; @@ -4153,7 +4145,6 @@ FDF0B74E28079E5E004C14C5 /* SendReadReceiptsJob.swift */, C352A348255781F400338F3E /* AttachmentDownloadJob.swift */, C352A35A2557824E00338F3E /* AttachmentUploadJob.swift */, - 7BA7F0EE2942C33600CF6B05 /* SyncExpiriesJob.swift */, ); path = Types; sourceTree = ""; @@ -5458,7 +5449,6 @@ FD245C6A2850666F00B966DD /* FileServerAPI.swift in Sources */, FDC4386927B4E6B800C60D73 /* String+Utlities.swift in Sources */, FD716E6628502EE200C96BF4 /* CurrentCallProtocol.swift in Sources */, - 7BD01B142921FD9900E7D9E6 /* SyncedExpiriesMessage.swift in Sources */, FD09B7E5288670BB00ED0B66 /* _008_EmojiReacts.swift in Sources */, FDC4385F27B4C4A200C60D73 /* PinnedMessage.swift in Sources */, 7BFD1A8C2747150E00FB91B9 /* TurnServerInfo.swift in Sources */, @@ -5478,7 +5468,6 @@ FD09797F27FCFBFF00936362 /* OWSAES256Key+Utilities.swift in Sources */, FDB4BBC72838B91E00B7C95D /* LinkPreviewError.swift in Sources */, FD09798327FD1A1500936362 /* ClosedGroup.swift in Sources */, - 7BA7F0EF2942C33600CF6B05 /* SyncExpiriesJob.swift in Sources */, B8B320B7258C30D70020074B /* HTMLMetadata.swift in Sources */, FD09798727FD1B7800936362 /* GroupMember.swift in Sources */, FDB4BBC92839BEF000B7C95D /* ProfileManagerError.swift in Sources */, @@ -5534,7 +5523,6 @@ B8D0A25925E367AC00C1835E /* Notification+MessageReceiver.swift in Sources */, FD245C53285065DB00B966DD /* ProximityMonitoringManager.swift in Sources */, FD245C55285065E500B966DD /* OpenGroupManager.swift in Sources */, - 7BD01B1629233F3B00E7D9E6 /* MessageReceiver+SyncedExpiriesMessage.swift in Sources */, FDC4387227B5BB3B00C60D73 /* FileUploadResponse.swift in Sources */, C32C599E256DB02B003C73A2 /* TypingIndicators.swift in Sources */, FD716E682850318E00C96BF4 /* CallMode.swift in Sources */, diff --git a/SessionMessagingKit/Configuration.swift b/SessionMessagingKit/Configuration.swift index 319b84dda..e9ffcc274 100644 --- a/SessionMessagingKit/Configuration.swift +++ b/SessionMessagingKit/Configuration.swift @@ -45,6 +45,5 @@ public enum SNMessagingKit { // Just to make the external API nice JobRunner.add(executor: SendReadReceiptsJob.self, for: .sendReadReceipts) JobRunner.add(executor: AttachmentDownloadJob.self, for: .attachmentDownload) JobRunner.add(executor: AttachmentUploadJob.self, for: .attachmentUpload) - JobRunner.add(executor: SyncExpiriesJob.self, for: .syncExpires) } } diff --git a/SessionMessagingKit/Database/Models/ControlMessageProcessRecord.swift b/SessionMessagingKit/Database/Models/ControlMessageProcessRecord.swift index c45bf373a..c7cd38636 100644 --- a/SessionMessagingKit/Database/Models/ControlMessageProcessRecord.swift +++ b/SessionMessagingKit/Database/Models/ControlMessageProcessRecord.swift @@ -41,7 +41,6 @@ public struct ControlMessageProcessRecord: Codable, FetchableRecord, Persistable case unsendRequest = 7 case messageRequestResponse = 8 case call = 9 - case syncedExpiries = 10 } /// The id for the thread the control message is associated to @@ -108,7 +107,6 @@ public struct ControlMessageProcessRecord: Codable, FetchableRecord, Persistable case is UnsendRequest: return .unsendRequest case is MessageRequestResponse: return .messageRequestResponse case is CallMessage: return .call - case is SyncedExpiriesMessage: return .syncedExpiries default: preconditionFailure("[ControlMessageProcessRecord] Unsupported message type") } }() diff --git a/SessionMessagingKit/Jobs/Types/DisappearingMessagesJob.swift b/SessionMessagingKit/Jobs/Types/DisappearingMessagesJob.swift index 57a8b5a26..eb1dcac36 100644 --- a/SessionMessagingKit/Jobs/Types/DisappearingMessagesJob.swift +++ b/SessionMessagingKit/Jobs/Types/DisappearingMessagesJob.swift @@ -76,20 +76,6 @@ public extension DisappearingMessagesJob { let id: Int64 let expiresInSeconds: TimeInterval } - - let interactionIdsByExpiresInSeconds: [TimeInterval: [Int64]] = (try? Interaction - .filter(interactionIds.contains(Interaction.Columns.id)) - .filter( - Interaction.Columns.expiresInSeconds != nil && - Interaction.Columns.expiresStartedAtMs == nil - ) - .select(Interaction.Columns.id, Interaction.Columns.expiresInSeconds) - .asRequest(of: ExpirationInfo.self) - .fetchAll(db)) - .defaulting(to: []) - .grouped(by: \.expiresInSeconds) - .mapValues { $0.map { $0.id } } - // Update the expiring messages expiresStartedAtMs value let changeCount: Int? = try? Interaction @@ -103,22 +89,6 @@ public extension DisappearingMessagesJob { // If there were no changes then none of the provided `interactionIds` are expiring messages guard (changeCount ?? 0) > 0 else { return nil } - if DisappearingMessagesConfiguration.isNewConfigurationEnabled { - if !interactionIdsByExpiresInSeconds.isEmpty { - JobRunner.upsert( - db, - job: Job( - variant: .syncExpires, - details: SyncExpiriesJob.Details( - interactionIdsByExpiresInSeconds: interactionIdsByExpiresInSeconds, - startedAtMs: startedAtMs, - threadId: threadId - ) - ) - ) - } - } - return updateNextRunIfNeeded(db) } diff --git a/SessionMessagingKit/Jobs/Types/SyncExpiriesJob.swift b/SessionMessagingKit/Jobs/Types/SyncExpiriesJob.swift deleted file mode 100644 index 31dbe3029..000000000 --- a/SessionMessagingKit/Jobs/Types/SyncExpiriesJob.swift +++ /dev/null @@ -1,158 +0,0 @@ -// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved. - -import Foundation -import GRDB -import PromiseKit -import SignalCoreKit -import SessionUtilitiesKit -import SessionSnodeKit - -public enum SyncExpiriesJob: JobExecutor { - public static let maxFailureCount: Int = 10 - public static let requiresThreadId: Bool = false - public static let requiresInteractionId: Bool = false - - public static func run( - _ job: Job, - queue: DispatchQueue, - success: @escaping (Job, Bool) -> (), - failure: @escaping (Job, Error?, Bool) -> (), - deferred: @escaping (Job) -> () - ) { - guard - let detailsData: Data = job.details, - let details: Details = try? JSONDecoder().decode(Details.self, from: detailsData) - else { - failure(job, JobRunnerError.missingRequiredDetails, false) - return - } - - guard DisappearingMessagesConfiguration.isNewConfigurationEnabled else { - success(job, false) - return - } - - var interactionIdsWithNoServerHashByExpiresInSeconds: [TimeInterval: [Int64]] = [:] - - details.interactionIdsByExpiresInSeconds.forEach { expiresInSeconds, interactionIds in - guard let interactions = Storage.shared.read({ db in try? Interaction.fetchAll(db, ids: interactionIds) }) else { return } - - let interactionIdsWithNoServerHash: [Int64] = interactions.compactMap { $0.serverHash == nil ? $0.id : nil } - if !interactionIdsWithNoServerHash.isEmpty { - interactionIdsWithNoServerHashByExpiresInSeconds[expiresInSeconds] = interactionIdsWithNoServerHash - } - - let serverHashes = interactions.compactMap { $0.serverHash } - guard !serverHashes.isEmpty else { return } - - let expirationTimestamp: Int64 = Int64(ceil(details.startedAtMs + expiresInSeconds * 1000)) - let userPublicKey: String = getUserHexEncodedPublicKey() - - // Send SyncExpiriesMessage - let syncTarget: String = interactions[0].authorId - let syncExpiries: [SyncedExpiriesMessage.SyncedExpiry] = serverHashes.map { serverHash in - return SyncedExpiriesMessage.SyncedExpiry( - serverHash: serverHash, - expirationTimestamp: expirationTimestamp) - } - - let syncExpiriesMessage = SyncedExpiriesMessage( - conversationExpiries: [syncTarget: syncExpiries] - ) - - Storage.shared.writeAsync { db in - MessageSender - .send( - db, - message: syncExpiriesMessage, - threadId: details.threadId, - interactionId: nil, - to: .contact(publicKey: userPublicKey) - ) - } - - // Update the ttls - SnodeAPI.updateExpiry( - publicKey: userPublicKey, - updatedExpiryMs: expirationTimestamp, - serverHashes: serverHashes - ).retainUntilComplete() - } - - if !interactionIdsWithNoServerHashByExpiresInSeconds.isEmpty { - Storage.shared.writeAsync { db in - JobRunner.upsert( - db, - job: Job( - variant: .syncExpires, - details: SyncExpiriesJob.Details( - interactionIdsByExpiresInSeconds: interactionIdsWithNoServerHashByExpiresInSeconds, - startedAtMs: details.startedAtMs, - threadId: details.threadId - ) - ) - ) - } - } - - success(job, false) - } -} - -// MARK: - SyncExpiriesJob.Details - -extension SyncExpiriesJob { - public struct Details: Codable { - private enum CodingKeys: String, CodingKey { - case interactionIdsByExpiresInSeconds - case startedAtMs - case threadId - } - - public let interactionIdsByExpiresInSeconds: [TimeInterval: [Int64]] - public let startedAtMs: Double - public let threadId: String - - // MARK: - Initialization - - public init( - interactionIdsByExpiresInSeconds: [TimeInterval: [Int64]], - startedAtMs: Double, - threadId: String - ) { - self.interactionIdsByExpiresInSeconds = interactionIdsByExpiresInSeconds - self.startedAtMs = startedAtMs - self.threadId = threadId - } - - // MARK: - Codable - - public init(from decoder: Decoder) throws { - let container: KeyedDecodingContainer = try decoder.container(keyedBy: CodingKeys.self) - - self = Details( - interactionIdsByExpiresInSeconds: try container.decode( - [TimeInterval: [Int64]].self, - forKey: .interactionIdsByExpiresInSeconds - ), - startedAtMs: try container.decode( - Double.self, - forKey: .startedAtMs - ), - threadId: try container.decode( - String.self, - forKey: .threadId - ) - ) - } - - public func encode(to encoder: Encoder) throws { - var container: KeyedEncodingContainer = encoder.container(keyedBy: CodingKeys.self) - - try container.encode(interactionIdsByExpiresInSeconds, forKey: .interactionIdsByExpiresInSeconds) - try container.encode(startedAtMs, forKey: .startedAtMs) - try container.encode(threadId, forKey: .threadId) - } - } -} - diff --git a/SessionMessagingKit/Messages/Control Messages/SyncedExpiriesMessage.swift b/SessionMessagingKit/Messages/Control Messages/SyncedExpiriesMessage.swift deleted file mode 100644 index 897b94b64..000000000 --- a/SessionMessagingKit/Messages/Control Messages/SyncedExpiriesMessage.swift +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved. - -import Foundation -import GRDB -import SessionUtilitiesKit - -public final class SyncedExpiriesMessage: ControlMessage { - private enum CodingKeys: String, CodingKey { - case conversationExpiries - } - - public struct SyncedExpiry: Codable, Equatable { - let serverHash: String - let expirationTimestamp: Int64 - } - - public var conversationExpiries: [String: [SyncedExpiry]] = [:] - - // MARK: - Validation - - public override var isValid: Bool { - guard super.isValid else { return false } - return conversationExpiries.count > 0 - } - - override public var isSelfSendValid: Bool { true } - - // MARK: - Codable - - required init(from decoder: Decoder) throws { - try super.init(from: decoder) - - let container: KeyedDecodingContainer = try decoder.container(keyedBy: CodingKeys.self) - - conversationExpiries = ((try? container.decode([String: [SyncedExpiry]].self, forKey: .conversationExpiries)) ?? [:]) - } - - public override func encode(to encoder: Encoder) throws { - try super.encode(to: encoder) - - var container: KeyedEncodingContainer = encoder.container(keyedBy: CodingKeys.self) - - try container.encode(conversationExpiries, forKey: .conversationExpiries) - } - - // MARK: - Initialization - - init(conversationExpiries: [String : [SyncedExpiry]]) { - super.init() - self.conversationExpiries = conversationExpiries - } - - // MARK: - Proto Conversion - - public override class func fromProto(_ proto: SNProtoContent, sender: String) -> SyncedExpiriesMessage? { - guard let syncedExpiriesProto = proto.syncedExpiries else { return nil } - let conversationExpiries = syncedExpiriesProto.conversationExpiries.reduce(into: [String: [SyncedExpiry]]()) { - $0[$1.syncTarget] = $1.expiries.map { syncedExpiryProto in - return SyncedExpiry( - serverHash: syncedExpiryProto.serverHash, - expirationTimestamp: Int64(syncedExpiryProto.expirationTimestamp) - ) - } - } - - return SyncedExpiriesMessage(conversationExpiries: conversationExpiries) - } - - public override func toProto(_ db: Database) -> SNProtoContent? { - let syncedExpiriesProto = SNProtoSyncedExpiries.builder() - - let conversationExpiriesProto = conversationExpiries.compactMap { (syncTarget, expires) in - let syncedConversationExpiriesProto = SNProtoSyncedExpiriesSyncedConversationExpiries - .builder(syncTarget: syncTarget) - - let expiresProto = expires.compactMap { syncedExpiry in - let syncedExpiryProto = SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry - .builder( - serverHash: syncedExpiry.serverHash, - expirationTimestamp: UInt64(syncedExpiry.expirationTimestamp) - ) - - return try? syncedExpiryProto.build() - } - - syncedConversationExpiriesProto.setExpiries(expiresProto) - - return try? syncedConversationExpiriesProto.build() - } - - syncedExpiriesProto.setConversationExpiries(conversationExpiriesProto) - - let contentProto = SNProtoContent.builder() - do { - contentProto.setSyncedExpiries(try syncedExpiriesProto.build()) - return try contentProto.build() - } catch { - SNLog("Couldn't construct synced expiries proto from: \(self).") - return nil - } - } - - // MARK: - Description - - public var description: String { - """ - SyncedExpiriesMessage( - conversationExpiries: \(conversationExpiries.prettifiedDescription) - ) - """ - } -} - diff --git a/SessionMessagingKit/Messages/Message.swift b/SessionMessagingKit/Messages/Message.swift index 97eb73e74..e3d28cf5c 100644 --- a/SessionMessagingKit/Messages/Message.swift +++ b/SessionMessagingKit/Messages/Message.swift @@ -115,7 +115,6 @@ public extension Message { case messageRequestResponse case visibleMessage case callMessage - case syncedExpiriesMessage init?(from type: Message) { switch type { @@ -129,7 +128,6 @@ public extension Message { case is MessageRequestResponse: self = .messageRequestResponse case is VisibleMessage: self = .visibleMessage case is CallMessage: self = .callMessage - case is SyncedExpiriesMessage: self = .syncedExpiriesMessage default: return nil } } @@ -146,7 +144,6 @@ public extension Message { case .messageRequestResponse: return MessageRequestResponse.self case .visibleMessage: return VisibleMessage.self case .callMessage: return CallMessage.self - case .syncedExpiriesMessage: return SyncedExpiriesMessage.self } } @@ -167,7 +164,6 @@ public extension Message { case .messageRequestResponse: return try container.decode(MessageRequestResponse.self, forKey: key) case .visibleMessage: return try container.decode(VisibleMessage.self, forKey: key) case .callMessage: return try container.decode(CallMessage.self, forKey: key) - case .syncedExpiriesMessage: return try container.decode(SyncedExpiriesMessage.self, forKey: key) } } } @@ -185,8 +181,7 @@ public extension Message { .unsendRequest, .messageRequestResponse, .visibleMessage, - .callMessage, - .syncedExpiriesMessage + .callMessage ] return prioritisedVariants diff --git a/SessionMessagingKit/Protos/Generated/SNProto.swift b/SessionMessagingKit/Protos/Generated/SNProto.swift index 8a51e6dce..11a3dde54 100644 --- a/SessionMessagingKit/Protos/Generated/SNProto.swift +++ b/SessionMessagingKit/Protos/Generated/SNProto.swift @@ -581,330 +581,6 @@ extension SNProtoMessageRequestResponse.SNProtoMessageRequestResponseBuilder { #endif -// MARK: - SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry - -@objc public class SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry: NSObject { - - // MARK: - SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiryBuilder - - @objc public class func builder(serverHash: String, expirationTimestamp: UInt64) -> SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiryBuilder { - return SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiryBuilder(serverHash: serverHash, expirationTimestamp: expirationTimestamp) - } - - // asBuilder() constructs a builder that reflects the proto's contents. - @objc public func asBuilder() -> SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiryBuilder { - let builder = SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiryBuilder(serverHash: serverHash, expirationTimestamp: expirationTimestamp) - return builder - } - - @objc public class SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiryBuilder: NSObject { - - private var proto = SessionProtos_SyncedExpiries.SyncedConversationExpiries.SyncedExpiry() - - @objc fileprivate override init() {} - - @objc fileprivate init(serverHash: String, expirationTimestamp: UInt64) { - super.init() - - setServerHash(serverHash) - setExpirationTimestamp(expirationTimestamp) - } - - @objc public func setServerHash(_ valueParam: String) { - proto.serverHash = valueParam - } - - @objc public func setExpirationTimestamp(_ valueParam: UInt64) { - proto.expirationTimestamp = valueParam - } - - @objc public func build() throws -> SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry { - return try SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry.parseProto(proto) - } - - @objc public func buildSerializedData() throws -> Data { - return try SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry.parseProto(proto).serializedData() - } - } - - fileprivate let proto: SessionProtos_SyncedExpiries.SyncedConversationExpiries.SyncedExpiry - - @objc public let serverHash: String - - @objc public let expirationTimestamp: UInt64 - - private init(proto: SessionProtos_SyncedExpiries.SyncedConversationExpiries.SyncedExpiry, - serverHash: String, - expirationTimestamp: UInt64) { - self.proto = proto - self.serverHash = serverHash - self.expirationTimestamp = expirationTimestamp - } - - @objc - public func serializedData() throws -> Data { - return try self.proto.serializedData() - } - - @objc public class func parseData(_ serializedData: Data) throws -> SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry { - let proto = try SessionProtos_SyncedExpiries.SyncedConversationExpiries.SyncedExpiry(serializedData: serializedData) - return try parseProto(proto) - } - - fileprivate class func parseProto(_ proto: SessionProtos_SyncedExpiries.SyncedConversationExpiries.SyncedExpiry) throws -> SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry { - guard proto.hasServerHash else { - throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: serverHash") - } - let serverHash = proto.serverHash - - guard proto.hasExpirationTimestamp else { - throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: expirationTimestamp") - } - let expirationTimestamp = proto.expirationTimestamp - - // MARK: - Begin Validation Logic for SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry - - - // MARK: - End Validation Logic for SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry - - - let result = SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry(proto: proto, - serverHash: serverHash, - expirationTimestamp: expirationTimestamp) - return result - } - - @objc public override var debugDescription: String { - return "\(proto)" - } -} - -#if DEBUG - -extension SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry { - @objc public func serializedDataIgnoringErrors() -> Data? { - return try! self.serializedData() - } -} - -extension SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry.SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiryBuilder { - @objc public func buildIgnoringErrors() -> SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry? { - return try! self.build() - } -} - -#endif - -// MARK: - SNProtoSyncedExpiriesSyncedConversationExpiries - -@objc public class SNProtoSyncedExpiriesSyncedConversationExpiries: NSObject { - - // MARK: - SNProtoSyncedExpiriesSyncedConversationExpiriesBuilder - - @objc public class func builder(syncTarget: String) -> SNProtoSyncedExpiriesSyncedConversationExpiriesBuilder { - return SNProtoSyncedExpiriesSyncedConversationExpiriesBuilder(syncTarget: syncTarget) - } - - // asBuilder() constructs a builder that reflects the proto's contents. - @objc public func asBuilder() -> SNProtoSyncedExpiriesSyncedConversationExpiriesBuilder { - let builder = SNProtoSyncedExpiriesSyncedConversationExpiriesBuilder(syncTarget: syncTarget) - builder.setExpiries(expiries) - return builder - } - - @objc public class SNProtoSyncedExpiriesSyncedConversationExpiriesBuilder: NSObject { - - private var proto = SessionProtos_SyncedExpiries.SyncedConversationExpiries() - - @objc fileprivate override init() {} - - @objc fileprivate init(syncTarget: String) { - super.init() - - setSyncTarget(syncTarget) - } - - @objc public func setSyncTarget(_ valueParam: String) { - proto.syncTarget = valueParam - } - - @objc public func addExpiries(_ valueParam: SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry) { - var items = proto.expiries - items.append(valueParam.proto) - proto.expiries = items - } - - @objc public func setExpiries(_ wrappedItems: [SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry]) { - proto.expiries = wrappedItems.map { $0.proto } - } - - @objc public func build() throws -> SNProtoSyncedExpiriesSyncedConversationExpiries { - return try SNProtoSyncedExpiriesSyncedConversationExpiries.parseProto(proto) - } - - @objc public func buildSerializedData() throws -> Data { - return try SNProtoSyncedExpiriesSyncedConversationExpiries.parseProto(proto).serializedData() - } - } - - fileprivate let proto: SessionProtos_SyncedExpiries.SyncedConversationExpiries - - @objc public let syncTarget: String - - @objc public let expiries: [SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry] - - private init(proto: SessionProtos_SyncedExpiries.SyncedConversationExpiries, - syncTarget: String, - expiries: [SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry]) { - self.proto = proto - self.syncTarget = syncTarget - self.expiries = expiries - } - - @objc - public func serializedData() throws -> Data { - return try self.proto.serializedData() - } - - @objc public class func parseData(_ serializedData: Data) throws -> SNProtoSyncedExpiriesSyncedConversationExpiries { - let proto = try SessionProtos_SyncedExpiries.SyncedConversationExpiries(serializedData: serializedData) - return try parseProto(proto) - } - - fileprivate class func parseProto(_ proto: SessionProtos_SyncedExpiries.SyncedConversationExpiries) throws -> SNProtoSyncedExpiriesSyncedConversationExpiries { - guard proto.hasSyncTarget else { - throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: syncTarget") - } - let syncTarget = proto.syncTarget - - var expiries: [SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry] = [] - expiries = try proto.expiries.map { try SNProtoSyncedExpiriesSyncedConversationExpiriesSyncedExpiry.parseProto($0) } - - // MARK: - Begin Validation Logic for SNProtoSyncedExpiriesSyncedConversationExpiries - - - // MARK: - End Validation Logic for SNProtoSyncedExpiriesSyncedConversationExpiries - - - let result = SNProtoSyncedExpiriesSyncedConversationExpiries(proto: proto, - syncTarget: syncTarget, - expiries: expiries) - return result - } - - @objc public override var debugDescription: String { - return "\(proto)" - } -} - -#if DEBUG - -extension SNProtoSyncedExpiriesSyncedConversationExpiries { - @objc public func serializedDataIgnoringErrors() -> Data? { - return try! self.serializedData() - } -} - -extension SNProtoSyncedExpiriesSyncedConversationExpiries.SNProtoSyncedExpiriesSyncedConversationExpiriesBuilder { - @objc public func buildIgnoringErrors() -> SNProtoSyncedExpiriesSyncedConversationExpiries? { - return try! self.build() - } -} - -#endif - -// MARK: - SNProtoSyncedExpiries - -@objc public class SNProtoSyncedExpiries: NSObject { - - // MARK: - SNProtoSyncedExpiriesBuilder - - @objc public class func builder() -> SNProtoSyncedExpiriesBuilder { - return SNProtoSyncedExpiriesBuilder() - } - - // asBuilder() constructs a builder that reflects the proto's contents. - @objc public func asBuilder() -> SNProtoSyncedExpiriesBuilder { - let builder = SNProtoSyncedExpiriesBuilder() - builder.setConversationExpiries(conversationExpiries) - return builder - } - - @objc public class SNProtoSyncedExpiriesBuilder: NSObject { - - private var proto = SessionProtos_SyncedExpiries() - - @objc fileprivate override init() {} - - @objc public func addConversationExpiries(_ valueParam: SNProtoSyncedExpiriesSyncedConversationExpiries) { - var items = proto.conversationExpiries - items.append(valueParam.proto) - proto.conversationExpiries = items - } - - @objc public func setConversationExpiries(_ wrappedItems: [SNProtoSyncedExpiriesSyncedConversationExpiries]) { - proto.conversationExpiries = wrappedItems.map { $0.proto } - } - - @objc public func build() throws -> SNProtoSyncedExpiries { - return try SNProtoSyncedExpiries.parseProto(proto) - } - - @objc public func buildSerializedData() throws -> Data { - return try SNProtoSyncedExpiries.parseProto(proto).serializedData() - } - } - - fileprivate let proto: SessionProtos_SyncedExpiries - - @objc public let conversationExpiries: [SNProtoSyncedExpiriesSyncedConversationExpiries] - - private init(proto: SessionProtos_SyncedExpiries, - conversationExpiries: [SNProtoSyncedExpiriesSyncedConversationExpiries]) { - self.proto = proto - self.conversationExpiries = conversationExpiries - } - - @objc - public func serializedData() throws -> Data { - return try self.proto.serializedData() - } - - @objc public class func parseData(_ serializedData: Data) throws -> SNProtoSyncedExpiries { - let proto = try SessionProtos_SyncedExpiries(serializedData: serializedData) - return try parseProto(proto) - } - - fileprivate class func parseProto(_ proto: SessionProtos_SyncedExpiries) throws -> SNProtoSyncedExpiries { - var conversationExpiries: [SNProtoSyncedExpiriesSyncedConversationExpiries] = [] - conversationExpiries = try proto.conversationExpiries.map { try SNProtoSyncedExpiriesSyncedConversationExpiries.parseProto($0) } - - // MARK: - Begin Validation Logic for SNProtoSyncedExpiries - - - // MARK: - End Validation Logic for SNProtoSyncedExpiries - - - let result = SNProtoSyncedExpiries(proto: proto, - conversationExpiries: conversationExpiries) - return result - } - - @objc public override var debugDescription: String { - return "\(proto)" - } -} - -#if DEBUG - -extension SNProtoSyncedExpiries { - @objc public func serializedDataIgnoringErrors() -> Data? { - return try! self.serializedData() - } -} - -extension SNProtoSyncedExpiries.SNProtoSyncedExpiriesBuilder { - @objc public func buildIgnoringErrors() -> SNProtoSyncedExpiries? { - return try! self.build() - } -} - -#endif - // MARK: - SNProtoContent @objc public class SNProtoContent: NSObject { @@ -972,9 +648,6 @@ extension SNProtoSyncedExpiries.SNProtoSyncedExpiriesBuilder { if hasLastDisappearingMessageChangeTimestamp { builder.setLastDisappearingMessageChangeTimestamp(lastDisappearingMessageChangeTimestamp) } - if let _value = syncedExpiries { - builder.setSyncedExpiries(_value) - } return builder } @@ -1028,10 +701,6 @@ extension SNProtoSyncedExpiries.SNProtoSyncedExpiriesBuilder { proto.lastDisappearingMessageChangeTimestamp = valueParam } - @objc public func setSyncedExpiries(_ valueParam: SNProtoSyncedExpiries) { - proto.syncedExpiries = valueParam.proto - } - @objc public func build() throws -> SNProtoContent { return try SNProtoContent.parseProto(proto) } @@ -1059,8 +728,6 @@ extension SNProtoSyncedExpiries.SNProtoSyncedExpiriesBuilder { @objc public let messageRequestResponse: SNProtoMessageRequestResponse? - @objc public let syncedExpiries: SNProtoSyncedExpiries? - @objc public var expirationType: SNProtoContentExpirationType { return SNProtoContent.SNProtoContentExpirationTypeWrap(proto.expirationType) } @@ -1090,8 +757,7 @@ extension SNProtoSyncedExpiries.SNProtoSyncedExpiriesBuilder { configurationMessage: SNProtoConfigurationMessage?, dataExtractionNotification: SNProtoDataExtractionNotification?, unsendRequest: SNProtoUnsendRequest?, - messageRequestResponse: SNProtoMessageRequestResponse?, - syncedExpiries: SNProtoSyncedExpiries?) { + messageRequestResponse: SNProtoMessageRequestResponse?) { self.proto = proto self.dataMessage = dataMessage self.callMessage = callMessage @@ -1101,7 +767,6 @@ extension SNProtoSyncedExpiries.SNProtoSyncedExpiriesBuilder { self.dataExtractionNotification = dataExtractionNotification self.unsendRequest = unsendRequest self.messageRequestResponse = messageRequestResponse - self.syncedExpiries = syncedExpiries } @objc @@ -1155,11 +820,6 @@ extension SNProtoSyncedExpiries.SNProtoSyncedExpiriesBuilder { messageRequestResponse = try SNProtoMessageRequestResponse.parseProto(proto.messageRequestResponse) } - var syncedExpiries: SNProtoSyncedExpiries? = nil - if proto.hasSyncedExpiries { - syncedExpiries = try SNProtoSyncedExpiries.parseProto(proto.syncedExpiries) - } - // MARK: - Begin Validation Logic for SNProtoContent - // MARK: - End Validation Logic for SNProtoContent - @@ -1172,8 +832,7 @@ extension SNProtoSyncedExpiries.SNProtoSyncedExpiriesBuilder { configurationMessage: configurationMessage, dataExtractionNotification: dataExtractionNotification, unsendRequest: unsendRequest, - messageRequestResponse: messageRequestResponse, - syncedExpiries: syncedExpiries) + messageRequestResponse: messageRequestResponse) return result } diff --git a/SessionMessagingKit/Protos/Generated/SessionProtos.pb.swift b/SessionMessagingKit/Protos/Generated/SessionProtos.pb.swift index ccc381a6b..cd68a5997 100644 --- a/SessionMessagingKit/Protos/Generated/SessionProtos.pb.swift +++ b/SessionMessagingKit/Protos/Generated/SessionProtos.pb.swift @@ -271,75 +271,6 @@ struct SessionProtos_MessageRequestResponse { fileprivate var _profile: SessionProtos_LokiProfile? = nil } -struct SessionProtos_SyncedExpiries { - // SwiftProtobuf.Message conformance is added in an extension below. See the - // `Message` and `Message+*Additions` files in the SwiftProtobuf library for - // methods supported on all messages. - - var conversationExpiries: [SessionProtos_SyncedExpiries.SyncedConversationExpiries] = [] - - var unknownFields = SwiftProtobuf.UnknownStorage() - - struct SyncedConversationExpiries { - // SwiftProtobuf.Message conformance is added in an extension below. See the - // `Message` and `Message+*Additions` files in the SwiftProtobuf library for - // methods supported on all messages. - - /// @required - var syncTarget: String { - get {return _syncTarget ?? String()} - set {_syncTarget = newValue} - } - /// Returns true if `syncTarget` has been explicitly set. - var hasSyncTarget: Bool {return self._syncTarget != nil} - /// Clears the value of `syncTarget`. Subsequent reads from it will return its default value. - mutating func clearSyncTarget() {self._syncTarget = nil} - - var expiries: [SessionProtos_SyncedExpiries.SyncedConversationExpiries.SyncedExpiry] = [] - - var unknownFields = SwiftProtobuf.UnknownStorage() - - struct SyncedExpiry { - // SwiftProtobuf.Message conformance is added in an extension below. See the - // `Message` and `Message+*Additions` files in the SwiftProtobuf library for - // methods supported on all messages. - - /// @required - var serverHash: String { - get {return _serverHash ?? String()} - set {_serverHash = newValue} - } - /// Returns true if `serverHash` has been explicitly set. - var hasServerHash: Bool {return self._serverHash != nil} - /// Clears the value of `serverHash`. Subsequent reads from it will return its default value. - mutating func clearServerHash() {self._serverHash = nil} - - /// @required - var expirationTimestamp: UInt64 { - get {return _expirationTimestamp ?? 0} - set {_expirationTimestamp = newValue} - } - /// Returns true if `expirationTimestamp` has been explicitly set. - var hasExpirationTimestamp: Bool {return self._expirationTimestamp != nil} - /// Clears the value of `expirationTimestamp`. Subsequent reads from it will return its default value. - mutating func clearExpirationTimestamp() {self._expirationTimestamp = nil} - - var unknownFields = SwiftProtobuf.UnknownStorage() - - init() {} - - fileprivate var _serverHash: String? = nil - fileprivate var _expirationTimestamp: UInt64? = nil - } - - init() {} - - fileprivate var _syncTarget: String? = nil - } - - init() {} -} - struct SessionProtos_Content { // SwiftProtobuf.Message conformance is added in an extension below. See the // `Message` and `Message+*Additions` files in the SwiftProtobuf library for @@ -444,15 +375,6 @@ struct SessionProtos_Content { /// Clears the value of `lastDisappearingMessageChangeTimestamp`. Subsequent reads from it will return its default value. mutating func clearLastDisappearingMessageChangeTimestamp() {_uniqueStorage()._lastDisappearingMessageChangeTimestamp = nil} - var syncedExpiries: SessionProtos_SyncedExpiries { - get {return _storage._syncedExpiries ?? SessionProtos_SyncedExpiries()} - set {_uniqueStorage()._syncedExpiries = newValue} - } - /// Returns true if `syncedExpiries` has been explicitly set. - var hasSyncedExpiries: Bool {return _storage._syncedExpiries != nil} - /// Clears the value of `syncedExpiries`. Subsequent reads from it will return its default value. - mutating func clearSyncedExpiries() {_uniqueStorage()._syncedExpiries = nil} - var unknownFields = SwiftProtobuf.UnknownStorage() enum ExpirationType: SwiftProtobuf.Enum { @@ -2045,131 +1967,6 @@ extension SessionProtos_MessageRequestResponse: SwiftProtobuf.Message, SwiftProt } } -extension SessionProtos_SyncedExpiries: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { - static let protoMessageName: String = _protobuf_package + ".SyncedExpiries" - static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .same(proto: "conversationExpiries"), - ] - - public var isInitialized: Bool { - if !SwiftProtobuf.Internal.areAllInitialized(self.conversationExpiries) {return false} - return true - } - - mutating func decodeMessage(decoder: inout D) throws { - while let fieldNumber = try decoder.nextFieldNumber() { - // The use of inline closures is to circumvent an issue where the compiler - // allocates stack space for every case branch when no optimizations are - // enabled. https://github.com/apple/swift-protobuf/issues/1034 - switch fieldNumber { - case 1: try { try decoder.decodeRepeatedMessageField(value: &self.conversationExpiries) }() - default: break - } - } - } - - func traverse(visitor: inout V) throws { - if !self.conversationExpiries.isEmpty { - try visitor.visitRepeatedMessageField(value: self.conversationExpiries, fieldNumber: 1) - } - try unknownFields.traverse(visitor: &visitor) - } - - static func ==(lhs: SessionProtos_SyncedExpiries, rhs: SessionProtos_SyncedExpiries) -> Bool { - if lhs.conversationExpiries != rhs.conversationExpiries {return false} - if lhs.unknownFields != rhs.unknownFields {return false} - return true - } -} - -extension SessionProtos_SyncedExpiries.SyncedConversationExpiries: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { - static let protoMessageName: String = SessionProtos_SyncedExpiries.protoMessageName + ".SyncedConversationExpiries" - static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .same(proto: "syncTarget"), - 2: .same(proto: "expiries"), - ] - - public var isInitialized: Bool { - if self._syncTarget == nil {return false} - if !SwiftProtobuf.Internal.areAllInitialized(self.expiries) {return false} - return true - } - - mutating func decodeMessage(decoder: inout D) throws { - while let fieldNumber = try decoder.nextFieldNumber() { - // The use of inline closures is to circumvent an issue where the compiler - // allocates stack space for every case branch when no optimizations are - // enabled. https://github.com/apple/swift-protobuf/issues/1034 - switch fieldNumber { - case 1: try { try decoder.decodeSingularStringField(value: &self._syncTarget) }() - case 2: try { try decoder.decodeRepeatedMessageField(value: &self.expiries) }() - default: break - } - } - } - - func traverse(visitor: inout V) throws { - if let v = self._syncTarget { - try visitor.visitSingularStringField(value: v, fieldNumber: 1) - } - if !self.expiries.isEmpty { - try visitor.visitRepeatedMessageField(value: self.expiries, fieldNumber: 2) - } - try unknownFields.traverse(visitor: &visitor) - } - - static func ==(lhs: SessionProtos_SyncedExpiries.SyncedConversationExpiries, rhs: SessionProtos_SyncedExpiries.SyncedConversationExpiries) -> Bool { - if lhs._syncTarget != rhs._syncTarget {return false} - if lhs.expiries != rhs.expiries {return false} - if lhs.unknownFields != rhs.unknownFields {return false} - return true - } -} - -extension SessionProtos_SyncedExpiries.SyncedConversationExpiries.SyncedExpiry: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { - static let protoMessageName: String = SessionProtos_SyncedExpiries.SyncedConversationExpiries.protoMessageName + ".SyncedExpiry" - static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .same(proto: "serverHash"), - 2: .same(proto: "expirationTimestamp"), - ] - - public var isInitialized: Bool { - if self._serverHash == nil {return false} - if self._expirationTimestamp == nil {return false} - return true - } - - mutating func decodeMessage(decoder: inout D) throws { - while let fieldNumber = try decoder.nextFieldNumber() { - // The use of inline closures is to circumvent an issue where the compiler - // allocates stack space for every case branch when no optimizations are - // enabled. https://github.com/apple/swift-protobuf/issues/1034 - switch fieldNumber { - case 1: try { try decoder.decodeSingularStringField(value: &self._serverHash) }() - case 2: try { try decoder.decodeSingularUInt64Field(value: &self._expirationTimestamp) }() - default: break - } - } - } - - func traverse(visitor: inout V) throws { - if let v = self._serverHash { - try visitor.visitSingularStringField(value: v, fieldNumber: 1) - } - if let v = self._expirationTimestamp { - try visitor.visitSingularUInt64Field(value: v, fieldNumber: 2) - } - try unknownFields.traverse(visitor: &visitor) - } - - static func ==(lhs: SessionProtos_SyncedExpiries.SyncedConversationExpiries.SyncedExpiry, rhs: SessionProtos_SyncedExpiries.SyncedConversationExpiries.SyncedExpiry) -> Bool { - if lhs._serverHash != rhs._serverHash {return false} - if lhs._expirationTimestamp != rhs._expirationTimestamp {return false} - if lhs.unknownFields != rhs.unknownFields {return false} - return true - } -} - extension SessionProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = _protobuf_package + ".Content" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ @@ -2184,7 +1981,6 @@ extension SessionProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._MessageIm 11: .same(proto: "expirationType"), 12: .same(proto: "expirationTimer"), 13: .same(proto: "lastDisappearingMessageChangeTimestamp"), - 14: .same(proto: "syncedExpiries"), ] fileprivate class _StorageClass { @@ -2199,7 +1995,6 @@ extension SessionProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._MessageIm var _expirationType: SessionProtos_Content.ExpirationType? = nil var _expirationTimer: UInt32? = nil var _lastDisappearingMessageChangeTimestamp: UInt64? = nil - var _syncedExpiries: SessionProtos_SyncedExpiries? = nil static let defaultInstance = _StorageClass() @@ -2217,7 +2012,6 @@ extension SessionProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._MessageIm _expirationType = source._expirationType _expirationTimer = source._expirationTimer _lastDisappearingMessageChangeTimestamp = source._lastDisappearingMessageChangeTimestamp - _syncedExpiries = source._syncedExpiries } } @@ -2238,7 +2032,6 @@ extension SessionProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._MessageIm if let v = _storage._dataExtractionNotification, !v.isInitialized {return false} if let v = _storage._unsendRequest, !v.isInitialized {return false} if let v = _storage._messageRequestResponse, !v.isInitialized {return false} - if let v = _storage._syncedExpiries, !v.isInitialized {return false} return true } } @@ -2262,7 +2055,6 @@ extension SessionProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._MessageIm case 11: try { try decoder.decodeSingularEnumField(value: &_storage._expirationType) }() case 12: try { try decoder.decodeSingularUInt32Field(value: &_storage._expirationTimer) }() case 13: try { try decoder.decodeSingularUInt64Field(value: &_storage._lastDisappearingMessageChangeTimestamp) }() - case 14: try { try decoder.decodeSingularMessageField(value: &_storage._syncedExpiries) }() default: break } } @@ -2304,9 +2096,6 @@ extension SessionProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._MessageIm if let v = _storage._lastDisappearingMessageChangeTimestamp { try visitor.visitSingularUInt64Field(value: v, fieldNumber: 13) } - if let v = _storage._syncedExpiries { - try visitor.visitSingularMessageField(value: v, fieldNumber: 14) - } } try unknownFields.traverse(visitor: &visitor) } @@ -2327,7 +2116,6 @@ extension SessionProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._MessageIm if _storage._expirationType != rhs_storage._expirationType {return false} if _storage._expirationTimer != rhs_storage._expirationTimer {return false} if _storage._lastDisappearingMessageChangeTimestamp != rhs_storage._lastDisappearingMessageChangeTimestamp {return false} - if _storage._syncedExpiries != rhs_storage._syncedExpiries {return false} return true } if !storagesAreEqual {return false} diff --git a/SessionMessagingKit/Protos/SessionProtos.proto b/SessionMessagingKit/Protos/SessionProtos.proto index b0085d705..e5d6f0af4 100644 --- a/SessionMessagingKit/Protos/SessionProtos.proto +++ b/SessionMessagingKit/Protos/SessionProtos.proto @@ -48,24 +48,6 @@ message MessageRequestResponse { optional LokiProfile profile = 3; } -message SyncedExpiries { - - message SyncedConversationExpiries { - - message SyncedExpiry { - // @required - required string serverHash = 1; // messageHash for desktop and serverHash for iOS - // @required - required uint64 expirationTimestamp = 2; // this is only used for deleteAfterRead - } - // @required - required string syncTarget = 1; // the conversationID those expiries are related to - repeated SyncedExpiry expiries = 2; - } - - repeated SyncedConversationExpiries conversationExpiries = 1; -} - message Content { enum ExpirationType { @@ -84,7 +66,6 @@ message Content { optional ExpirationType expirationType = 11; optional uint32 expirationTimer = 12; optional uint64 lastDisappearingMessageChangeTimestamp = 13; - optional SyncedExpiries syncedExpiries = 14; } message CallMessage { diff --git a/SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+SyncedExpiriesMessage.swift b/SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+SyncedExpiriesMessage.swift deleted file mode 100644 index 8d5f09476..000000000 --- a/SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+SyncedExpiriesMessage.swift +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved. - -import Foundation -import GRDB -import SignalCoreKit -import SessionUtilitiesKit - -extension MessageReceiver { - internal static func handleSyncedExpiriesMessage( - _ db: Database, - message: SyncedExpiriesMessage, - dependencies: SMKDependencies - ) throws { - let userPublicKey: String = getUserHexEncodedPublicKey(db, dependencies: dependencies) - guard userPublicKey == message.sender else { return } - - message.conversationExpiries.forEach { (syncTarget, expiries) in - expiries.forEach { syncExpiry in - guard - let interaction = try? Interaction.filter( - Interaction.Columns.threadId == syncTarget && - Interaction.Columns.serverHash == syncExpiry.serverHash - ).fetchOne(db), - let durationSeconds = interaction.expiresInSeconds - else { return } - - try? interaction.with( - wasRead: true, - expiresStartedAtMs: Double(syncExpiry.expirationTimestamp) - durationSeconds * 1000 - ).update(db) - } - } - } -} diff --git a/SessionMessagingKit/Sending & Receiving/MessageReceiver.swift b/SessionMessagingKit/Sending & Receiving/MessageReceiver.swift index 02cb2f226..391f5bdbc 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageReceiver.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageReceiver.swift @@ -222,9 +222,6 @@ public enum MessageReceiver { case let message as MessageRequestResponse: try MessageReceiver.handleMessageRequestResponse(db, message: message, dependencies: dependencies) - - case let message as SyncedExpiriesMessage: - try MessageReceiver.handleSyncedExpiriesMessage(db, message: message, dependencies: dependencies) case let message as VisibleMessage: try MessageReceiver.handleVisibleMessage( diff --git a/SessionMessagingKit/Sending & Receiving/MessageSender.swift b/SessionMessagingKit/Sending & Receiving/MessageSender.swift index d8b64ff3e..f177ce6cf 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageSender.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageSender.swift @@ -134,7 +134,7 @@ public final class MessageSender { let plaintext: Data do { - plaintext = (message is SyncedExpiriesMessage) ? try proto.serializedData() : try proto.serializedData().paddedMessageBody() + plaintext = try proto.serializedData().paddedMessageBody() } catch { SNLog("Couldn't serialize proto due to error: \(error).")