diff --git a/Podfile.lock b/Podfile.lock index 78a63d0c5..2e3981798 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -219,4 +219,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: bb4f6cffd6e7c08814b945e1787d01d639036b1e -COCOAPODS: 1.10.0.rc.1 +COCOAPODS: 1.10.1 diff --git a/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift b/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift index cfbb6b3b6..a0dba8c78 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift @@ -144,7 +144,7 @@ extension MessageReceiver { } private static func handleConfigurationMessage(_ message: ConfigurationMessage, using transaction: Any) { - guard message.sender == getUserHexEncodedPublicKey() else { return } + guard message.sender == getUserHexEncodedPublicKey(), !UserDefaults.standard[.hasSyncedConfiguration] else { return } let storage = SNMessagingKitConfiguration.shared.storage let allClosedGroupPublicKeys = storage.getUserClosedGroupPublicKeys() for closedGroup in message.closedGroups { @@ -157,6 +157,7 @@ extension MessageReceiver { guard !allOpenGroups.contains(openGroupURL) else { continue } OpenGroupManager.shared.add(with: openGroupURL, using: transaction).retainUntilComplete() } + UserDefaults.standard[.hasSyncedConfiguration] = true } @discardableResult diff --git a/SessionMessagingKit/Sending & Receiving/MessageSender.swift b/SessionMessagingKit/Sending & Receiving/MessageSender.swift index 73f8e476d..9bd97972f 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageSender.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageSender.swift @@ -364,6 +364,7 @@ public final class MessageSender : NSObject { OWSDisappearingMessagesJob.shared().startAnyExpiration(for: tsMessage, expirationStartedAt: NSDate.millisecondTimestamp(), transaction: transaction) // Sync the message if: // • it's a visible message + // • the destination was a contact // • we didn't sync it already let userPublicKey = getUserHexEncodedPublicKey() if case .contact(let publicKey) = destination, !isSyncMessage, let message = message as? VisibleMessage { diff --git a/SessionUtilitiesKit/General/SNUserDefaults.swift b/SessionUtilitiesKit/General/SNUserDefaults.swift index 0d67755b8..e2a51e84e 100644 --- a/SessionUtilitiesKit/General/SNUserDefaults.swift +++ b/SessionUtilitiesKit/General/SNUserDefaults.swift @@ -5,6 +5,7 @@ public enum SNUserDefaults { public enum Bool : Swift.String { case hasLaunchedOnce case hasSeenGIFMetadataWarning + case hasSyncedConfiguration case hasViewedSeed case isUsingFullAPNs case isMigratingToV2KeyPair