From 09712f0b7bb1fca167418f5f1a59dcec4e1d0a64 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Wed, 17 May 2017 14:26:51 -0400 Subject: [PATCH] Retry push token registration. // FREEBIE --- src/Account/TSAccountManager.m | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/Account/TSAccountManager.m b/src/Account/TSAccountManager.m index f745ddcb4..68811ff6c 100644 --- a/src/Account/TSAccountManager.m +++ b/src/Account/TSAccountManager.m @@ -120,6 +120,19 @@ NSString *const kNSNotificationName_RegistrationStateDidChange = @"kNSNotificati voipToken:(NSString *)voipToken success:(void (^)())successHandler failure:(void (^)(NSError *))failureHandler +{ + [self registerForPushNotificationsWithPushToken:pushToken + voipToken:voipToken + success:successHandler + failure:failureHandler + remainingRetries:3]; +} + +- (void)registerForPushNotificationsWithPushToken:(NSString *)pushToken + voipToken:(NSString *)voipToken + success:(void (^)())successHandler + failure:(void (^)(NSError *))failureHandler + remainingRetries:(int)remainingRetries { TSRegisterForPushRequest *request = [[TSRegisterForPushRequest alloc] initWithPushIdentifier:pushToken voipIdentifier:voipToken]; @@ -129,7 +142,15 @@ NSString *const kNSNotificationName_RegistrationStateDidChange = @"kNSNotificati successHandler(); } failure:^(NSURLSessionDataTask *task, NSError *error) { - failureHandler(error); + if (remainingRetries > 0) { + [self registerForPushNotificationsWithPushToken:pushToken + voipToken:voipToken + success:successHandler + failure:failureHandler + remainingRetries:remainingRetries - 1]; + } else { + failureHandler(error); + } }]; }