From db1c8fd9f392290081d70db6408fa50f775f32f9 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Wed, 16 May 2018 17:24:10 -0400 Subject: [PATCH] Respond to CR. --- .../ContactViewController.swift | 2 +- .../Cells/OWSContactShareView.m | 5 ++--- Signal/src/views/ContactCell.swift | 1 - .../ViewModels/ContactShareViewModel.swift | 11 ++++++++--- .../utils/OWSContactAvatarBuilder.h | 2 +- .../utils/OWSContactAvatarBuilder.m | 19 ++----------------- 6 files changed, 14 insertions(+), 26 deletions(-) diff --git a/Signal/src/ViewControllers/ContactViewController.swift b/Signal/src/ViewControllers/ContactViewController.swift index 5dec243a8..697fe432a 100644 --- a/Signal/src/ViewControllers/ContactViewController.swift +++ b/Signal/src/ViewControllers/ContactViewController.swift @@ -237,7 +237,7 @@ class ContactViewController: OWSViewController, ContactShareViewHelperDelegate { let avatarSize: CGFloat = 100 let avatarView = AvatarImageView() - avatarView.image = contactShare.getAvatarImage(diameter: avatarSize, contactsManager: contactsManager, ignoreContactAndProfile: true) + avatarView.image = contactShare.getAvatarImage(diameter: avatarSize, contactsManager: contactsManager) topView.addSubview(avatarView) avatarView.autoPinEdge(toSuperviewEdge: .top, withInset: 20) avatarView.autoHCenterInSuperview() diff --git a/Signal/src/ViewControllers/ConversationView/Cells/OWSContactShareView.m b/Signal/src/ViewControllers/ConversationView/Cells/OWSContactShareView.m index 58637437b..6b23a2ec7 100644 --- a/Signal/src/ViewControllers/ConversationView/Cells/OWSContactShareView.m +++ b/Signal/src/ViewControllers/ConversationView/Cells/OWSContactShareView.m @@ -188,9 +188,8 @@ NS_ASSUME_NONNULL_BEGIN [contentView autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:self.vMargin]; AvatarImageView *avatarView = [AvatarImageView new]; - avatarView.image = [self.contactShare getAvatarImageWithDiameter:self.iconSize - contactsManager:self.contactsManager - ignoreContactAndProfile:YES]; + avatarView.image = + [self.contactShare getAvatarImageWithDiameter:self.iconSize contactsManager:self.contactsManager]; [avatarView autoSetDimension:ALDimensionWidth toSize:self.iconSize]; [avatarView autoSetDimension:ALDimensionHeight toSize:self.iconSize]; diff --git a/Signal/src/views/ContactCell.swift b/Signal/src/views/ContactCell.swift index e2ef26272..7c02d885b 100644 --- a/Signal/src/views/ContactCell.swift +++ b/Signal/src/views/ContactCell.swift @@ -90,7 +90,6 @@ class ContactCell: UITableViewCell { let avatarBuilder = OWSContactAvatarBuilder(nonSignalName: contact.fullName, colorSeed: contactIdForDeterminingBackgroundColor, diameter: ContactCell.kAvatarDiameter, - ignoreContactAndProfile: false, contactsManager: contactsManager) contactImageView.image = avatarBuilder.buildDefaultImage() diff --git a/SignalMessaging/ViewModels/ContactShareViewModel.swift b/SignalMessaging/ViewModels/ContactShareViewModel.swift index 854cb65b7..7ea01ceb5 100644 --- a/SignalMessaging/ViewModels/ContactShareViewModel.swift +++ b/SignalMessaging/ViewModels/ContactShareViewModel.swift @@ -42,7 +42,7 @@ public class ContactShareViewModel: NSObject { } } - public func getAvatarImage(diameter: CGFloat, contactsManager: OWSContactsManager, ignoreContactAndProfile: Bool = false) -> UIImage { + public func getAvatarImage(diameter: CGFloat, contactsManager: OWSContactsManager) -> UIImage { if let avatarImage = avatarImage { return avatarImage } @@ -59,9 +59,14 @@ public class ContactShareViewModel: NSObject { let avatarBuilder = OWSContactAvatarBuilder(nonSignalName: displayName, colorSeed: colorSeed, diameter: UInt(diameter), - ignoreContactAndProfile: ignoreContactAndProfile, contactsManager: contactsManager) - return avatarBuilder.build() + // Note: we use buildDefaultImage() and not build() so that contact + // share views always reflect the contents of the contact share. + // build() might return an avatar from a corresponding system + // contact or profile. This could mislead the user into thinking + // that an avatar they did not share was in fact included in the + // contact share. + return avatarBuilder.buildDefaultImage() } // MARK: Delegated -> dbRecord diff --git a/SignalMessaging/utils/OWSContactAvatarBuilder.h b/SignalMessaging/utils/OWSContactAvatarBuilder.h index 1fca66361..e7d76d673 100644 --- a/SignalMessaging/utils/OWSContactAvatarBuilder.h +++ b/SignalMessaging/utils/OWSContactAvatarBuilder.h @@ -24,9 +24,9 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithNonSignalName:(NSString *)nonSignalName colorSeed:(NSString *)colorSeed diameter:(NSUInteger)diameter - ignoreContactAndProfile:(BOOL)ignoreContactAndProfile contactsManager:(OWSContactsManager *)contactsManager; + @end NS_ASSUME_NONNULL_END diff --git a/SignalMessaging/utils/OWSContactAvatarBuilder.m b/SignalMessaging/utils/OWSContactAvatarBuilder.m index b94dceaba..1b4c7ec86 100644 --- a/SignalMessaging/utils/OWSContactAvatarBuilder.m +++ b/SignalMessaging/utils/OWSContactAvatarBuilder.m @@ -23,7 +23,6 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, readonly) NSString *signalId; @property (nonatomic, readonly) NSString *contactName; @property (nonatomic, readonly) NSUInteger diameter; -@property (nonatomic, readonly) BOOL ignoreContactAndProfile; @end @@ -34,7 +33,6 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithContactId:(NSString *)contactId name:(NSString *)name diameter:(NSUInteger)diameter - ignoreContactAndProfile:(BOOL)ignoreContactAndProfile contactsManager:(OWSContactsManager *)contactsManager { self = [super init]; @@ -45,7 +43,6 @@ NS_ASSUME_NONNULL_BEGIN _signalId = contactId; _contactName = name; _diameter = diameter; - _ignoreContactAndProfile = ignoreContactAndProfile; _contactsManager = contactsManager; return self; @@ -63,33 +60,21 @@ NS_ASSUME_NONNULL_BEGIN if (name.length == 0) { name = signalId; } - return [self initWithContactId:signalId - name:name - diameter:diameter - ignoreContactAndProfile:NO - contactsManager:contactsManager]; + return [self initWithContactId:signalId name:name diameter:diameter contactsManager:contactsManager]; } - (instancetype)initWithNonSignalName:(NSString *)nonSignalName colorSeed:(NSString *)colorSeed diameter:(NSUInteger)diameter - ignoreContactAndProfile:(BOOL)ignoreContactAndProfile contactsManager:(OWSContactsManager *)contactsManager { - return [self initWithContactId:colorSeed - name:nonSignalName - diameter:diameter - ignoreContactAndProfile:ignoreContactAndProfile - contactsManager:contactsManager]; + return [self initWithContactId:colorSeed name:nonSignalName diameter:diameter contactsManager:contactsManager]; } #pragma mark - Instance methods - (nullable UIImage *)buildSavedImage { - if (self.ignoreContactAndProfile) { - return nil; - } return [self.contactsManager imageForPhoneIdentifier:self.signalId]; }