Fix avatar contact name when is disabled

This commit is contained in:
Nora Trapp 2019-09-03 12:12:13 -07:00
parent d5152c946b
commit ccaa4e0e90
8 changed files with 73 additions and 38 deletions

View File

@ -553,7 +553,7 @@ const CGFloat kRemotelySourcedContentRowSpacing = 3;
if (SSKFeatureFlags.profileDisplayChanges) {
quotedAuthor = [contactsManager displayNameForAddress:self.quotedMessage.authorAddress];
} else {
quotedAuthor = [contactsManager contactOrProfileNameForAddress:self.quotedMessage.authorAddress];
quotedAuthor = [contactsManager legacyDisplayNameForAddress:self.quotedMessage.authorAddress];
}
quotedAuthorText = [NSString
stringWithFormat:

View File

@ -1368,9 +1368,9 @@ typedef enum : NSUInteger {
name = [self.contactsManager displayNameForAddress:thread.contactAddress];
} else {
attributedName =
[self.contactsManager attributedContactOrProfileNameForAddress:thread.contactAddress
primaryFont:self.headerView.titlePrimaryFont
secondaryFont:self.headerView.titleSecondaryFont];
[self.contactsManager attributedLegacyDisplayNameForAddress:thread.contactAddress
primaryFont:self.headerView.titlePrimaryFont
secondaryFont:self.headerView.titleSecondaryFont];
}
// If the user is in the system contacts, show a badge

View File

@ -1649,10 +1649,9 @@ static const int kYapDatabaseRangeMaxLength = 25000;
senderName = [[NSAttributedString alloc] initWithString:accessibilityAuthorName];
} else {
senderName = [self.contactsManager
attributedContactOrProfileNameForAddress:incomingSenderAddress
primaryAttributes:[OWSMessageBubbleView senderNamePrimaryAttributes]
secondaryAttributes:[OWSMessageBubbleView
senderNameSecondaryAttributes]];
attributedLegacyDisplayNameForAddress:incomingSenderAddress
primaryAttributes:[OWSMessageBubbleView senderNamePrimaryAttributes]
secondaryAttributes:[OWSMessageBubbleView senderNameSecondaryAttributes]];
}
}

View File

@ -525,9 +525,9 @@ NS_ASSUME_NONNULL_BEGIN
} else if (SSKFeatureFlags.profileDisplayChanges) {
name = [self.contactsManager displayNameForAddress:thread.contactAddress];
} else {
attributedName = [self.contactsManager attributedContactOrProfileNameForAddress:thread.contactAddress
primaryFont:self.nameFont
secondaryFont:self.nameSecondaryFont];
attributedName = [self.contactsManager attributedLegacyDisplayNameForAddress:thread.contactAddress
primaryFont:self.nameFont
secondaryFont:self.nameSecondaryFont];
}
}

View File

@ -239,7 +239,7 @@ class MessageDetailViewController: OWSViewController {
if FeatureFlags.profileDisplayChanges {
senderName = contactsManager.displayName(for: incomingMessage.authorAddress)
} else {
senderName = contactsManager.contactOrProfileName(for: incomingMessage.authorAddress)
senderName = contactsManager.legacyDisplayName(for: incomingMessage.authorAddress)
}
rows.append(valueRow(name: NSLocalizedString("MESSAGE_METADATA_VIEW_SENDER",
comment: "Label for the 'sender' field of the 'message metadata' view."),

View File

@ -84,15 +84,17 @@ extern NSString *const OWSContactsManagerSignalAccountsDidChangeNotification;
- (nullable UIImage *)imageForAddressWithSneakyTransaction:(nullable SignalServiceAddress *)address;
// Legacy display name helpers, once the `profileDisplayChanges` feature is enabled these can go away.
- (NSString *)contactOrProfileNameForAddress:(SignalServiceAddress *)address;
- (NSAttributedString *)attributedContactOrProfileNameForAddress:(SignalServiceAddress *)address
primaryFont:(UIFont *)primaryFont
secondaryFont:(UIFont *)secondaryFont;
- (NSAttributedString *)attributedContactOrProfileNameForAddress:(SignalServiceAddress *)address
primaryAttributes:(NSDictionary *)primaryAttributes
secondaryAttributes:(NSDictionary *)secondaryAttributes;
- (NSString *)legacyDisplayNameForAddress:(SignalServiceAddress *)address;
- (NSAttributedString *)attributedLegacyDisplayNameForAddress:(SignalServiceAddress *)address
primaryFont:(UIFont *)primaryFont
secondaryFont:(UIFont *)secondaryFont;
- (NSAttributedString *)attributedLegacyDisplayNameForAddress:(SignalServiceAddress *)address
primaryAttributes:(NSDictionary *)primaryAttributes
secondaryAttributes:(NSDictionary *)secondaryAttributes;
- (nullable NSString *)formattedProfileNameForAddress:(SignalServiceAddress *)address;
- (nullable NSString *)contactOrProfileNameForAddress:(SignalServiceAddress *)address;
@end
NS_ASSUME_NONNULL_END

View File

@ -1049,7 +1049,7 @@ NSString *const OWSContactsManagerKeyNextFullIntersectionDate = @"OWSContactsMan
#pragma mark -
- (NSString *)contactOrProfileNameForAddress:(SignalServiceAddress *)address
- (NSString *)legacyDisplayNameForAddress:(SignalServiceAddress *)address
{
OWSAssertDebug(address.isValid);
@ -1072,25 +1072,25 @@ NSString *const OWSContactsManagerKeyNextFullIntersectionDate = @"OWSContactsMan
return address.stringForDisplay;
}
- (NSAttributedString *)attributedContactOrProfileNameForAddress:(SignalServiceAddress *)address
primaryFont:(UIFont *)primaryFont
secondaryFont:(UIFont *)secondaryFont
- (NSAttributedString *)attributedLegacyDisplayNameForAddress:(SignalServiceAddress *)address
primaryFont:(UIFont *)primaryFont
secondaryFont:(UIFont *)secondaryFont
{
OWSAssertDebug(primaryFont);
OWSAssertDebug(secondaryFont);
return [self attributedContactOrProfileNameForAddress:address
primaryAttributes:@{
NSFontAttributeName : primaryFont,
}
secondaryAttributes:@{
NSFontAttributeName : secondaryFont,
}];
return [self attributedLegacyDisplayNameForAddress:address
primaryAttributes:@{
NSFontAttributeName : primaryFont,
}
secondaryAttributes:@{
NSFontAttributeName : secondaryFont,
}];
}
- (NSAttributedString *)attributedContactOrProfileNameForAddress:(SignalServiceAddress *)address
primaryAttributes:(NSDictionary *)primaryAttributes
secondaryAttributes:(NSDictionary *)secondaryAttributes
- (NSAttributedString *)attributedLegacyDisplayNameForAddress:(SignalServiceAddress *)address
primaryAttributes:(NSDictionary *)primaryAttributes
secondaryAttributes:(NSDictionary *)secondaryAttributes
{
OWSAssertDebug(address.isValid);
OWSAssertDebug(primaryAttributes.count > 0);
@ -1122,13 +1122,26 @@ NSString *const OWSContactsManagerKeyNextFullIntersectionDate = @"OWSContactsMan
return [[NSAttributedString alloc] initWithString:address.stringForDisplay attributes:primaryAttributes];
}
- (nullable NSString *)formattedProfileNameForAddress:(SignalServiceAddress *)address
- (nullable NSString *)profileNameForAddress:(SignalServiceAddress *)address
{
OWSAssertDebug(address.isValid);
__block NSString *_Nullable profileName;
[self.databaseStorage readWithBlock:^(SDSAnyReadTransaction *transaction) {
profileName = [self.profileManager profileNameForAddress:address transaction:transaction];
}];
if (profileName.length > 0) {
return profileName;
}
return nil;
}
- (nullable NSString *)formattedProfileNameForAddress:(SignalServiceAddress *)address
{
NSString *_Nullable profileName = [self profileNameForAddress:address];
if (profileName.length > 0) {
return [@"~" stringByAppendingString:profileName];
}
@ -1136,6 +1149,19 @@ NSString *const OWSContactsManagerKeyNextFullIntersectionDate = @"OWSContactsMan
return nil;
}
- (nullable NSString *)contactOrProfileNameForAddress:(SignalServiceAddress *)address
{
OWSAssertDebug(address.isValid);
NSString *_Nullable name = [self cachedLastNameForAddress:address];
if (name.length == 0) {
name = [self profileNameForAddress:address];
}
return name;
}
NS_ASSUME_NONNULL_END
@end

View File

@ -51,11 +51,19 @@ NS_ASSUME_NONNULL_BEGIN
colorName:(ConversationColorName)colorName
diameter:(NSUInteger)diameter
{
// Name for avatar initials.
NSString *_Nullable name = [OWSContactAvatarBuilder.contactsManager displayNameForAddress:address];
if (name.length == 0) {
name = address.stringForDisplay;
// Name for avatar initials.
NSString *_Nullable name;
if (SSKFeatureFlags.profileDisplayChanges) {
name = [OWSContactAvatarBuilder.contactsManager displayNameForAddress:address];
} else {
name = [OWSContactAvatarBuilder.contactsManager contactOrProfileNameForAddress:address];
if (name.length == 0) {
name = address.stringForDisplay;
}
}
return [self initWithAddress:address name:name colorName:colorName diameter:diameter];