diff --git a/Podfile.lock b/Podfile.lock index cd4e9a9f9..2ba43b29a 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -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 diff --git a/Signal/src/contact/OWSContactsManager.m b/Signal/src/contact/OWSContactsManager.m index bf5313c87..a458a20f9 100644 --- a/Signal/src/contact/OWSContactsManager.m +++ b/Signal/src/contact/OWSContactsManager.m @@ -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