From 64e90d29fd3dd30a04e0605d33d5627df7a2fb07 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Thu, 14 Dec 2017 10:51:46 -0500 Subject: [PATCH] CR: extract method, more asserts and annotations // FREEBIE --- .../OWSConversationSettingsViewController.m | 2 +- Signal/src/contact/OWSContactsManager.h | 1 + Signal/src/contact/OWSContactsManager.m | 11 ++++++++--- Signal/src/util/ThreadUtil.m | 3 +-- SignalServiceKit/src/Contacts/SignalAccount.m | 9 +++------ 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Signal/src/ViewControllers/OWSConversationSettingsViewController.m b/Signal/src/ViewControllers/OWSConversationSettingsViewController.m index 4eaece5fb..803cdabb8 100644 --- a/Signal/src/ViewControllers/OWSConversationSettingsViewController.m +++ b/Signal/src/ViewControllers/OWSConversationSettingsViewController.m @@ -171,7 +171,7 @@ NS_ASSUME_NONNULL_BEGIN OWSAssert([self.thread isKindOfClass:[TSContactThread class]]); TSContactThread *contactThread = (TSContactThread *)self.thread; NSString *recipientId = contactThread.contactIdentifier; - return [self.contactsManager signalAccountForRecipientId:recipientId] != nil; + return [self.contactsManager hasSignalAccountForRecipientId:recipientId]; } #pragma mark - ContactEditingDelegate diff --git a/Signal/src/contact/OWSContactsManager.h b/Signal/src/contact/OWSContactsManager.h index 134ec2156..e26cf05a4 100644 --- a/Signal/src/contact/OWSContactsManager.h +++ b/Signal/src/contact/OWSContactsManager.h @@ -33,6 +33,7 @@ extern NSString *const OWSContactsManagerSignalAccountsDidChangeNotification; // order of the signalAccounts array respects the systems contact sorting preference @property (atomic, readonly) NSArray *signalAccounts; - (nullable SignalAccount *)signalAccountForRecipientId:(NSString *)recipientId; +- (BOOL)hasSignalAccountForRecipientId:(NSString *)recipientId; - (void)loadSignalAccountsFromCache; #pragma mark - System Contact Fetching diff --git a/Signal/src/contact/OWSContactsManager.m b/Signal/src/contact/OWSContactsManager.m index 29e531144..c6b2816f7 100644 --- a/Signal/src/contact/OWSContactsManager.m +++ b/Signal/src/contact/OWSContactsManager.m @@ -284,7 +284,7 @@ NSString *const OWSContactsManagerSignalAccountsDidChangeNotification { OWSAssert(recipientId.length > 0); - SignalAccount *signalAccount = [self signalAccountForRecipientId:recipientId]; + SignalAccount *_Nullable signalAccount = [self signalAccountForRecipientId:recipientId]; return signalAccount.displayName; } @@ -292,7 +292,7 @@ NSString *const OWSContactsManagerSignalAccountsDidChangeNotification { OWSAssert(recipientId.length > 0); - SignalAccount *signalAccount = [self signalAccountForRecipientId:recipientId]; + SignalAccount *_Nullable signalAccount = [self signalAccountForRecipientId:recipientId]; return signalAccount.contact.firstName; } @@ -300,7 +300,7 @@ NSString *const OWSContactsManagerSignalAccountsDidChangeNotification { OWSAssert(recipientId.length > 0); - SignalAccount *signalAccount = [self signalAccountForRecipientId:recipientId]; + SignalAccount *_Nullable signalAccount = [self signalAccountForRecipientId:recipientId]; return signalAccount.contact.lastName; } @@ -593,6 +593,11 @@ NSString *const OWSContactsManagerSignalAccountsDidChangeNotification return signalAccount; } +- (BOOL)hasSignalAccountForRecipientId:(NSString *)recipientId +{ + return [self signalAccountForRecipientId:recipientId] != nil; +} + - (UIImage * _Nullable)imageForPhoneIdentifier:(NSString * _Nullable)identifier { Contact *contact = self.allContactsMap[identifier]; if (!contact) { diff --git a/Signal/src/util/ThreadUtil.m b/Signal/src/util/ThreadUtil.m index eeb0551b7..81b5f304b 100644 --- a/Signal/src/util/ThreadUtil.m +++ b/Signal/src/util/ThreadUtil.m @@ -388,8 +388,7 @@ NS_ASSUME_NONNULL_BEGIN shouldHaveAddToProfileWhitelistOffer = NO; } - BOOL isContact = [contactsManager signalAccountForRecipientId:recipientId] != nil; - if (isContact) { + if ([contactsManager hasSignalAccountForRecipientId:recipientId]) { // Only create "add to contacts" offers for non-contacts. shouldHaveAddToContactsOffer = NO; // Only create block offers for non-contacts. diff --git a/SignalServiceKit/src/Contacts/SignalAccount.m b/SignalServiceKit/src/Contacts/SignalAccount.m index e30daea54..af35a238b 100644 --- a/SignalServiceKit/src/Contacts/SignalAccount.m +++ b/SignalServiceKit/src/Contacts/SignalAccount.m @@ -21,12 +21,8 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithSignalRecipient:(SignalRecipient *)signalRecipient { - if (self = [super init]) { - OWSAssert(signalRecipient); - - _recipientId = signalRecipient.uniqueId; - } - return self; + OWSAssert(signalRecipient); + return [self initWithRecipientId:signalRecipient.recipientId]; } - (instancetype)initWithRecipientId:(NSString *)recipientId @@ -44,6 +40,7 @@ NS_ASSUME_NONNULL_BEGIN OWSAssert([NSThread isMainThread]); OWSAssert(transaction); + OWSAssert(self.recipientId.length > 0); return [SignalRecipient recipientWithTextSecureIdentifier:self.recipientId withTransaction:transaction]; }