diff --git a/Signal/src/ViewControllers/AddToBlockListViewController.m b/Signal/src/ViewControllers/AddToBlockListViewController.m index ee10321d2..d7a8695a0 100644 --- a/Signal/src/ViewControllers/AddToBlockListViewController.m +++ b/Signal/src/ViewControllers/AddToBlockListViewController.m @@ -341,9 +341,10 @@ NSString *const kContactsTable_CellReuseIdentifier = @"kContactsTable_CellReuseI [self.contactsTableView reloadData]; } -- (BOOL)isContactBlocked:(Contact *)contact +- (BOOL)isContactBlockedOrHidden:(Contact *)contact { if (contact.parsedPhoneNumbers.count < 1) { + // Hide contacts without any valid phone numbers. return YES; } @@ -371,11 +372,11 @@ NSString *const kContactsTable_CellReuseIdentifier = @"kContactsTable_CellReuseI { NSMutableArray *result = [NSMutableArray new]; for (Contact *contact in self.contactsManager.signalContacts) { - if (![self isContactBlocked:contact] && ![self isCurrentUserContact:contact]) { + if (![self isContactBlockedOrHidden:contact] && ![self isCurrentUserContact:contact]) { [result addObject:contact]; } } - return result; + return [result copy]; } #pragma mark - CountryCodeViewControllerDelegate diff --git a/Signal/src/ViewControllers/MessageComposeTableViewController.m b/Signal/src/ViewControllers/MessageComposeTableViewController.m index 30483ad61..4d76e6c0c 100644 --- a/Signal/src/ViewControllers/MessageComposeTableViewController.m +++ b/Signal/src/ViewControllers/MessageComposeTableViewController.m @@ -683,9 +683,10 @@ NSString *const MessageComposeTableViewControllerCellContact = @"ContactTableVie [self.tableView reloadData]; } -- (BOOL)isContactBlocked:(Contact *)contact +- (BOOL)isContactBlockedOrHidden:(Contact *)contact { if (contact.parsedPhoneNumbers.count < 1) { + // Hide contacts without any valid phone numbers. return YES; } @@ -698,26 +699,15 @@ NSString *const MessageComposeTableViewControllerCellContact = @"ContactTableVie return NO; } -- (BOOL)isCurrentUserContact:(Contact *)contact -{ - for (PhoneNumber *phoneNumber in contact.parsedPhoneNumbers) { - if ([[phoneNumber toE164] isEqualToString:[TSAccountManager localNumber]]) { - return YES; - } - } - - return NO; -} - - (NSArray *_Nonnull)filteredContacts { NSMutableArray *result = [NSMutableArray new]; for (Contact *contact in self.contactsManager.signalContacts) { - if (![self isContactBlocked:contact] && ![self isCurrentUserContact:contact]) { + if (![self isContactBlockedOrHidden:contact]) { [result addObject:contact]; } } - return result; + return [result copy]; } #pragma mark - Navigation diff --git a/Signal/src/ViewControllers/NewGroupViewController.m b/Signal/src/ViewControllers/NewGroupViewController.m index e5b8f1320..6c8b84415 100644 --- a/Signal/src/ViewControllers/NewGroupViewController.m +++ b/Signal/src/ViewControllers/NewGroupViewController.m @@ -112,9 +112,10 @@ static NSString *const kUnwindToMessagesViewSegue = @"UnwindToMessagesViewSegue" [self.tableView reloadData]; } -- (BOOL)isContactBlocked:(Contact *)contact +- (BOOL)isContactBlockedOrHidden:(Contact *)contact { if (contact.parsedPhoneNumbers.count < 1) { + // Hide contacts without any valid phone numbers. return YES; } @@ -158,12 +159,12 @@ static NSString *const kUnwindToMessagesViewSegue = @"UnwindToMessagesViewSegue" { NSMutableArray *result = [NSMutableArray new]; for (Contact *contact in self.contactsManager.signalContacts) { - if (![self isContactBlocked:contact] && ![self isCurrentUserContact:contact] + if (![self isContactBlockedOrHidden:contact] && ![self isCurrentUserContact:contact] && ![self isContactInGroup:contact]) { [result addObject:contact]; } } - return result; + return [result copy]; } - (void)configWithThread:(TSGroupThread *)gThread {