Respond to CR.

// FREEBIE
This commit is contained in:
Matthew Chen 2017-04-13 15:38:32 -04:00
parent 2e653afff9
commit dc3a382c23
2 changed files with 10 additions and 5 deletions

View File

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

View File

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