From 60fbfd129a8282382af0a23009e7f61eff742ef9 Mon Sep 17 00:00:00 2001 From: Frederic Jacobs Date: Sun, 18 Jan 2015 09:38:26 +0100 Subject: [PATCH] Fixes crashes & edge cases for initials string. --- Signal/src/view controllers/InboxTableViewCell.m | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Signal/src/view controllers/InboxTableViewCell.m b/Signal/src/view controllers/InboxTableViewCell.m index fe2087403..7408e889a 100644 --- a/Signal/src/view controllers/InboxTableViewCell.m +++ b/Signal/src/view controllers/InboxTableViewCell.m @@ -52,11 +52,15 @@ _contactPictureView.image = ((TSGroupThread*)thread).groupModel.groupImage!=nil ? ((TSGroupThread*)thread).groupModel.groupImage : [UIImage imageNamed:@"group_photo.png"]; } else { - NSString* initials = @""; + NSMutableString *initials = [NSMutableString string]; if([thread.name length]>0) { - NSArray* names = [thread.name componentsSeparatedByString:@" "]; - initials = [names count] > 0 ? [NSString stringWithFormat:@"%c",[[names firstObject] characterAtIndex:0]] : [NSString stringWithFormat:@"%c",[thread.name characterAtIndex:0]]; - initials = [names count] > 1 ? [initials stringByAppendingString:[NSString stringWithFormat:@"%c",[[names lastObject] characterAtIndex:0]]] : initials; + NSArray *words = [thread.name componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; + for (NSString * word in words) { + if ([word length] > 0) { + NSString *firstLetter = [word substringToIndex:1]; + [initials appendString:[firstLetter uppercaseString]]; + } + } } UIImage* image = [[JSQMessagesAvatarImageFactory avatarImageWithUserInitials:initials backgroundColor:[UIColor whiteColor] textColor:[UIColor blueColor] font:[UIFont systemFontOfSize:30] diameter:100] avatarImage]; _contactPictureView.image = thread.image!=nil ? thread.image : image;