require explicit avatar diameter

This will help us get crisper text in our generated avatars.

// FREEBIE
pull/1/head
Michael Kirk 7 years ago
parent 19d74d91e0
commit 52aa8a3744

@ -10,8 +10,9 @@ NS_ASSUME_NONNULL_BEGIN
@interface OWSAvatarBuilder : NSObject
+ (UIImage *)buildImageForThread:(TSThread *)thread contactsManager:(OWSContactsManager *)contactsManager;
+ (UIImage *)buildImageForThread:(TSThread *)thread contactsManager:(OWSContactsManager *)contactsManager diameter:(CGFloat)diameter;
+ (UIImage *)buildImageForThread:(TSThread *)thread
contactsManager:(OWSContactsManager *)contactsManager
diameter:(NSUInteger)diameter;
- (nullable UIImage *)buildSavedImage;
- (UIImage *)buildDefaultImage;

@ -12,13 +12,9 @@ NS_ASSUME_NONNULL_BEGIN
@implementation OWSAvatarBuilder
+ (UIImage *)buildImageForThread:(TSThread *)thread contactsManager:(OWSContactsManager *)contactsManager
{
const CGFloat kDefaultAvatarDiameter = 100;
return [self buildImageForThread:thread contactsManager:contactsManager diameter:kDefaultAvatarDiameter];
}
+ (UIImage *)buildImageForThread:(TSThread *)thread contactsManager:(OWSContactsManager *)contactsManager diameter:(CGFloat)diameter
+ (UIImage *)buildImageForThread:(TSThread *)thread
contactsManager:(OWSContactsManager *)contactsManager
diameter:(NSUInteger)diameter
{
OWSAvatarBuilder *avatarBuilder;
if ([thread isKindOfClass:[TSContactThread class]]) {

@ -11,10 +11,6 @@ NS_ASSUME_NONNULL_BEGIN
@interface OWSContactAvatarBuilder : OWSAvatarBuilder
- (instancetype)initWithContactId:(NSString *)contactId
name:(NSString *)name
contactsManager:(OWSContactsManager *)contactsManager;
- (instancetype)initWithContactId:(NSString *)contactId
name:(NSString *)name
contactsManager:(OWSContactsManager *)contactsManager
@ -24,8 +20,6 @@ NS_ASSUME_NONNULL_BEGIN
contactsManager:(OWSContactsManager *)contactsManager
diameter:(NSUInteger)diameter;
- (instancetype)initWithThread:(TSContactThread *)thread contactsManager:(OWSContactsManager *)contactsManager;
@end
NS_ASSUME_NONNULL_END

@ -24,14 +24,6 @@ NS_ASSUME_NONNULL_BEGIN
@implementation OWSContactAvatarBuilder
- (instancetype)initWithContactId:(NSString *)contactId
name:(NSString *)name
contactsManager:(OWSContactsManager *)contactsManager
{
const CGFloat kDefaultAvatarDiamater = 100;
return [self initWithContactId:contactId name:name contactsManager:contactsManager diameter:kDefaultAvatarDiamater];
}
- (instancetype)initWithContactId:(NSString *)contactId
name:(NSString *)name
contactsManager:(OWSContactsManager *)contactsManager
@ -50,7 +42,9 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
- (instancetype)initWithThread:(TSContactThread *)thread contactsManager:(OWSContactsManager *)contactsManager diameter:(CGFloat)diameter
- (instancetype)initWithThread:(TSContactThread *)thread
contactsManager:(OWSContactsManager *)contactsManager
diameter:(NSUInteger)diameter
{
return [self initWithContactId:thread.contactIdentifier name:thread.name contactsManager:contactsManager diameter:diameter];
}

@ -24,6 +24,8 @@ NS_ASSUME_NONNULL_BEGIN
#define DATE_LABEL_SIZE 13
#define SWIPE_ARCHIVE_OFFSET -50
const NSUInteger kContactPictureViewDiameter = 52;
@interface InboxTableViewCell ()
@property (nonatomic) NSUInteger unreadMessages;
@ -132,7 +134,9 @@ NS_ASSUME_NONNULL_BEGIN
NSString *threadIdCopy = thread.uniqueId;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
UIImage *avatar = [OWSAvatarBuilder buildImageForThread:thread contactsManager:contactsManager];
UIImage *avatar = [OWSAvatarBuilder buildImageForThread:thread
contactsManager:contactsManager
diameter:kContactPictureViewDiameter];
dispatch_async(dispatch_get_main_queue(), ^{
if ([_threadId isEqualToString:threadIdCopy]) {
self.contactPictureView.image = avatar;

@ -4,6 +4,7 @@
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12088"/>
<capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@ -19,11 +20,12 @@
<autoresizingMask key="autoresizingMask" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kq8-RD-txC" userLabel="Container View">
<rect key="frame" x="0.0" y="0.0" width="400" height="72"/>
<rect key="frame" x="0.0" y="0.0" width="400" height="47"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="p9o-x6-nT5" customClass="AvatarImageView" customModule="Signal" customModuleProvider="target">
<rect key="frame" x="10" y="10" width="52" height="53"/>
<rect key="frame" x="10" y="10" width="52" height="52"/>
<constraints>
<constraint firstAttribute="width" secondItem="p9o-x6-nT5" secondAttribute="height" multiplier="1:1" id="IjZ-Ac-GiV"/>
<constraint firstAttribute="width" constant="52" id="mb7-1o-58k"/>
</constraints>
</imageView>
@ -53,7 +55,7 @@
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mfN-2A-QxN">
<rect key="frame" x="75" y="6" width="236" height="25"/>
<rect key="frame" x="75" y="6" width="236" height="0.0"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>

@ -536,9 +536,11 @@ NS_ASSUME_NONNULL_BEGIN
[threadInfoView autoPinWidthToSuperviewWithMargin:16.f];
[threadInfoView autoPinHeightToSuperviewWithMargin:16.f];
UIImage *avatar = [OWSAvatarBuilder buildImageForThread:self.thread contactsManager:self.contactsManager];
const NSUInteger kAvatarSize = 68;
UIImage *avatar =
[OWSAvatarBuilder buildImageForThread:self.thread contactsManager:self.contactsManager diameter:kAvatarSize];
OWSAssert(avatar);
const CGFloat kAvatarSize = 68.f;
AvatarImageView *avatarView = [[AvatarImageView alloc] initWithImage:avatar];
_avatarView = avatarView;
[threadInfoView addSubview:avatarView];

@ -60,9 +60,11 @@ class ContactCell: UITableViewCell {
contactIdForDeterminingBackgroundColor = contact.fullName
}
let kAvatarWidth: UInt = 40
let avatarBuilder = OWSContactAvatarBuilder(contactId:contactIdForDeterminingBackgroundColor,
name:contact.fullName,
contactsManager:contactsManager)
contactsManager:contactsManager,
diameter: kAvatarWidth)
self.contactImageView?.image = avatarBuilder.buildDefaultImage()
} else {
self.contactImageView?.image = contact.image

@ -17,6 +17,7 @@
NS_ASSUME_NONNULL_BEGIN
NSString *const kContactsTable_CellReuseIdentifier = @"kContactsTable_CellReuseIdentifier";
const NSUInteger kContactTableViewCellAvatarSize = 40;
@interface ContactTableViewCell ()
@ -52,7 +53,6 @@ NSString *const kContactsTable_CellReuseIdentifier = @"kContactsTable_CellReuseI
- (void)configureProgrammatically
{
const CGFloat kAvatarSize = 40.f;
_avatarView = [AvatarImageView new];
[self.contentView addSubview:_avatarView];
@ -64,8 +64,8 @@ NSString *const kContactsTable_CellReuseIdentifier = @"kContactsTable_CellReuseI
[_avatarView autoVCenterInSuperview];
[_avatarView autoPinEdgeToSuperviewEdge:ALEdgeLeft withInset:ScaleFromIPhone5To7Plus(14.f, 20.f)];
[_avatarView autoSetDimension:ALDimensionWidth toSize:kAvatarSize];
[_avatarView autoSetDimension:ALDimensionHeight toSize:kAvatarSize];
[_avatarView autoSetDimension:ALDimensionWidth toSize:kContactTableViewCellAvatarSize];
[_avatarView autoSetDimension:ALDimensionHeight toSize:kContactTableViewCellAvatarSize];
[_nameLabel autoPinEdgeToSuperviewEdge:ALEdgeRight];
[_nameLabel autoPinEdgeToSuperviewEdge:ALEdgeTop];
@ -111,9 +111,10 @@ NSString *const kContactsTable_CellReuseIdentifier = @"kContactsTable_CellReuseI
self.accessoryView = blockedLabel;
}
self.nameLabel.attributedText = attributedText;
self.avatarView.image =
[[[OWSContactAvatarBuilder alloc] initWithContactId:recipientId name:avatarName contactsManager:contactsManager]
build];
self.avatarView.image = [[[OWSContactAvatarBuilder alloc] initWithContactId:recipientId
name:avatarName
contactsManager:contactsManager
diameter:kContactTableViewCellAvatarSize] build];
// Force layout, since imageView isn't being initally rendered on App Store optimized build.
[self layoutSubviews];
@ -135,7 +136,9 @@ NSString *const kContactsTable_CellReuseIdentifier = @"kContactsTable_CellReuseI
}];
self.nameLabel.attributedText = attributedText;
self.avatarView.image = [OWSAvatarBuilder buildImageForThread:thread contactsManager:contactsManager];
self.avatarView.image = [OWSAvatarBuilder buildImageForThread:thread
contactsManager:contactsManager
diameter:kContactTableViewCellAvatarSize];
// Force layout, since imageView isn't being initally rendered on App Store optimized build.
[self layoutSubviews];

Loading…
Cancel
Save