From a31b1aeea6ae549a94b4cbae0714ffd8ead160fd Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 3 Oct 2017 15:53:39 -0400 Subject: [PATCH] Respond to "sync block list" request. // FREEBIE --- SignalServiceKit/src/Messages/OWSBlockingManager.h | 2 ++ SignalServiceKit/src/Messages/OWSBlockingManager.m | 9 +++++++++ SignalServiceKit/src/Messages/OWSMessageManager.m | 4 ++-- 3 files changed, 13 insertions(+), 2 deletions(-) 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];