diff --git a/SignalServiceKit/src/Messages/OWSBlockingManager.h b/SignalServiceKit/src/Messages/OWSBlockingManager.h index 424cb5179..e600aadab 100644 --- a/SignalServiceKit/src/Messages/OWSBlockingManager.h +++ b/SignalServiceKit/src/Messages/OWSBlockingManager.h @@ -25,6 +25,8 @@ extern NSString *const kNSNotificationName_BlockedPhoneNumbersDidChange; - (BOOL)isRecipientIdBlocked:(NSString *)recipientId; +- (void)syncBlockedPhoneNumbers; + @end NS_ASSUME_NONNULL_END diff --git a/SignalServiceKit/src/Messages/OWSBlockingManager.m b/SignalServiceKit/src/Messages/OWSBlockingManager.m index 97994c4f3..f09b28e56 100644 --- a/SignalServiceKit/src/Messages/OWSBlockingManager.m +++ b/SignalServiceKit/src/Messages/OWSBlockingManager.m @@ -225,6 +225,15 @@ NSString *const kOWSBlockingManager_SyncedBlockedPhoneNumbersKey = @"kOWSBlockin [self observeNotifications]; } +- (void)syncBlockedPhoneNumbers +{ + OWSAssert(_blockedPhoneNumberSet); + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + [self sendBlockedPhoneNumbersMessage:self.blockedPhoneNumbers]; + }); +} + // This method should only be called from within a synchronized block. - (void)syncBlockedPhoneNumbersIfNecessary { diff --git a/SignalServiceKit/src/Messages/OWSMessageManager.m b/SignalServiceKit/src/Messages/OWSMessageManager.m index a44d800b6..b4a9aa2b5 100644 --- a/SignalServiceKit/src/Messages/OWSMessageManager.m +++ b/SignalServiceKit/src/Messages/OWSMessageManager.m @@ -602,8 +602,8 @@ NS_ASSUME_NONNULL_BEGIN DDLogError(@"%@ Failed to send Groups response syncMessage with error: %@", self.tag, error); }]; } else if (syncMessage.request.type == OWSSignalServiceProtosSyncMessageRequestTypeBlocked) { - // TODO - DDLogWarn(@"%@ Received unsupported request for block list", self.tag); + DDLogInfo(@"%@ Received request for block list", self.tag); + [_blockingManager syncBlockedPhoneNumbers]; } else if (syncMessage.request.type == OWSSignalServiceProtosSyncMessageRequestTypeConfiguration) { BOOL areReadReceiptsEnabled = [[OWSReadReceiptManager sharedManager] areReadReceiptsEnabledWithTransaction:transaction];