session-ios/Signal/src/Models/OWSGroupAvatarBuilder.m
Michael Kirk 742f8cf902 Avoid unnecessariy flashing avatars
Make avatar building sync

Tests on a iPhone5 with 1k threads, 3k contacts show no noticeable lag.

Profiling shows ~4% of usage goes to contact avatar building, but once
cached, even that goes towards zero.

// FREEBIE
2017-08-01 12:07:54 -04:00

47 lines
839 B
Objective-C

//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
//
#import "OWSGroupAvatarBuilder.h"
#import "TSGroupThread.h"
NS_ASSUME_NONNULL_BEGIN
@interface OWSGroupAvatarBuilder ()
@property (nonatomic, readonly) TSGroupThread *thread;
@end
@implementation OWSGroupAvatarBuilder
- (instancetype)initWithThread:(TSGroupThread *)thread
{
self = [super init];
if (!self) {
return self;
}
_thread = thread;
return self;
}
- (nullable UIImage *)buildSavedImage
{
return self.thread.groupModel.groupImage;
}
- (UIImage *)buildDefaultImage
{
static UIImage *defaultGroupImage;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
defaultGroupImage = [UIImage imageNamed:@"empty-group-avatar"];
});
return defaultGroupImage;
}
@end
NS_ASSUME_NONNULL_END