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];