From b1da5e93d92fb75d58fd5dc17ea160e01c971b42 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Sun, 9 Sep 2018 12:46:23 -0500 Subject: [PATCH] group blocking v. conversation view --- .../ConversationViewController.m | 57 +++++++++---------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index b40a9b8ee..2ffb0f3e8 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -865,10 +865,14 @@ typedef enum : NSUInteger { } NSString *blockStateMessage = nil; - // FIXME - group blocking - if ([self isBlockedContactConversation]) { - blockStateMessage = NSLocalizedString( - @"MESSAGES_VIEW_CONTACT_BLOCKED", @"Indicates that this 1:1 conversation has been blocked."); + if ([self isBlockedConversation]) { + if (self.isGroupConversation) { + blockStateMessage = NSLocalizedString( + @"MESSAGES_VIEW_GROUP_BLOCKED", @"Indicates that this group conversation has been blocked."); + } else { + blockStateMessage = NSLocalizedString( + @"MESSAGES_VIEW_CONTACT_BLOCKED", @"Indicates that this 1:1 conversation has been blocked."); + } } else if (self.isGroupConversation) { int blockedGroupMemberCount = [self blockedGroupMemberCount]; if (blockedGroupMemberCount == 1) { @@ -965,9 +969,9 @@ typedef enum : NSUInteger { return; } - if ([self isBlockedContactConversation]) { - // If this a blocked 1:1 conversation, offer to unblock the user. - [self showUnblockContactUI:nil]; + if ([self isBlockedConversation]) { + // If this a blocked conversation, offer to unblock. + [self showUnblockConversationUI:nil]; } else if (self.isGroupConversation) { // If this a group conversation with at least one blocked member, // Show the block list view. @@ -1055,10 +1059,8 @@ typedef enum : NSUInteger { } } -- (void)showUnblockContactUI:(nullable BlockActionCompletionBlock)completionBlock +- (void)showUnblockConversationUI:(nullable BlockActionCompletionBlock)completionBlock { - OWSAssert([self.thread isKindOfClass:[TSContactThread class]]); - self.userHasScrolled = NO; // To avoid "noisy" animations (hiding the keyboard before showing @@ -1069,21 +1071,16 @@ typedef enum : NSUInteger { // hidden. [self dismissKeyBoard]; - NSString *contactIdentifier = ((TSContactThread *)self.thread).contactIdentifier; - [BlockListUIUtils showUnblockPhoneNumberActionSheet:contactIdentifier - fromViewController:self - blockingManager:_blockingManager - contactsManager:_contactsManager - completionBlock:completionBlock]; + [BlockListUIUtils showUnblockThreadActionSheet:self.thread + fromViewController:self + blockingManager:self.blockingManager + contactsManager:self.contactsManager + completionBlock:completionBlock]; } -- (BOOL)isBlockedContactConversation +- (BOOL)isBlockedConversation { - if (![self.thread isKindOfClass:[TSContactThread class]]) { - return NO; - } - NSString *contactIdentifier = ((TSContactThread *)self.thread).contactIdentifier; - return [[_blockingManager blockedPhoneNumbers] containsObject:contactIdentifier]; + return [self.blockingManager isThreadBlocked:self.thread]; } - (int)blockedGroupMemberCount @@ -1511,8 +1508,8 @@ typedef enum : NSUInteger { } __weak ConversationViewController *weakSelf = self; - if ([self isBlockedContactConversation]) { - [self showUnblockContactUI:^(BOOL isBlocked) { + if ([self isBlockedConversation]) { + [self showUnblockConversationUI:^(BOOL isBlocked) { if (!isBlocked) { [weakSelf callWithVideo:isVideo]; } @@ -3740,8 +3737,8 @@ typedef enum : NSUInteger { [self dismissKeyBoard]; __weak ConversationViewController *weakSelf = self; - if ([self isBlockedContactConversation]) { - [self showUnblockContactUI:^(BOOL isBlocked) { + if ([self isBlockedConversation]) { + [self showUnblockConversationUI:^(BOOL isBlocked) { if (!isBlocked) { [weakSelf attachmentButtonPressed]; } @@ -4097,8 +4094,8 @@ typedef enum : NSUInteger { DispatchMainThreadSafe(^{ __weak ConversationViewController *weakSelf = self; - if ([self isBlockedContactConversation]) { - [self showUnblockContactUI:^(BOOL isBlocked) { + if ([self isBlockedConversation]) { + [self showUnblockConversationUI:^(BOOL isBlocked) { if (!isBlocked) { [weakSelf tryToSendAttachmentIfApproved:attachment]; } @@ -4407,8 +4404,8 @@ typedef enum : NSUInteger { { __weak ConversationViewController *weakSelf = self; - if ([self isBlockedContactConversation]) { - [self showUnblockContactUI:^(BOOL isBlocked) { + if ([self isBlockedConversation]) { + [self showUnblockConversationUI:^(BOOL isBlocked) { if (!isBlocked) { [weakSelf tryToSendTextMessage:text updateKeyboardState:NO]; }