Respond to CR.

// FREEBIE
pull/1/head
Matthew Chen 7 years ago
parent 2e653afff9
commit dc3a382c23

@ -138,7 +138,7 @@ CHECKOUT OPTIONS:
:commit: 7054e4b13ee5bcd6d524adb6dc9a726e8c466308 :commit: 7054e4b13ee5bcd6d524adb6dc9a726e8c466308
:git: https://github.com/WhisperSystems/JSQMessagesViewController.git :git: https://github.com/WhisperSystems/JSQMessagesViewController.git
SignalServiceKit: SignalServiceKit:
:commit: 1d946ccfed4d83aa36f08642f2f527a0cf4b96d0 :commit: 173823e3adaf1ba5e7a3ab731c7d34f48be8cf3a
:git: https://github.com/WhisperSystems/SignalServiceKit.git :git: https://github.com/WhisperSystems/SignalServiceKit.git
SocketRocket: SocketRocket:
:commit: 877ac7438be3ad0b45ef5ca3969574e4b97112bf :commit: 877ac7438be3ad0b45ef5ca3969574e4b97112bf

@ -6,6 +6,7 @@
#import "ContactsUpdater.h" #import "ContactsUpdater.h"
#import "Environment.h" #import "Environment.h"
#import "Util.h" #import "Util.h"
#import <SignalServiceKit/OWSError.h>
#define ADDRESSBOOK_QUEUE dispatch_get_main_queue() #define ADDRESSBOOK_QUEUE dispatch_get_main_queue()
@ -171,15 +172,19 @@ void onAddressBookChanged(ABAddressBookRef notifyAddressBook, CFDictionaryRef in
} }
- (void)intersectContacts - (void)intersectContacts
{
[self intersectContactsWithRetryDelay:1.f];
}
- (void)intersectContactsWithRetryDelay:(CGFloat)retryDelaySeconds
{ {
void (^success)() = ^{ void (^success)() = ^{
DDLogInfo(@"%@ Successfully intersected contacts.", self.tag); DDLogInfo(@"%@ Successfully intersected contacts.", self.tag);
[self fireSignalRecipientsDidChange]; [self fireSignalRecipientsDidChange];
}; };
void (^failure)(NSError *error) = ^(NSError *error) { void (^failure)(NSError *error) = ^(NSError *error) {
if ([error.domain isEqualToString:OWSSignalServiceKitErrorDomain]
if ([error.domain isEqualToString:kContactsUpdaterErrorDomain] && error.code == OWSErrorCodeContactsUpdaterRateLimit) {
&& error.code == kContactsUpdaterRateLimitErrorCode) {
DDLogError(@"Contact intersection hit rate limit with error: %@", error); DDLogError(@"Contact intersection hit rate limit with error: %@", error);
return; return;
} }
@ -190,7 +195,7 @@ void onAddressBookChanged(ABAddressBookRef notifyAddressBook, CFDictionaryRef in
// //
// TODO: Abort if another contact intersection succeeds in the meantime. // TODO: Abort if another contact intersection succeeds in the meantime.
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self intersectContacts]; [self intersectContactsWithRetryDelay:retryDelaySeconds * 2.f];
}); });
}; };
[[ContactsUpdater sharedUpdater] updateSignalContactIntersectionWithABContacts:self.allContacts [[ContactsUpdater sharedUpdater] updateSignalContactIntersectionWithABContacts:self.allContacts

Loading…
Cancel
Save