From ad9c715bf79db2e141b62a005995e41b7b50352e Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Fri, 12 May 2017 12:51:01 -0400 Subject: [PATCH] =?UTF-8?q?Deduplicate=20items=20in=20new=20conversation?= =?UTF-8?q?=20view=20and=20try=20to=20show=20=E2=80=9Cphone=20number?= =?UTF-8?q?=E2=80=9D=20results=20as=20signal=20accounts=20if=20possible.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit // FREEBIE --- .../MessageComposeTableViewController.m | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Signal/src/ViewControllers/MessageComposeTableViewController.m b/Signal/src/ViewControllers/MessageComposeTableViewController.m index 10f2f2415..af8c8add4 100644 --- a/Signal/src/ViewControllers/MessageComposeTableViewController.m +++ b/Signal/src/ViewControllers/MessageComposeTableViewController.m @@ -299,7 +299,12 @@ NS_ASSUME_NONNULL_BEGIN @"CONTACT_CELL_IS_BLOCKED", @"An indicator that a contact has been blocked."); } - [cell configureWithRecipientId:phoneNumber contactsManager:helper.contactsManager]; + SignalAccount *signalAccount = [helper signalAccountForRecipientId:phoneNumber]; + if (signalAccount) { + [cell configureWithSignalAccount:signalAccount contactsManager:helper.contactsManager]; + } else { + [cell configureWithRecipientId:phoneNumber contactsManager:helper.contactsManager]; + } return cell; } @@ -330,6 +335,11 @@ NS_ASSUME_NONNULL_BEGIN // Contacts, possibly filtered with the search text. NSArray *filteredSignalAccounts = [self filteredSignalAccounts]; for (SignalAccount *signalAccount in filteredSignalAccounts) { + if ([searchPhoneNumbers containsObject:signalAccount.recipientId]) { + // Don't show a contact if they already appear in the "search phone numbers" + // results. + continue; + } [section addItem:[OWSTableItem itemWithCustomCellBlock:^{ ContactTableViewCell *cell = [ContactTableViewCell new]; BOOL isBlocked = [helper isRecipientIdBlocked:signalAccount.recipientId];