diff --git a/Session/Closed Groups/EditClosedGroupVC.swift b/Session/Closed Groups/EditClosedGroupVC.swift index a4b7f99de..0d6b18877 100644 --- a/Session/Closed Groups/EditClosedGroupVC.swift +++ b/Session/Closed Groups/EditClosedGroupVC.swift @@ -260,9 +260,9 @@ final class EditClosedGroupVC : BaseVC, UITableViewDataSource, UITableViewDelega Storage.write(with: { [weak self] transaction in do { if !members.contains(getUserHexEncodedPublicKey()) { - try MessageSender.leaveV2(groupPublicKey, using: transaction) + try MessageSender.leave(groupPublicKey, using: transaction) } else { - try MessageSender.updateV2(groupPublicKey, with: members, name: name, transaction: transaction) + try MessageSender.update(groupPublicKey, with: members, name: name, transaction: transaction) } } catch { DispatchQueue.main.async { diff --git a/Session/Closed Groups/NewClosedGroupVC.swift b/Session/Closed Groups/NewClosedGroupVC.swift index 3250f7be3..4c6b0363d 100644 --- a/Session/Closed Groups/NewClosedGroupVC.swift +++ b/Session/Closed Groups/NewClosedGroupVC.swift @@ -170,9 +170,11 @@ final class NewClosedGroupVC : BaseVC, UITableViewDataSource, UITableViewDelegat ModalActivityIndicatorViewController.present(fromViewController: navigationController!, canCancel: false) { [weak self] _ in var promise: Promise! Storage.writeSync { transaction in - promise = MessageSender.createV2ClosedGroup(name: name, members: selectedContacts, transaction: transaction) + promise = MessageSender.createClosedGroup(name: name, members: selectedContacts, transaction: transaction) } let _ = promise.done(on: DispatchQueue.main) { thread in + let appDelegate = UIApplication.shared.delegate as! AppDelegate + appDelegate.forceSyncConfigurationNowIfNeeded().retainUntilComplete() // FIXME: It's probably cleaner to do this inside createClosedGroup(...) self?.presentingViewController?.dismiss(animated: true, completion: nil) SignalApp.shared().presentConversation(for: thread, action: .compose, animated: false) } diff --git a/Session/Home/HomeVC.swift b/Session/Home/HomeVC.swift index d1c555f3c..cb18de22a 100644 --- a/Session/Home/HomeVC.swift +++ b/Session/Home/HomeVC.swift @@ -420,7 +420,7 @@ final class HomeVC : BaseVC, UITableViewDataSource, UITableViewDelegate, UIScrol let groupID = thread.groupModel.groupId let groupPublicKey = LKGroupUtilities.getDecodedGroupID(groupID) do { - try MessageSender.leaveV2(groupPublicKey, using: transaction) + try MessageSender.leave(groupPublicKey, using: transaction) } catch { // TODO: Handle } diff --git a/Session/Meta/AppDelegate.swift b/Session/Meta/AppDelegate.swift index a97b8aaf2..e23f8c834 100644 --- a/Session/Meta/AppDelegate.swift +++ b/Session/Meta/AppDelegate.swift @@ -5,7 +5,6 @@ extension AppDelegate { @objc(syncConfigurationIfNeeded) func syncConfigurationIfNeeded() { let userDefaults = UserDefaults.standard - guard userDefaults[.isUsingMultiDevice] else { return } let lastSync = userDefaults[.lastConfigurationSync] ?? .distantPast guard Date().timeIntervalSince(lastSync) > 2 * 24 * 60 * 60 else { return } // Sync every 2 days let configurationMessage = ConfigurationMessage.getCurrent() @@ -17,8 +16,6 @@ extension AppDelegate { } func forceSyncConfigurationNowIfNeeded() -> Promise { - let userDefaults = UserDefaults.standard - guard userDefaults[.isUsingMultiDevice] else { return Promise.value(()) } let configurationMessage = ConfigurationMessage.getCurrent() let destination = Message.Destination.contact(publicKey: getUserHexEncodedPublicKey()) let (promise, seal) = Promise.pending() diff --git a/Session/Open Groups/JoinPublicChatVC.swift b/Session/Open Groups/JoinPublicChatVC.swift index adf1f1344..203820574 100644 --- a/Session/Open Groups/JoinPublicChatVC.swift +++ b/Session/Open Groups/JoinPublicChatVC.swift @@ -135,6 +135,8 @@ final class JoinPublicChatVC : BaseVC, UIPageViewControllerDataSource, UIPageVie Storage.shared.write { transaction in OpenGroupManager.shared.addOpenGroup(with: urlAsString, using: transaction) .done(on: DispatchQueue.main) { [weak self] _ in + let appDelegate = UIApplication.shared.delegate as! AppDelegate + appDelegate.forceSyncConfigurationNowIfNeeded().retainUntilComplete() // FIXME: It's probably cleaner to do this inside addOpenGroup(...) self?.presentingViewController!.dismiss(animated: true, completion: nil) } .catch(on: DispatchQueue.main) { [weak self] error in diff --git a/SessionMessagingKit/Sending & Receiving/MessageSender+ClosedGroups.swift b/SessionMessagingKit/Sending & Receiving/MessageSender+ClosedGroups.swift index 76b34ce97..6facbebec 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageSender+ClosedGroups.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageSender+ClosedGroups.swift @@ -3,7 +3,7 @@ import SessionProtocolKit extension MessageSender { - public static func createV2ClosedGroup(name: String, members: Set, transaction: YapDatabaseReadWriteTransaction) -> Promise { + public static func createClosedGroup(name: String, members: Set, transaction: YapDatabaseReadWriteTransaction) -> Promise { // Prepare var members = members let userPublicKey = getUserHexEncodedPublicKey() @@ -46,7 +46,7 @@ extension MessageSender { return when(fulfilled: promises).map2 { thread } } - public static func updateV2(_ groupPublicKey: String, with members: Set, name: String, transaction: YapDatabaseReadWriteTransaction) throws { + public static func update(_ groupPublicKey: String, with members: Set, name: String, transaction: YapDatabaseReadWriteTransaction) throws { // Prepare let userPublicKey = getUserHexEncodedPublicKey() let groupID = LKGroupUtilities.getEncodedClosedGroupIDAsData(groupPublicKey) @@ -117,7 +117,7 @@ extension MessageSender { } @objc(leaveClosedGroupWithPublicKey:using:error:) - public static func leaveV2(_ groupPublicKey: String, using transaction: YapDatabaseReadWriteTransaction) throws { + public static func leave(_ groupPublicKey: String, using transaction: YapDatabaseReadWriteTransaction) throws { let groupID = LKGroupUtilities.getEncodedClosedGroupIDAsData(groupPublicKey) let threadID = TSGroupThread.threadId(fromGroupId: groupID) guard let thread = TSGroupThread.fetch(uniqueId: threadID, transaction: transaction) else { @@ -133,7 +133,7 @@ extension MessageSender { } else { newMembers = [] // If the admin leaves the group is destroyed } - return try updateV2(groupPublicKey, with: newMembers, name: group.groupName!, transaction: transaction) + return try update(groupPublicKey, with: newMembers, name: group.groupName!, transaction: transaction) } public static func generateAndSendNewEncryptionKeyPair(for groupPublicKey: String, to targetMembers: Set, using transaction: Any) throws {