diff --git a/Classes/LinphoneUI/UIChatBubblePhotoCell.xib b/Classes/LinphoneUI/UIChatBubblePhotoCell.xib index 7d306ed1b..65d86c587 100644 --- a/Classes/LinphoneUI/UIChatBubblePhotoCell.xib +++ b/Classes/LinphoneUI/UIChatBubblePhotoCell.xib @@ -34,8 +34,8 @@ - - + + diff --git a/Classes/LinphoneUI/UIChatBubbleTextCell.m b/Classes/LinphoneUI/UIChatBubbleTextCell.m index c0bdc8c4c..c9e19f18a 100644 --- a/Classes/LinphoneUI/UIChatBubbleTextCell.m +++ b/Classes/LinphoneUI/UIChatBubbleTextCell.m @@ -106,7 +106,14 @@ LinphoneChatMessageState state = linphone_chat_message_get_state(_message); BOOL outgoing = linphone_chat_message_is_outgoing(_message); + if (outgoing) { + [LinphoneUtils setSelfAvatar:_avatarImage]; + } else { + ABRecordRef contact = [FastAddressBook getContactWithAddress:linphone_chat_message_get_peer_address(_message)]; + _avatarImage.image = [FastAddressBook getContactImage:contact thumbnail:YES]; + } _backgroundColorImage.image = _bottomBarColor.image = [UIImage imageNamed:(outgoing ? @"color_A" : @"color_D")]; + if (!outgoing) { _statusImage.accessibilityValue = @"incoming"; _statusImage.hidden = TRUE; // not useful for incoming chats.. diff --git a/Classes/LinphoneUI/UIChatBubbleTextCell.xib b/Classes/LinphoneUI/UIChatBubbleTextCell.xib index 913273b27..c0d9cba62 100644 --- a/Classes/LinphoneUI/UIChatBubbleTextCell.xib +++ b/Classes/LinphoneUI/UIChatBubbleTextCell.xib @@ -35,8 +35,8 @@ - - + + diff --git a/Classes/SideMenuView.m b/Classes/SideMenuView.m index 615403fd9..c12a00537 100644 --- a/Classes/SideMenuView.m +++ b/Classes/SideMenuView.m @@ -6,8 +6,6 @@ // // -#import - #import "SideMenuView.h" #import "LinphoneManager.h" #import "PhoneMainView.h" @@ -26,25 +24,7 @@ _nameLabel.text = @"No account"; _addressLabel.text = NSLocalizedString(@"No address", nil); } - - // set avatar if available - NSURL *url = [NSURL URLWithString:[LinphoneManager.instance lpConfigStringForKey:@"avatar"]]; - if (url) { - [LinphoneManager.instance.photoLibrary assetForURL:url - resultBlock:^(ALAsset *asset) { - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, (unsigned long)NULL), ^(void) { - UIImage *decodedImage = [[UIImage alloc] initWithCGImage:[asset thumbnail]]; - dispatch_async(dispatch_get_main_queue(), ^{ - [_avatarImage setImage:decodedImage]; - }); - }); - } - failureBlock:^(NSError *error) { - LOGE(@"Can't read avatar"); - }]; - } else { - [_avatarImage setImage:[UIImage imageNamed:@"avatar"]]; - } + [LinphoneUtils setSelfAvatar:_avatarImage]; } - (void)viewWillAppear:(BOOL)animated { diff --git a/Classes/Utils/Utils.h b/Classes/Utils/Utils.h index c576079ce..8f4b9fbc5 100644 --- a/Classes/Utils/Utils.h +++ b/Classes/Utils/Utils.h @@ -27,9 +27,7 @@ void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); @end -@interface LinphoneUtils : NSObject { - -} +@interface LinphoneUtils : NSObject + (BOOL)findAndResignFirstResponder:(UIView*)view; + (void)adjustFontSize:(UIView*)view mult:(float)mult; @@ -39,6 +37,7 @@ void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); + (NSString *)deviceName; + (NSString *)timeToString:(time_t)time withStyle:(NSDateFormatterStyle)style; ++ (void)setSelfAvatar:(UIImageView *)avatar; @end diff --git a/Classes/Utils/Utils.m b/Classes/Utils/Utils.m index 89789b812..93126de18 100644 --- a/Classes/Utils/Utils.m +++ b/Classes/Utils/Utils.m @@ -20,6 +20,7 @@ #import #import #import +#import #import "Utils.h" #import "linphone/linphonecore.h" @@ -81,6 +82,25 @@ void linphone_iphone_log_handler(int lev, const char *fmt, va_list args) { @implementation LinphoneUtils ++ (void)setSelfAvatar:(UIImageView *)avatar { + NSURL *url = [NSURL URLWithString:[LinphoneManager.instance lpConfigStringForKey:@"avatar"]]; + if (url) { + [LinphoneManager.instance.photoLibrary assetForURL:url + resultBlock:^(ALAsset *asset) { + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, (unsigned long)NULL), ^(void) { + UIImage *decodedImage = [[UIImage alloc] initWithCGImage:[asset thumbnail]]; + dispatch_async(dispatch_get_main_queue(), ^{ + avatar.image = decodedImage; + }); + }); + } + failureBlock:^(NSError *error) { + LOGE(@"Can't read avatar"); + }]; + } else { + avatar.image = [UIImage imageNamed:@"avatar"]; + } +} + (NSString *)timeToString:(time_t)time withStyle:(NSDateFormatterStyle)style { NSDate *todayDate = [[NSDate alloc] init]; NSDate *messageDate = (time == 0) ? todayDate : [NSDate dateWithTimeIntervalSince1970:time];