From 30740b5d8089ecb82b4d263e9cd040528a656a04 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 23 Jul 2020 12:41:58 -0300 Subject: [PATCH] Clean up ahead of CR. --- .../groups/GroupV2UpdatesImpl.swift | 2 +- .../src/groups/GroupManager.swift | 23 +++++++++---------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/SignalMessaging/groups/GroupV2UpdatesImpl.swift b/SignalMessaging/groups/GroupV2UpdatesImpl.swift index e98c9d1080..d83991b66f 100644 --- a/SignalMessaging/groups/GroupV2UpdatesImpl.swift +++ b/SignalMessaging/groups/GroupV2UpdatesImpl.swift @@ -303,7 +303,7 @@ public class GroupV2UpdatesImpl: NSObject, GroupV2UpdatesSwift { return GroupManager.ensureLocalProfileHasCommitmentIfNecessary() }.then(on: DispatchQueue.global()) { () throws -> Promise in // Try to use individual changes. - return firstly { + return firstly(on: .global()) { self.fetchAndApplyChangeActionsFromService(groupSecretParamsData: groupSecretParamsData, groupUpdateMode: groupUpdateMode) }.recover { (error) throws -> Promise in diff --git a/SignalServiceKit/src/groups/GroupManager.swift b/SignalServiceKit/src/groups/GroupManager.swift index b585444584..0167826021 100644 --- a/SignalServiceKit/src/groups/GroupManager.swift +++ b/SignalServiceKit/src/groups/GroupManager.swift @@ -637,12 +637,7 @@ public class GroupManager: NSObject { groupUpdateSourceAddress: SignalServiceAddress?, infoMessagePolicy: InfoMessagePolicy = .always, transaction: SDSAnyWriteTransaction) throws -> UpsertGroupResult { - guard let localAddress = tsAccountManager.localAddress else { - throw OWSAssertionError("Missing localAddress.") - } - - let mightBeAddingLocalUserToGroup = (groupModel.groupsVersion == .V1 && - groupModel.groupMembership.isPendingOrNonPendingMember(localAddress)) + let mightBeAddingLocalUserToGroup = try mightBeAddingLocalUserToV1Group(groupModel: groupModel) return try self.tryToUpsertExistingGroupThreadInDatabaseAndCreateInfoMessage(newGroupModel: groupModel, newDisappearingMessageToken: disappearingMessageToken, groupUpdateSourceAddress: groupUpdateSourceAddress, @@ -652,6 +647,14 @@ public class GroupManager: NSObject { transaction: transaction) } + private static func mightBeAddingLocalUserToV1Group(groupModel: TSGroupModel) throws -> Bool { + guard let localAddress = tsAccountManager.localAddress else { + throw OWSAssertionError("Missing localAddress.") + } + return (groupModel.groupsVersion == .V1 && + groupModel.groupMembership.isPendingOrNonPendingMember(localAddress)) + } + // MARK: - Update Existing Group (Remote) // Unlike remoteUpsertExistingGroupV1(), this method never inserts. @@ -679,8 +682,7 @@ public class GroupManager: NSObject { return UpsertGroupResult(action: .unchanged, groupThread: groupThread) } let newGroupModel = updateInfo.newGroupModel - let mightBeAddingLocalUserToGroup = (newGroupModel.groupsVersion == .V1 && - newGroupModel.groupMembership.isPendingOrNonPendingMember(localAddress)) + let mightBeAddingLocalUserToGroup = try mightBeAddingLocalUserToV1Group(groupModel: newGroupModel) return try self.tryToUpsertExistingGroupThreadInDatabaseAndCreateInfoMessage(newGroupModel: newGroupModel, newDisappearingMessageToken: disappearingMessageToken, groupUpdateSourceAddress: groupUpdateSourceAddress, @@ -738,14 +740,11 @@ public class GroupManager: NSObject { groupUpdateSourceAddress: SignalServiceAddress?) -> Promise { return self.databaseStorage.write(.promise) { (transaction) throws -> UpsertGroupResult in - guard let localAddress = tsAccountManager.localAddress else { - throw OWSAssertionError("Missing localAddress.") - } let updateInfo = try self.updateInfoV1(groupModel: proposedGroupModel, dmConfiguration: dmConfiguration, transaction: transaction) let newGroupModel = updateInfo.newGroupModel - let mightBeAddingLocalUserToGroup = newGroupModel.groupMembership.isPendingOrNonPendingMember(localAddress) + let mightBeAddingLocalUserToGroup = try mightBeAddingLocalUserToV1Group(groupModel: newGroupModel) let upsertGroupResult = try self.tryToUpsertExistingGroupThreadInDatabaseAndCreateInfoMessage(newGroupModel: newGroupModel, newDisappearingMessageToken: dmConfiguration?.asToken, groupUpdateSourceAddress: groupUpdateSourceAddress,