wip: fix sync message

pull/104/head
Ryan ZHAO 6 years ago
parent 63aafe06a1
commit dfa238a287

@ -5,7 +5,7 @@
<key>BuildDetails</key> <key>BuildDetails</key>
<dict> <dict>
<key>CarthageVersion</key> <key>CarthageVersion</key>
<string>0.33.0</string> <string>0.34.0</string>
<key>OSXVersion</key> <key>OSXVersion</key>
<string>10.15.2</string> <string>10.15.2</string>
<key>WebRTCCommit</key> <key>WebRTCCommit</key>

@ -165,8 +165,8 @@ final class DeviceLinkingModal : Modal, DeviceLinkingSessionDelegate {
let linkingAuthorizationMessage = DeviceLinkingUtilities.getLinkingAuthorizationMessage(for: deviceLink) let linkingAuthorizationMessage = DeviceLinkingUtilities.getLinkingAuthorizationMessage(for: deviceLink)
ThreadUtil.enqueue(linkingAuthorizationMessage) ThreadUtil.enqueue(linkingAuthorizationMessage)
SSKEnvironment.shared.messageSender.send(linkingAuthorizationMessage, success: { SSKEnvironment.shared.messageSender.send(linkingAuthorizationMessage, success: {
let _ = SSKEnvironment.shared.syncManager.syncAllContacts() let _ = [SSKEnvironment.shared.syncManager.syncAllContacts(),
// _ = SSKEnvironment.shared.syncManager.syncAllGroups() SSKEnvironment.shared.syncManager.syncAllGroups()]
}) { _ in }) { _ in
print("[Loki] Failed to send device link authorization message.") print("[Loki] Failed to send device link authorization message.")
} }

@ -288,15 +288,21 @@ NSString *const kSyncManagerLastContactSyncKey = @"kTSStorageManagerOWSSyncManag
if (hexEncodedPublicKey != nil && thread.isContactFriend && thread.shouldThreadBeVisible && !thread.isForceHidden) { if (hexEncodedPublicKey != nil && thread.isContactFriend && thread.shouldThreadBeVisible && !thread.isForceHidden) {
[friends addObject:[[SignalAccount alloc] initWithRecipientId:hexEncodedPublicKey]]; [friends addObject:[[SignalAccount alloc] initWithRecipientId:hexEncodedPublicKey]];
} }
if (friends.count >= 2) {
[promises addObject:[self syncContactsForSignalAccounts:friends]];
[friends removeAllObjects];
}
}]; }];
if (friends.count > 0) { NSMutableArray<SignalAccount *> *signalAccounts = @[].mutableCopy;
[promises addObject:[self syncContactsForSignalAccounts:friends]]; for (SignalAccount *contact in friends) {
[signalAccounts addObject:contact];
if (signalAccounts.count >= 2) {
[promises addObject:[self syncContactsForSignalAccounts:signalAccounts]];
[signalAccounts removeAllObjects];
}
} }
return PMKJoin(promises); if (signalAccounts.count > 0) {
[promises addObject:[self syncContactsForSignalAccounts:signalAccounts]];
}
AnyPromise *promise = PMKJoin(promises);
[promise retainUntilComplete];
return promise;
} }
- (AnyPromise *)syncContactsForSignalAccounts:(NSArray<SignalAccount *> *)signalAccounts - (AnyPromise *)syncContactsForSignalAccounts:(NSArray<SignalAccount *> *)signalAccounts
@ -319,13 +325,19 @@ NSString *const kSyncManagerLastContactSyncKey = @"kTSStorageManagerOWSSyncManag
- (AnyPromise *)syncAllGroups - (AnyPromise *)syncAllGroups
{ {
NSMutableArray<TSGroupThread *> *groupThreads = @[].mutableCopy;
NSMutableArray<AnyPromise *> *promises = @[].mutableCopy; NSMutableArray<AnyPromise *> *promises = @[].mutableCopy;
[TSGroupThread enumerateCollectionObjectsUsingBlock:^(TSGroupThread *thread, BOOL *stop) { [TSGroupThread enumerateCollectionObjectsUsingBlock:^(TSGroupThread *thread, BOOL *stop) {
if (thread.groupModel && thread.shouldThreadBeVisible && !thread.isForceHidden) { if (thread.groupModel.groupType == closedGroup && thread.shouldThreadBeVisible && !thread.isForceHidden) {
[promises addObject:[self syncGroupForThread:thread]]; [groupThreads addObject:thread];
} }
}]; }];
return PMKJoin(promises); for (TSGroupThread *groupThread in groupThreads) {
[promises addObject:[self syncGroupForThread:groupThread]];
}
AnyPromise *promise = PMKJoin(promises);
[promise retainUntilComplete];
return promise;
} }
- (AnyPromise *)syncGroupForThread:(TSGroupThread *)thread - (AnyPromise *)syncGroupForThread:(TSGroupThread *)thread

Loading…
Cancel
Save