From f87acd28a60b4863ce1bc2f7aff8fb2140b52287 Mon Sep 17 00:00:00 2001
From: Dominic Vedericho <>
Date: Wed, 18 Dec 2019 13:57:00 +0700
Subject: [PATCH] update version 1.0.20, handle emit user update, changing
 App-Version to SDK-Version in network header

---
 .../xcschemes/Pods-TapTalk.xcscheme           |  24 +-
 .../xcschemes/xcschememanagement.plist        |  22 ++
 TapTalk.podspec                               |   2 +-
 TapTalk.xcodeproj/project.pbxproj             |   4 +-
 .../UserInterfaceState.xcuserstate            | Bin 68105 -> 110298 bytes
 TapTalk/Managers/TAPChatManager.m             |   8 +-
 TapTalk/Managers/TAPContactManager.m          |  34 +++
 .../TAPCoreManager/TAPCoreChatRoomManager.m   |   4 +-
 TapTalk/Managers/TAPNetworkManager.m          |   2 +-
 .../TAPProfileViewController.m                |  59 ++++-
 .../TapUIChatViewController.m                 | 247 +++++++++++++-----
 .../TapUIRoomListViewController.m             |  14 +
 .../TAPMyChatBubbleTableViewCell.m            |   2 +-
 .../TAPMyFileBubbleTableViewCell.m            |   2 +-
 .../TAPMyImageBubbleTableViewCell.m           |   2 +-
 .../TAPMyLocationBubbleTableViewCell.m        |   2 +-
 .../TAPRoomListTableViewCell.m                |  61 ++++-
 .../TAPSearchResultChatTableViewCell.m        |  61 ++++-
 .../TAPYourChatBubbleTableViewCell.m          |  39 ++-
 .../TAPYourChatDeletedBubbleTableViewCell.m   |  32 ++-
 .../TAPYourFileBubbleTableViewCell.m          |  38 ++-
 .../TAPYourImageBubbleTableViewCell.m         |  35 ++-
 .../TAPYourLocationBubbleTableViewCell.m      |  31 ++-
 .../TAPYourVideoBubbleTableViewCell.m         |  35 ++-
 24 files changed, 607 insertions(+), 153 deletions(-)

diff --git a/Pods/Pods.xcodeproj/xcuserdata/dominicvedericho.xcuserdatad/xcschemes/Pods-TapTalk.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/dominicvedericho.xcuserdatad/xcschemes/Pods-TapTalk.xcscheme
index 6ccf464..e14a2ca 100644
--- a/Pods/Pods.xcodeproj/xcuserdata/dominicvedericho.xcuserdatad/xcschemes/Pods-TapTalk.xcscheme
+++ b/Pods/Pods.xcodeproj/xcuserdata/dominicvedericho.xcuserdatad/xcschemes/Pods-TapTalk.xcscheme
@@ -7,15 +7,15 @@
       buildImplicitDependencies = "YES">
       <BuildActionEntries>
          <BuildActionEntry
-            buildForAnalyzing = "YES"
             buildForTesting = "YES"
             buildForRunning = "YES"
             buildForProfiling = "YES"
-            buildForArchiving = "YES">
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
             <BuildableReference
                BuildableIdentifier = "primary"
                BlueprintIdentifier = "ECEFF4DE87169A8335FFBC8B46312B9E"
-               BuildableName = "Pods-TapTalk.framework"
+               BuildableName = "Pods_TapTalk.framework"
                BlueprintName = "Pods-TapTalk"
                ReferencedContainer = "container:Pods.xcodeproj">
             </BuildableReference>
@@ -23,14 +23,15 @@
       </BuildActionEntries>
    </BuildAction>
    <TestAction
+      buildConfiguration = "Debug"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      shouldUseLaunchSchemeArgsEnv = "YES"
-      buildConfiguration = "Debug">
-      <AdditionalOptions>
-      </AdditionalOptions>
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
    </TestAction>
    <LaunchAction
+      buildConfiguration = "Debug"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
       launchStyle = "0"
@@ -38,17 +39,14 @@
       ignoresPersistentStateOnLaunch = "NO"
       debugDocumentVersioning = "YES"
       debugServiceExtension = "internal"
-      buildConfiguration = "Debug"
       allowLocationSimulation = "YES">
-      <AdditionalOptions>
-      </AdditionalOptions>
    </LaunchAction>
    <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
       savedToolIdentifier = ""
       useCustomWorkingDirectory = "NO"
-      debugDocumentVersioning = "YES"
-      buildConfiguration = "Release"
-      shouldUseLaunchSchemeArgsEnv = "YES">
+      debugDocumentVersioning = "YES">
    </ProfileAction>
    <AnalyzeAction
       buildConfiguration = "Debug">
diff --git a/Pods/Pods.xcodeproj/xcuserdata/dominicvedericho.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/dominicvedericho.xcuserdatad/xcschemes/xcschememanagement.plist
index d44f323..4d26c9f 100644
--- a/Pods/Pods.xcodeproj/xcuserdata/dominicvedericho.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/Pods/Pods.xcodeproj/xcuserdata/dominicvedericho.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -8,56 +8,78 @@
 		<dict>
 			<key>isShown</key>
 			<false/>
+			<key>orderHint</key>
+			<integer>0</integer>
 		</dict>
 		<key>GoogleMaps.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
+			<key>orderHint</key>
+			<integer>1</integer>
 		</dict>
 		<key>GooglePlacePicker.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
+			<key>orderHint</key>
+			<integer>2</integer>
 		</dict>
 		<key>GooglePlaces.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
+			<key>orderHint</key>
+			<integer>3</integer>
 		</dict>
 		<key>JSONModel.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
+			<key>orderHint</key>
+			<integer>4</integer>
 		</dict>
 		<key>PodAsset.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
+			<key>orderHint</key>
+			<integer>5</integer>
 		</dict>
 		<key>Pods-TapTalk.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
+			<key>orderHint</key>
+			<integer>6</integer>
 		</dict>
 		<key>Realm.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
+			<key>orderHint</key>
+			<integer>7</integer>
 		</dict>
 		<key>SDWebImage.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
+			<key>orderHint</key>
+			<integer>8</integer>
 		</dict>
 		<key>SocketRocket.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
+			<key>orderHint</key>
+			<integer>9</integer>
 		</dict>
 		<key>ZSWTappableLabel.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
+			<key>orderHint</key>
+			<integer>10</integer>
 		</dict>
 	</dict>
 	<key>SuppressBuildableAutocreation</key>
diff --git a/TapTalk.podspec b/TapTalk.podspec
index 0897481..60f9862 100644
--- a/TapTalk.podspec
+++ b/TapTalk.podspec
@@ -3,7 +3,7 @@ Pod::Spec.new do |s|
   # ―――  Spec Metadata  ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
 
     s.name         = "TapTalk"
-    s.version      = "1.0.18"
+    s.version      = "1.0.20"
     s.summary      = "TapTalk.io is a complete in-app chat SDK and messaging API. Its in-app chat feature give you and your user the best in-app chat experience, it provides you with UI Based implementation and code based implementation and fully customizable."
     s.homepage     = "https://taptalk.io"
 
diff --git a/TapTalk.xcodeproj/project.pbxproj b/TapTalk.xcodeproj/project.pbxproj
index 18cb36c..a1cd834 100644
--- a/TapTalk.xcodeproj/project.pbxproj
+++ b/TapTalk.xcodeproj/project.pbxproj
@@ -2142,7 +2142,7 @@
 					"@executable_path/Frameworks",
 					"@loader_path/Frameworks",
 				);
-				MARKETING_VERSION = 1.0.17;
+				MARKETING_VERSION = 1.0.20;
 				PRODUCT_BUNDLE_IDENTIFIER = io.TapTalk.TapTalk;
 				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
 				SKIP_INSTALL = YES;
@@ -2176,7 +2176,7 @@
 					"@executable_path/Frameworks",
 					"@loader_path/Frameworks",
 				);
-				MARKETING_VERSION = 1.0.17;
+				MARKETING_VERSION = 1.0.20;
 				PRODUCT_BUNDLE_IDENTIFIER = io.TapTalk.TapTalk;
 				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
 				SKIP_INSTALL = YES;
diff --git a/TapTalk.xcworkspace/xcuserdata/dominicvedericho.xcuserdatad/UserInterfaceState.xcuserstate b/TapTalk.xcworkspace/xcuserdata/dominicvedericho.xcuserdatad/UserInterfaceState.xcuserstate
index fd121278fe547c3cfa78ffa26ea5c10949ecba17..1851855c7e7b51bada52e66f53228961b60088c1 100644
GIT binary patch
literal 110298
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%0DDVhd<zDeWw!ou#z1ly;Wh58A}_QI%50q0E4W
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
K`zPe8bN&yv#nJ)*

delta 32372
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
R`vUx5X6pX0|362x{{y7(+kF54

diff --git a/TapTalk/Managers/TAPChatManager.m b/TapTalk/Managers/TAPChatManager.m
index c1e4bc7..5941f9d 100644
--- a/TapTalk/Managers/TAPChatManager.m
+++ b/TapTalk/Managers/TAPChatManager.m
@@ -460,7 +460,7 @@
             TAPMessageModel *quotedMessage = (TAPMessageModel *)quotedMessageObject;
             quotedMessage = [quotedMessage copy];
             
-            if ([quotedMessage.quote.fileType isEqualToString:[NSString stringWithFormat: @"%ld", TAPChatMessageTypeFile]]) {
+            if ([quotedMessage.quote.fileType isEqualToString:[NSString stringWithFormat: @"%ld", TAPChatMessageTypeFile]] || [quotedMessage.quote.fileType isEqualToString:@"file"]) {
                 //TYPE FILE
                 message.quote = quotedMessage.quote;
             }
@@ -762,7 +762,7 @@
             //if message quoted from message model then should construct quote and reply to model
             TAPMessageModel *quotedMessage = (TAPMessageModel *)quotedMessageObject;
             quotedMessage = [quotedMessage copy];
-            if ([quotedMessage.quote.fileType isEqualToString:[NSString stringWithFormat: @"%ld", TAPChatMessageTypeFile]]) {
+            if ([quotedMessage.quote.fileType isEqualToString:[NSString stringWithFormat: @"%ld", TAPChatMessageTypeFile]] || [quotedMessage.quote.fileType isEqualToString:@"file"]) {
                 //TYPE FILE
                 message.quote = quotedMessage.quote;
             }
@@ -854,7 +854,7 @@
             //if message quoted from message model then should construct quote and reply to model
             TAPMessageModel *quotedMessage = (TAPMessageModel *)quotedMessageObject;
             quotedMessage = [quotedMessage copy];
-            if ([quotedMessage.quote.fileType isEqualToString:[NSString stringWithFormat: @"%ld", TAPChatMessageTypeFile]]) {
+            if ([quotedMessage.quote.fileType isEqualToString:[NSString stringWithFormat: @"%ld", TAPChatMessageTypeFile]] || [quotedMessage.quote.fileType isEqualToString:@"file"]) {
                 //TYPE FILE
                 message.quote = quotedMessage.quote;
             }
@@ -1015,7 +1015,7 @@
     TAPMessageModel *decryptedMessage = [TAPEncryptorManager decryptToMessageModelFromDictionary:dataDictionary];
     
     //Add User to Contact Manager
-    [[TAPContactManager sharedManager] addContactWithUserModel:decryptedMessage.user saveToDatabase:NO];
+    [[TAPContactManager sharedManager] addContactWithUserModel:decryptedMessage.user saveToDatabase:YES];
     
     decryptedMessage.isSending = NO;
     
diff --git a/TapTalk/Managers/TAPContactManager.m b/TapTalk/Managers/TAPContactManager.m
index d5c7c67..584226a 100644
--- a/TapTalk/Managers/TAPContactManager.m
+++ b/TapTalk/Managers/TAPContactManager.m
@@ -68,6 +68,12 @@
     TAPUserModel *activeUser = [TAPDataManager getActiveUser];
     if(user.userID != activeUser.userID && user.userID != nil) {
         //if user != self set to Dictionary
+        
+        TAPUserModel *currentSavedUser = [self.contactUserDictionary objectForKey:user.userID];
+        if ([user.updated longValue] < [currentSavedUser.updated longValue]) {
+            return;
+        }
+        
         [self.contactUserDictionary setObject:user forKey:user.userID];
         [self.phoneUserDictionary setObject:user forKey:user.phoneWithCode];
         
@@ -81,6 +87,17 @@
             }];
         }
     }
+    else {
+        //update active user data
+        if (user.userID != nil) {
+            TAPUserModel *currentSavedUser = [self.contactUserDictionary objectForKey:user.userID];
+            if ([user.updated longValue] < [currentSavedUser.updated longValue]) {
+                return;
+            }
+            
+            [TAPDataManager setActiveUser:user];
+        }
+    }
 }
 
 - (void)addContactWithUserArray:(NSArray <TAPUserModel *> *)userArray saveToDatabase:(BOOL)save {
@@ -95,6 +112,12 @@
         TAPUserModel *activeUser = [TAPDataManager getActiveUser];
         if(user.userID != activeUser.userID && user.userID != nil) {
             //if user != self set to Dictionary
+            
+            TAPUserModel *currentSavedUser = [self.contactUserDictionary objectForKey:user.userID];
+            if ([user.updated longValue] < [currentSavedUser.updated longValue]) {
+                return;
+            }
+            
             [self.contactUserDictionary setObject:user forKey:user.userID];
             [self.phoneUserDictionary setObject:user forKey:user.phoneWithCode];
             
@@ -102,6 +125,17 @@
                 [userDataArray addObject:user];
             }
         }
+        else {
+            //update active user data
+            if (user.userID != nil) {
+                TAPUserModel *currentSavedUser = [self.contactUserDictionary objectForKey:user.userID];
+                if ([user.updated longValue] < [currentSavedUser.updated longValue]) {
+                    return;
+                }
+                
+                [TAPDataManager setActiveUser:user];
+            }
+        }
     }
     
     if(save) {
diff --git a/TapTalk/Managers/TAPCoreManager/TAPCoreChatRoomManager.m b/TapTalk/Managers/TAPCoreManager/TAPCoreChatRoomManager.m
index 4577da2..6ad9adb 100644
--- a/TapTalk/Managers/TAPCoreManager/TAPCoreChatRoomManager.m
+++ b/TapTalk/Managers/TAPCoreManager/TAPCoreChatRoomManager.m
@@ -102,7 +102,9 @@
     success(generatedRoom);
 }
 
-- (void)getGroupChatRoomWithGroupRoomID:(NSString *)groupRoomID success:(void (^)(TAPRoomModel *room))success failure:(void (^)(NSError *error))failure {
+- (void)getGroupChatRoomWithGroupRoomID:(NSString *)groupRoomID
+                                success:(void (^)(TAPRoomModel *room))success
+                                failure:(void (^)(NSError *error))failure {
     TAPRoomModel *obtainedRoom = [[TAPGroupManager sharedManager] getRoomWithRoomID:groupRoomID];
     if (obtainedRoom == nil) {
         [TAPDataManager callAPIGetRoomWithRoomID:groupRoomID success:^(TAPRoomModel *room) {
diff --git a/TapTalk/Managers/TAPNetworkManager.m b/TapTalk/Managers/TAPNetworkManager.m
index 2d73722..f3952a1 100644
--- a/TapTalk/Managers/TAPNetworkManager.m
+++ b/TapTalk/Managers/TAPNetworkManager.m
@@ -73,7 +73,7 @@ static const NSInteger kAPITimeOut = 60;
     [manager.requestSerializer setValue:[[UIDevice currentDevice] model] forHTTPHeaderField:@"Device-Model"];
     [manager.requestSerializer setValue:@"ios" forHTTPHeaderField:@"Device-Platform"];
     [manager.requestSerializer setValue:[[UIDevice currentDevice] systemVersion] forHTTPHeaderField:@"Device-OS-Version"];
-    [manager.requestSerializer setValue:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] forHTTPHeaderField:@"App-Version"];
+    [manager.requestSerializer setValue:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] forHTTPHeaderField:@"SDK-Version"];
     [manager.requestSerializer setValue:@"ios" forHTTPHeaderField:@"User-Agent"];
     
     [manager.requestSerializer setTimeoutInterval:kAPITimeOut];
diff --git a/TapTalk/View Controllers/TAPProfileViewController.m b/TapTalk/View Controllers/TAPProfileViewController.m
index 61475dd..b55129f 100644
--- a/TapTalk/View Controllers/TAPProfileViewController.m	
+++ b/TapTalk/View Controllers/TAPProfileViewController.m	
@@ -91,9 +91,60 @@
     
     [self.profileView.navigationEditButton addTarget:self action:@selector(editButtonDidTapped) forControlEvents:UIControlEventTouchUpInside];
     [self.profileView.editButton addTarget:self action:@selector(editButtonDidTapped) forControlEvents:UIControlEventTouchUpInside];
-
     
-    NSString *profileImageURL = self.room.imageURL.fullsize;
+    NSString *profileImageURL = @"";
+    NSString *roomName = @"";
+    if (self.room.type == RoomTypePersonal) {
+        NSString *otherUserID = [[TAPChatManager sharedManager] getOtherUserIDWithRoomID:self.room.roomID];
+        TAPUserModel *obtainedUser = [[TAPContactManager sharedManager] getUserWithUserID:otherUserID];
+        if([self.room.deleted longValue] != 0) {
+            profileImageURL = @"";
+        }
+        if (obtainedUser != nil && ![obtainedUser.imageURL.thumbnail isEqualToString:@""]) {
+            profileImageURL = obtainedUser.imageURL.fullsize;
+            profileImageURL = [TAPUtil nullToEmptyString:profileImageURL];
+        }
+        else {
+            profileImageURL = self.room.imageURL.fullsize;
+            profileImageURL = [TAPUtil nullToEmptyString:profileImageURL];
+        }
+        
+        if (obtainedUser != nil && obtainedUser.fullname != nil && [self.room.deleted longValue] == 0) {
+            roomName = obtainedUser.fullname;
+            roomName = [TAPUtil nullToEmptyString:roomName];
+        }
+        else {
+            roomName = self.room.name;
+            roomName = [TAPUtil nullToEmptyString:roomName];
+        }
+    }
+    else if (self.room.type == RoomTypeGroup) {
+        TAPRoomModel *obtainedRoom = [[TAPGroupManager sharedManager] getRoomWithRoomID:self.room.roomID];
+        NSString *groupProfileImageURL = obtainedRoom.imageURL.fullsize;
+        groupProfileImageURL = [TAPUtil nullToEmptyString:groupProfileImageURL];
+        
+        NSString *groupRoomName = obtainedRoom.name;
+        groupRoomName = [TAPUtil nullToEmptyString:groupRoomName];
+        
+        if ([groupProfileImageURL isEqualToString:@""]) {
+            profileImageURL = self.room.imageURL.fullsize;
+            profileImageURL = [TAPUtil nullToEmptyString:profileImageURL];
+        }
+        else {
+            profileImageURL = groupProfileImageURL;
+            profileImageURL = [TAPUtil nullToEmptyString:profileImageURL];
+        }
+        
+        if ([groupRoomName isEqualToString:@""]) {
+            roomName = self.room.name;
+            roomName = [TAPUtil nullToEmptyString:roomName];
+        }
+        else {
+            roomName = groupRoomName;
+            roomName = [TAPUtil nullToEmptyString:roomName];
+        }
+    }
+    
     if (profileImageURL == nil || [profileImageURL isEqualToString:@""]) {
         if (self.room.type == RoomTypePersonal) {
             //Personal
@@ -108,8 +159,8 @@
         [self.profileView.profileImageView setImageWithURLString:profileImageURL];
     }
     
-    self.profileView.nameLabel.text = self.room.name;
-    self.profileView.navigationNameLabel.text = self.room.name;
+    self.profileView.nameLabel.text = roomName;
+    self.profileView.navigationNameLabel.text = roomName;
     
     if (self.tapProfileViewControllerType == TAPProfileViewControllerTypeDefault) {
         if (self.room.type == RoomTypePersonal) {
diff --git a/TapTalk/View Controllers/TapUIChatViewController.m b/TapTalk/View Controllers/TapUIChatViewController.m
index 332cff4..dc626d5 100644
--- a/TapTalk/View Controllers/TapUIChatViewController.m	
+++ b/TapTalk/View Controllers/TapUIChatViewController.m	
@@ -264,7 +264,7 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
 - (void)setupNavigationViewData;
 - (void)setupInputAccessoryView;
 - (void)setupDeletedRoomView;
-- (void)showDeletedRoomView:(BOOL)show isGroup:(BOOL)isGroup withDeleteButton:(BOOL)withDeleteButton;
+- (void)showDeletedRoomView:(BOOL)show isGroup:(BOOL)isGroup;
 - (void)setDeleteRoomButtonAsLoading:(BOOL)loading animated:(BOOL)animated;
 - (void)setupKickedGroupView;
 - (void)checkAndSetupAddToContactsView;
@@ -284,7 +284,7 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
 - (void)firstLoadData;
 - (void)fetchBeforeMessageFromAPIAndUpdateUIWithRoomID:(NSString *)roomID maxCreated:(NSNumber *)maxCreated;
 - (void)retrieveExistingMessages;
-- (void)updateMessageDataAndUIWithMessages:(NSArray *)messageArray checkFirstUnreadMessage:(BOOL)checkFirstUnreadMessage toTop:(BOOL)toTop withCompletionHandler:(void(^)())completionHandler;
+- (void)updateMessageDataAndUIWithMessages:(NSArray *)messageArray checkFirstUnreadMessage:(BOOL)checkFirstUnreadMessage toTop:(BOOL)toTop updateUserDetail:(BOOL)updateUserDetail withCompletionHandler:(void(^)())completionHandler;
 - (void)sortAndFilterMessageArray;
 - (void)updateMessageModelValueWithMessage:(TAPMessageModel *)message;
 - (void)callAPIAfterAndUpdateUIAndScrollToTop:(BOOL)scrollToTop;
@@ -351,7 +351,6 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
 - (void)refreshRoomStatusUIInfo;
 - (void)refreshTypingLabelState;
 
-- (void)setRoomNotAvailable;
 - (void)checkAndShowRoomViewState;
 
 @end
@@ -537,15 +536,8 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
     [self setupDeletedRoomView];
     [self setupKickedGroupView];
     
-    if (!self.currentRoom.isDeleted) {
-        //load data
-        [self firstLoadData];
-    }
-    else {
-        //set not available and delete room data
-        [self setRoomNotAvailable];
-        return;
-    }
+    //load data
+    [self firstLoadData];
     
     [[TAPChatManager sharedManager] refreshShouldRefreshOnlineStatus];
     
@@ -661,19 +653,29 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
 
     //check if last message is deleted room
     TAPMessageModel *lastMessage = [self.messageArray firstObject];
-    if (lastMessage.type == TAPChatMessageTypeSystemMessage && [lastMessage.action isEqualToString:@"room/removeParticipant"] && [lastMessage.target.targetID isEqualToString:[TAPDataManager getActiveUser].userID]) {
+    if (lastMessage.room.type == RoomTypePersonal && lastMessage.room.isDeleted) {
+        [self.view endEditing:YES];
+        [self showDeletedRoomView:YES isGroup:NO isGroupDeleted:NO];
+    }
+    else if (lastMessage.type == TAPChatMessageTypeSystemMessage && [lastMessage.action isEqualToString:@"room/removeParticipant"] && [lastMessage.target.targetID isEqualToString:[TAPDataManager getActiveUser].userID]) {
         //Check if system message with action remove participant and target user is current user
         //show deleted chat room view
         [self.view endEditing:YES];
-        [self showDeletedRoomView:YES isGroup:YES withDeleteButton:YES];
+        [self showDeletedRoomView:YES isGroup:YES isGroupDeleted:NO];
     }
     else if (lastMessage.type == TAPChatMessageTypeSystemMessage && [lastMessage.action isEqualToString:@"room/delete"]) {
         [self.view endEditing:YES];
-        [self setRoomNotAvailable];
+        
+        if (lastMessage.room.type == RoomTypePersonal) {
+            [self showDeletedRoomView:YES isGroup:NO isGroupDeleted:NO];
+        }
+        else if (lastMessage.room.type == RoomTypeGroup) {
+            [self showDeletedRoomView:YES isGroup:YES isGroupDeleted:YES];
+        }
     }
     else if (lastMessage.type == TAPChatMessageTypeSystemMessage && [lastMessage.action isEqualToString:@"room/leave"] && [lastMessage.user.userID isEqualToString:[TAPDataManager getActiveUser].userID]) {
         [self.view endEditing:YES];
-        [self showDeletedRoomView:YES isGroup:NO withDeleteButton:YES];
+        [self showDeletedRoomView:YES isGroup:NO isGroupDeleted:NO];
     }
     else {
         [self showInputAccessoryView];
@@ -1628,12 +1630,16 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
     [self handleMessageFromSocket:message isUpdatedMessage:NO];
     
     //Check if user remove us from the group while we are inside the chat room, handle the case
-    if (message.type == TAPChatMessageTypeSystemMessage && [message.action isEqualToString:@"room/removeParticipant"]) {
+    if (message.room.type == RoomTypePersonal && message.room.isDeleted) {
+        [self.view endEditing:YES];
+        [self showDeletedRoomView:YES isGroup:NO isGroupDeleted:NO];
+    }
+    else if (message.type == TAPChatMessageTypeSystemMessage && [message.action isEqualToString:@"room/removeParticipant"]) {
         if ([message.target.targetID isEqualToString:[TAPDataManager getActiveUser].userID]) {
             //Check if system message with action remove participant and target user is current user
             //show deleted chat room view
             [self.view endEditing:YES];
-            [self showDeletedRoomView:YES isGroup:YES withDeleteButton:YES];
+            [self showDeletedRoomView:YES isGroup:YES];
         }
         //refresh room members by API
         [self checkAndRefreshOnlineStatus];
@@ -1641,14 +1647,20 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
     else if (message.type == TAPChatMessageTypeSystemMessage && [message.action isEqualToString:@"room/addParticipant"]) {
         if ([message.target.targetID isEqualToString:[TAPDataManager getActiveUser].userID]) {
             [self.view endEditing:YES];
-            [self showDeletedRoomView:NO isGroup:YES withDeleteButton:YES];
+            [self showDeletedRoomView:NO isGroup:YES isGroupDeleted:NO];
         }
         //refresh room members by API
         [self checkAndRefreshOnlineStatus];
     }
     else if (message.type == TAPChatMessageTypeSystemMessage && [message.action isEqualToString:@"room/delete"]) {
         [self.view endEditing:YES];
-        [self setRoomNotAvailable];
+        
+        if (message.room.type == RoomTypePersonal) {
+            [self showDeletedRoomView:YES isGroup:NO isGroupDeleted:NO];
+        }
+        else if (message.room.type == RoomTypeGroup) {
+            [self showDeletedRoomView:YES isGroup:YES isGroupDeleted:YES];
+        }
     }
 }
 
@@ -1661,6 +1673,7 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
     [self handleMessageFromSocket:message isUpdatedMessage:YES];
 }
 
+
 - (void)chatManagerDidReceiveOnlineStatus:(TAPOnlineStatusModel *)onlineStatus {
     _onlineStatus = onlineStatus;
     NSTimeInterval currentLastSeen = (double)self.onlineStatus.lastActive.doubleValue/1000.0f;
@@ -2181,8 +2194,19 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
     TAPQuoteModel *quote = [TAPQuoteModel new];
     quote.fileID = [TAPUtil nullToEmptyString:[quotedMessageModel.data objectForKey:@"fileID"]];
     quote.title = fileName;
-    quote.content = [NSString stringWithFormat:@"%@ %@", fileSize, fileExtension];;
-    quote.fileType = [NSString stringWithFormat:@"%ld", quotedMessageModel.type];
+    quote.content = [NSString stringWithFormat:@"%@ %@", fileSize, fileExtension];
+    
+    NSString *fileTypeString = @"";
+    if (quotedMessageModel.type == TAPChatMessageTypeImage) {
+        fileTypeString = @"image";
+    }
+    else if (quotedMessageModel.type == TAPChatMessageTypeVideo) {
+        fileTypeString = @"video";
+    }
+    else if (quotedMessageModel.type == TAPChatMessageTypeFile) {
+        fileTypeString = @"file";
+    }
+    quote.fileType = fileTypeString;
     [self setQuoteWithQuote:quote userID:quotedMessageModel.user.userID];
     
     quotedMessageModel.quote = quote;
@@ -3061,8 +3085,18 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
     TAPQuoteModel *quote = [TAPQuoteModel new];
     quote.fileID = [TAPUtil nullToEmptyString:[quotedMessageModel.data objectForKey:@"fileID"]];
     quote.title = fileName;
-    quote.content = [NSString stringWithFormat:@"%@ %@", fileSize, fileExtension];;
-    quote.fileType = [NSString stringWithFormat:@"%ld", quotedMessageModel.type];
+    quote.content = [NSString stringWithFormat:@"%@ %@", fileSize, fileExtension];
+    NSString *fileTypeString = @"";
+    if (quotedMessageModel.type == TAPChatMessageTypeImage) {
+        fileTypeString = @"image";
+    }
+    else if (quotedMessageModel.type == TAPChatMessageTypeVideo) {
+        fileTypeString = @"video";
+    }
+    else if (quotedMessageModel.type == TAPChatMessageTypeFile) {
+        fileTypeString = @"file";
+    }
+    quote.fileType = fileTypeString;
     [self setQuoteWithQuote:quote userID:quotedMessageModel.user.userID];
     
     quotedMessageModel.quote = quote;
@@ -3905,13 +3939,18 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
     self.deletedRoomViewHeightConstraint.constant = [TAPUtil safeAreaBottomPadding] + kInputMessageAccessoryViewHeight;
 }
 
-- (void)showDeletedRoomView:(BOOL)show isGroup:(BOOL)isGroup withDeleteButton:(BOOL)withDeleteButton {
+- (void)showDeletedRoomView:(BOOL)show isGroup:(BOOL)isGroup isGroupDeleted:(BOOL)isGroupDeleted {
     
     [self.messageTextView resignFirstResponder];
     [self.secondaryTextField resignFirstResponder];
     
     if (isGroup) {
-        self.deletedRoomContentLabel.text = NSLocalizedString(@"You are no longer a participant in this group", @"");
+        if (isGroupDeleted) {
+            self.deletedRoomContentLabel.text = NSLocalizedString(@"Sorry, this group is unavailable", @"");
+        }
+        else {
+            self.deletedRoomContentLabel.text = NSLocalizedString(@"You are no longer a participant in this group", @"");
+        }
     }
     else {
         self.deletedRoomContentLabel.text = NSLocalizedString(@"This user is no longer available", @"");
@@ -3923,15 +3962,19 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
         _isShowAccessoryView = NO;
         [self reloadInputViews];
         
-        if (withDeleteButton) {
-            //74 is button height and padding
-            self.deletedRoomViewHeightConstraint.constant = [TAPUtil safeAreaBottomPadding] + kInputMessageAccessoryViewHeight + 74.0f;
-            self.tableViewBottomConstraint.constant = kInputMessageAccessoryViewHeight + 74.0f;
-        }
-        else {
-            self.deletedRoomViewHeightConstraint.constant = [TAPUtil safeAreaBottomPadding] + kInputMessageAccessoryViewHeight;
-            self.tableViewBottomConstraint.constant = kInputMessageAccessoryViewHeight;
-        }
+//        if (withDeleteButton) {
+//            //74 is button height and padding
+//            self.deletedRoomViewHeightConstraint.constant = [TAPUtil safeAreaBottomPadding] + kInputMessageAccessoryViewHeight + 74.0f;
+//            self.tableViewBottomConstraint.constant = kInputMessageAccessoryViewHeight + 74.0f;
+//        }
+//        else {
+//            self.deletedRoomViewHeightConstraint.constant = [TAPUtil safeAreaBottomPadding] + kInputMessageAccessoryViewHeight;
+//            self.tableViewBottomConstraint.constant = kInputMessageAccessoryViewHeight;
+//        }
+        
+        //74 is button height and padding
+        self.deletedRoomViewHeightConstraint.constant = [TAPUtil safeAreaBottomPadding] + kInputMessageAccessoryViewHeight + 74.0f;
+        self.tableViewBottomConstraint.constant = kInputMessageAccessoryViewHeight + 74.0f;
         
         self.deletedRoomView.alpha = 1.0f;
     }
@@ -5263,7 +5306,17 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
                                           quote.fileID = [TAPUtil nullToEmptyString:[quotedMessageModel.data objectForKey:@"fileID"]];
                                           quote.title = fileName;
                                           quote.content = [NSString stringWithFormat:@"%@ %@", fileSize, fileExtension];
-                                          quote.fileType = [NSString stringWithFormat:@"%ld", quotedMessageModel.type];
+                                              NSString *fileTypeString = @"";
+                                          if (quotedMessageModel.type == TAPChatMessageTypeImage) {
+                                              fileTypeString = @"image";
+                                          }
+                                          else if (quotedMessageModel.type == TAPChatMessageTypeVideo) {
+                                              fileTypeString = @"video";
+                                          }
+                                          else if (quotedMessageModel.type == TAPChatMessageTypeFile) {
+                                              fileTypeString = @"file";
+                                          }
+                                          quote.fileType = fileTypeString;
                                           [self setQuoteWithQuote:quote userID:quotedMessageModel.user.userID];
                                           
                                           quotedMessageModel.quote = quote;
@@ -5498,7 +5551,7 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
     
     self.quoteSubtitleLabel.text = quote.content;
     
-    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]]) {
+    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]] || [quote.fileType isEqualToString:@"file"]) {
         //TYPE FILE
         self.quoteFileView.alpha = 1.0f;
         self.quoteImageView.alpha = 0.0f;
@@ -5631,6 +5684,35 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
         }
         
         [TAPDataManager getMessageWithRoomID:roomID lastMessageTimeStamp:[NSNumber numberWithDouble:createdDate] limitData:TAP_NUMBER_OF_ITEMS_CHAT success:^(NSArray<TAPMessageModel *> *obtainedMessageArray) {
+            
+            //DV Note - check method checkAndShowRoomViewState too if wants to update code below
+            //Check if room is deleted or kicked
+            TAPMessageModel *lastMessage = [obtainedMessageArray firstObject];
+            if (lastMessage.room.type == RoomTypePersonal && lastMessage.room.isDeleted) {
+                [self.view endEditing:YES];
+                [self showDeletedRoomView:YES isGroup:NO isGroupDeleted:NO];
+            }
+            else if (lastMessage.type == TAPChatMessageTypeSystemMessage && [lastMessage.action isEqualToString:@"room/removeParticipant"] && [lastMessage.target.targetID isEqualToString:[TAPDataManager getActiveUser].userID]) {
+                //Check if system message with action remove participant and target user is current user
+                //show deleted chat room view
+                [self.view endEditing:YES];
+                [self showDeletedRoomView:YES isGroup:YES isGroupDeleted:NO];
+            }
+            else if (lastMessage.type == TAPChatMessageTypeSystemMessage && [lastMessage.action isEqualToString:@"room/delete"]) {
+                [self.view endEditing:YES];
+                if (lastMessage.room.type == RoomTypePersonal) {
+                    [self showDeletedRoomView:YES isGroup:NO isGroupDeleted:NO];
+                }
+                else if (lastMessage.room.type == RoomTypeGroup) {
+                    [self showDeletedRoomView:YES isGroup:YES isGroupDeleted:YES];
+                }
+            }
+            else if (lastMessage.type == TAPChatMessageTypeSystemMessage && [lastMessage.action isEqualToString:@"room/leave"] && [lastMessage.user.userID isEqualToString:[TAPDataManager getActiveUser].userID]) {
+                [self.view endEditing:YES];
+                [self showDeletedRoomView:YES isGroup:NO isGroupDeleted:NO];
+            }
+            //END DV Note
+            
             if ([obtainedMessageArray count] == 0) {
                 //No chat history, first time chat
                 [self checkEmptyState];
@@ -5646,7 +5728,7 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
             }
             else {
                 //Has existing chat
-                [self updateMessageDataAndUIWithMessages:obtainedMessageArray checkFirstUnreadMessage:NO toTop:NO withCompletionHandler:^{
+                [self updateMessageDataAndUIWithMessages:obtainedMessageArray checkFirstUnreadMessage:NO toTop:NO updateUserDetail:NO withCompletionHandler:^{
                     TAPMessageModel *earliestMessage = [obtainedMessageArray objectAtIndex:[obtainedMessageArray count] - 1];
                     NSNumber *minCreated = earliestMessage.created;  
                     _minCreatedMessage = minCreated;
@@ -5681,7 +5763,7 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
                         
                         
                         //Update View
-                        [self updateMessageDataAndUIWithMessages:messageArray checkFirstUnreadMessage:YES toTop:YES withCompletionHandler:^{
+                        [self updateMessageDataAndUIWithMessages:messageArray checkFirstUnreadMessage:YES toTop:YES updateUserDetail:YES withCompletionHandler:^{
                             
                             //Update leftover message status to delivered
                             if ([messageArray count] != 0) {
@@ -5712,7 +5794,7 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
                             //Check if system message with action remove participant and target user is current user
                             //show deleted chat room view
                             [self.view endEditing:YES];
-                            [self showDeletedRoomView:YES isGroup:YES withDeleteButton:YES];
+                            [self showDeletedRoomView:YES isGroup:YES isGroupDeleted:NO];
                         }
 #ifdef DEBUG
                         //Note - this alert only shown at debug
@@ -5773,6 +5855,7 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
             BOOL setAsRead = NO;
             BOOL setAsDeleted = NO;
             
+            
             if ([currentMessage.user.userID isEqualToString:currentUser.userID]) {
                 //My Message
                 if (currentMessage.isSending) {
@@ -5807,6 +5890,9 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
             //Update message data
             [self updateMessageModelValueWithMessage:message];
             
+            //Check need to update profile data or not
+            [self checkUpdatedUserProfileWithMessage:message];
+            
             //Update view
             NSInteger indexInArray = [self.messageArray indexOfObject:currentMessage];
             NSIndexPath *messageIndexPath = [NSIndexPath indexPathForRow:indexInArray inSection:0];
@@ -6103,7 +6189,7 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
     }
 }
 
-- (void)updateMessageDataAndUIWithMessages:(NSArray *)messageArray checkFirstUnreadMessage:(BOOL)checkFirstUnreadMessage toTop:(BOOL)toTop withCompletionHandler:(void(^)())completionHandler {
+- (void)updateMessageDataAndUIWithMessages:(NSArray *)messageArray checkFirstUnreadMessage:(BOOL)checkFirstUnreadMessage toTop:(BOOL)toTop updateUserDetail:(BOOL)updateUserDetail withCompletionHandler:(void(^)())completionHandler {
     //RN Note - If crash happen on opening room, this async might be the cause
     dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
     dispatch_async(queue, ^{
@@ -6114,6 +6200,7 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
             
             TAPMessageModel *message = [messageArray objectAtIndex:counter];
             TAPMessageModel *currentMessage = [self.messageDictionary objectForKey:message.localID];
+            
             if (currentMessage != nil) {
                 //Message exist in dictionary
                 [self updateMessageModelValueWithMessage:message];
@@ -6152,6 +6239,11 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
                     }
                 }
             }
+            
+            if (updateUserDetail) {
+                //Check need to update profile data or not
+                [self checkUpdatedUserProfileWithMessage:message];
+            }
         }
         
         dispatch_async(dispatch_get_main_queue(), ^{
@@ -6308,7 +6400,7 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
         });
         
         //Update View
-        [self updateMessageDataAndUIWithMessages:messageArray checkFirstUnreadMessage:YES toTop:scrollToTop withCompletionHandler:^{
+        [self updateMessageDataAndUIWithMessages:messageArray checkFirstUnreadMessage:YES toTop:scrollToTop updateUserDetail:YES withCompletionHandler:^{
             //Update leftover message status to delivered
             if ([messageArray count] != 0) {
                 [[TAPMessageStatusManager sharedManager] filterAndUpdateBulkMessageStatusToDeliveredWithArray:messageArray];
@@ -6326,7 +6418,7 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
             //Check if system message with action remove participant and target user is current user
             //show deleted chat room view
             [self.view endEditing:YES];
-            [self showDeletedRoomView:YES isGroup:YES withDeleteButton:YES];
+            [self showDeletedRoomView:YES isGroup:YES isGroupDeleted:NO];
         }
     }];
 }
@@ -7466,7 +7558,7 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
                     //user not found
                     //hide textview
                     self.inputMessageAccessoryView.alpha = 0.0f;
-                    [self showDeletedRoomView:YES isGroup:NO withDeleteButton:NO];
+                    [self showDeletedRoomView:YES isGroup:NO isGroupDeleted:NO];
                 }
             }];
         }
@@ -7488,7 +7580,7 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
                     //user not found
                     //hide textview
                     self.inputMessageAccessoryView.alpha = 0.0f;
-                    [self showDeletedRoomView:YES isGroup:YES withDeleteButton:NO];
+                    [self showDeletedRoomView:YES isGroup:YES isGroupDeleted:YES];
                 }
             }];
         }
@@ -8043,24 +8135,6 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
     }];
 }
 
-- (void)setRoomNotAvailable {
-    [self.messageTextView resignFirstResponder];
-    [self.secondaryTextField resignFirstResponder];
-    _isShowAccessoryView = NO;
-    [self reloadInputViews];
-    self.kickedGroupRoomBackgroundView.alpha = 1.0f;
-    
-    //delete room
-    [TAPDataManager deleteAllMessageAndPhysicalFilesInRoomWithRoomID:self.currentRoom.roomID success:^{
-        if ([self.delegate respondsToSelector:@selector(chatViewControllerDidLeaveOrDeleteGroupWithRoom:)]) {
-            [self.delegate chatViewControllerDidLeaveOrDeleteGroupWithRoom:self.currentRoom];
-        }
-    } failure:^(NSError *error) {
-    
-    }];
-    
-}
-
 - (void)showTapTalkMessageComposerView {
     [self showInputAccessoryView];
 }
@@ -8068,19 +8142,28 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
 - (void)checkAndShowRoomViewState {
     //check if last message is deleted room
     TAPMessageModel *lastMessage = [self.messageArray firstObject];
-    if (lastMessage.type == TAPChatMessageTypeSystemMessage && [lastMessage.action isEqualToString:@"room/removeParticipant"] && [lastMessage.target.targetID isEqualToString:[TAPDataManager getActiveUser].userID]) {
+    if (lastMessage.room.type == RoomTypePersonal && lastMessage.room.isDeleted) {
+        [self.view endEditing:YES];
+        [self showDeletedRoomView:YES isGroup:NO isGroupDeleted:NO];
+    }
+    else if (lastMessage.type == TAPChatMessageTypeSystemMessage && [lastMessage.action isEqualToString:@"room/removeParticipant"] && [lastMessage.target.targetID isEqualToString:[TAPDataManager getActiveUser].userID]) {
         //Check if system message with action remove participant and target user is current user
         //show deleted chat room view
         [self.view endEditing:YES];
-        [self showDeletedRoomView:YES isGroup:YES withDeleteButton:YES];
+        [self showDeletedRoomView:YES isGroup:YES isGroupDeleted:NO];
     }
     else if (lastMessage.type == TAPChatMessageTypeSystemMessage && [lastMessage.action isEqualToString:@"room/delete"]) {
         [self.view endEditing:YES];
-        [self setRoomNotAvailable];
+        if (lastMessage.room.type == RoomTypePersonal) {
+            [self showDeletedRoomView:YES isGroup:NO isGroupDeleted:NO];
+        }
+        else if (lastMessage.room.type == RoomTypeGroup) {
+            [self showDeletedRoomView:YES isGroup:YES isGroupDeleted:YES];
+        }
     }
     else if (lastMessage.type == TAPChatMessageTypeSystemMessage && [lastMessage.action isEqualToString:@"room/leave"] && [lastMessage.user.userID isEqualToString:[TAPDataManager getActiveUser].userID]) {
         [self.view endEditing:YES];
-        [self showDeletedRoomView:YES isGroup:NO withDeleteButton:YES];
+        [self showDeletedRoomView:YES isGroup:NO isGroupDeleted:NO];
     }
 }
 
@@ -8121,5 +8204,35 @@ typedef NS_ENUM(NSInteger, TopFloatingIndicatorViewType) {
     }];
 }
 
+- (void)checkUpdatedUserProfileWithMessage:(TAPMessageModel *)message {
+    dispatch_async(dispatch_get_main_queue(), ^{
+        if (message.type == TAPChatMessageTypeSystemMessage && ([message.action isEqualToString:@"user/update"] || [message.action isEqualToString:@"room/update"])) {
+             TAPRoomModel *room = [TAPChatManager sharedManager].activeRoom;
+             NSString *updatedImageURLString = message.room.imageURL.thumbnail;
+             NSString *currentImageURLString = room.imageURL.thumbnail;
+             if (![updatedImageURLString isEqualToString:currentImageURLString]) {
+                 if (updatedImageURLString == nil || [updatedImageURLString isEqualToString:@""]) {
+                     BOOL isGroup;
+                     if (message.room.type == RoomTypeGroup) {
+                         isGroup = YES;
+                     }
+                     
+                     self.rightBarInitialNameView.alpha = 1.0f;
+                     self.rightBarImageView.alpha = 0.0f;
+                     self.rightBarInitialNameView.backgroundColor = [[TAPStyleManager sharedManager] getRandomDefaultAvatarBackgroundColorWithName:message.room.name];
+                     self.rightBarInitialNameLabel.text = [[TAPStyleManager sharedManager] getInitialsWithName:message.room.name isGroup:isGroup];
+                 }
+                 else {
+                     self.rightBarInitialNameView.alpha = 0.0f;
+                     self.rightBarImageView.alpha = 1.0f;
+                     [self.rightBarImageView setImageWithURLString:updatedImageURLString];
+                 }
+                 
+                 self.nameLabel.text = message.room.name;
+             }
+         }
+    });
+}
+
 @end
 
diff --git a/TapTalk/View Controllers/TapUIRoomListViewController.m b/TapTalk/View Controllers/TapUIRoomListViewController.m
index 5a9bf03..4d616c0 100644
--- a/TapTalk/View Controllers/TapUIRoomListViewController.m	
+++ b/TapTalk/View Controllers/TapUIRoomListViewController.m	
@@ -55,6 +55,7 @@
 - (void)openNewChatViewController;
 - (void)hideSetupViewWithDelay:(double)delayTime;
 - (void)getAndUpdateNumberOfUnreadToDelegate;
+- (void)checkUpdatedUserProfileWithMessage:(TAPMessageModel *)message;
 
 @end
 
@@ -994,6 +995,11 @@
 - (void)processMessageFromSocket:(TAPMessageModel *)message isNewMessage:(BOOL)isNewMessage {
     NSString *messageRoomID = message.room.roomID;
     
+    //Check need to update user data or not
+    if (message.type == TAPChatMessageTypeSystemMessage && ([message.action isEqualToString:@"user/update"] || [message.action isEqualToString:@"room/update"])) {
+        [self checkUpdatedUserProfileWithMessage:message];
+    }
+    
     TAPRoomListModel *roomList = [self.roomListDictionary objectForKey:messageRoomID];
     
     if (roomList != nil) {
@@ -1161,4 +1167,12 @@
     });
 }
 
+- (void)checkUpdatedUserProfileWithMessage:(TAPMessageModel *)message {
+    NSString *roomID = message.room.roomID;
+    TAPRoomListModel *roomList = [self.roomListDictionary objectForKey:roomID];
+    NSInteger cellRow = [self.roomListArray indexOfObject:roomList];
+    NSIndexPath *cellIndexPath = [NSIndexPath indexPathForRow:cellRow inSection:0];
+    [self updateCellDataAtIndexPath:cellIndexPath updateUnreadBubble:NO];
+}
+
 @end
diff --git a/TapTalk/Views/UITableViewCells/TAPMyChatBubbleTableViewCell.m b/TapTalk/Views/UITableViewCells/TAPMyChatBubbleTableViewCell.m
index e452377..373dfb2 100644
--- a/TapTalk/Views/UITableViewCells/TAPMyChatBubbleTableViewCell.m
+++ b/TapTalk/Views/UITableViewCells/TAPMyChatBubbleTableViewCell.m
@@ -541,7 +541,7 @@
 
 - (void)setQuote:(TAPQuoteModel *)quote userID:(NSString *)userID {
     
-    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]]) {
+    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]] || [quote.fileType isEqualToString:@"file"]) {
         //TYPE FILE
         self.fileImageView.alpha = 1.0f;
         self.quoteImageView.alpha = 0.0f;
diff --git a/TapTalk/Views/UITableViewCells/TAPMyFileBubbleTableViewCell.m b/TapTalk/Views/UITableViewCells/TAPMyFileBubbleTableViewCell.m
index e7801bb..8792aa0 100644
--- a/TapTalk/Views/UITableViewCells/TAPMyFileBubbleTableViewCell.m
+++ b/TapTalk/Views/UITableViewCells/TAPMyFileBubbleTableViewCell.m
@@ -622,7 +622,7 @@
 }
 
 - (void)setQuote:(TAPQuoteModel *)quote userID:(NSString *)userID {
-    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]]) {
+    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]] || [quote.fileType isEqualToString:@"file"]) {
         //TYPE FILE
         self.fileImageView.alpha = 1.0f;
         self.quoteImageView.alpha = 0.0f;
diff --git a/TapTalk/Views/UITableViewCells/TAPMyImageBubbleTableViewCell.m b/TapTalk/Views/UITableViewCells/TAPMyImageBubbleTableViewCell.m
index 011b19f..3fe3ceb 100644
--- a/TapTalk/Views/UITableViewCells/TAPMyImageBubbleTableViewCell.m
+++ b/TapTalk/Views/UITableViewCells/TAPMyImageBubbleTableViewCell.m
@@ -1164,7 +1164,7 @@
 
 - (void)setQuote:(TAPQuoteModel *)quote userID:(NSString *)userID {
 
-    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]]) {
+    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]] || [quote.fileType isEqualToString:@"file"]) {
         //TYPE FILE
         self.fileImageView.alpha = 1.0f;
         self.quoteImageView.alpha = 0.0f;
diff --git a/TapTalk/Views/UITableViewCells/TAPMyLocationBubbleTableViewCell.m b/TapTalk/Views/UITableViewCells/TAPMyLocationBubbleTableViewCell.m
index 52a9798..b19d966 100644
--- a/TapTalk/Views/UITableViewCells/TAPMyLocationBubbleTableViewCell.m
+++ b/TapTalk/Views/UITableViewCells/TAPMyLocationBubbleTableViewCell.m
@@ -586,7 +586,7 @@
 }
 
 - (void)setQuote:(TAPQuoteModel *)quote userID:(NSString *)userID {
-    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]]) {
+    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]] || [quote.fileType isEqualToString:@"file"]) {
         //TYPE FILE
         self.fileImageView.alpha = 1.0f;
         self.quoteImageView.alpha = 0.0f;
diff --git a/TapTalk/Views/UITableViewCells/TAPRoomListTableViewCell.m b/TapTalk/Views/UITableViewCells/TAPRoomListTableViewCell.m
index eae7515..df16274 100644
--- a/TapTalk/Views/UITableViewCells/TAPRoomListTableViewCell.m
+++ b/TapTalk/Views/UITableViewCells/TAPRoomListTableViewCell.m
@@ -185,11 +185,6 @@
     BOOL isGroup = NO;
     NSString *lastSender = @"";
     
-    NSString *profileImageURL = message.room.imageURL.thumbnail;
-    if ([[TAPGroupManager sharedManager] getRoomWithRoomID:message.room.roomID]) {
-        TAPRoomModel *room = [[TAPGroupManager sharedManager] getRoomWithRoomID:message.room.roomID];
-        profileImageURL = room.imageURL.thumbnail;
-    }
     NSInteger numberOfUnreadMessage = roomList.numberOfUnreadMessages;
     
     TAPRoomModel *currentRoom = message.room;
@@ -199,6 +194,59 @@
         isGroup = YES;
     }
     
+    NSString *profileImageURL = @"";
+     NSString *roomName = @"";
+     if (message.room.type == RoomTypePersonal) {
+         NSString *otherUserID = [[TAPChatManager sharedManager] getOtherUserIDWithRoomID:currentRoom.roomID];
+         TAPUserModel *obtainedUser = [[TAPContactManager sharedManager] getUserWithUserID:otherUserID];
+         if([message.room.deleted longValue] != 0) {
+             profileImageURL = @"";
+         }
+         else if (obtainedUser != nil && ![obtainedUser.imageURL.thumbnail isEqualToString:@""]) {
+             profileImageURL = obtainedUser.imageURL.thumbnail;
+             profileImageURL = [TAPUtil nullToEmptyString:profileImageURL];
+         }
+         else {
+             profileImageURL = message.room.imageURL.thumbnail;
+             profileImageURL = [TAPUtil nullToEmptyString:profileImageURL];
+         }
+         
+         if (obtainedUser != nil && obtainedUser.fullname != nil && [message.room.deleted longValue] == 0) {
+             roomName = obtainedUser.fullname;
+             roomName = [TAPUtil nullToEmptyString:roomName];
+         }
+         else {
+             roomName = message.room.name;
+             roomName = [TAPUtil nullToEmptyString:roomName];
+         }
+     }
+     else if (message.room.type == RoomTypeGroup) {
+         TAPRoomModel *obtainedRoom = [[TAPGroupManager sharedManager] getRoomWithRoomID:message.room.roomID];
+         NSString *groupProfileImageURL = obtainedRoom.imageURL.thumbnail;
+         groupProfileImageURL = [TAPUtil nullToEmptyString:groupProfileImageURL];
+         
+         NSString *groupRoomName = obtainedRoom.name;
+         groupRoomName = [TAPUtil nullToEmptyString:groupRoomName];
+         
+         if ([groupProfileImageURL isEqualToString:@""]) {
+             profileImageURL = message.room.imageURL.thumbnail;
+             profileImageURL = [TAPUtil nullToEmptyString:profileImageURL];
+         }
+         else {
+             profileImageURL = groupProfileImageURL;
+             profileImageURL = [TAPUtil nullToEmptyString:profileImageURL];
+         }
+         
+         if ([groupRoomName isEqualToString:@""]) {
+             roomName = message.room.name;
+             roomName = [TAPUtil nullToEmptyString:roomName];
+         }
+         else {
+             roomName = groupRoomName;
+             roomName = [TAPUtil nullToEmptyString:roomName];
+         }
+     }
+    
     if (isGroup) {
         TAPUserModel *currentActiveUser = [TAPDataManager getActiveUser];
         if ([currentActiveUser.userID isEqualToString:message.user.userID]) {
@@ -209,9 +257,6 @@
         }
     }
     
-    NSString *roomName = currentRoom.name;
-    roomName = [TAPUtil nullToEmptyString:roomName];
-    
     NSTimeInterval lastMessageTimeInterval = [message.created doubleValue] / 1000.0f; //change to second from milisecond
     NSDate *lastMessageDate = [NSDate dateWithTimeIntervalSince1970:lastMessageTimeInterval];
     
diff --git a/TapTalk/Views/UITableViewCells/TAPSearchResultChatTableViewCell.m b/TapTalk/Views/UITableViewCells/TAPSearchResultChatTableViewCell.m
index f153e6c..1f4a11e 100644
--- a/TapTalk/Views/UITableViewCells/TAPSearchResultChatTableViewCell.m
+++ b/TapTalk/Views/UITableViewCells/TAPSearchResultChatTableViewCell.m
@@ -127,15 +127,62 @@
     if (room.type == RoomTypeGroup || room.type == RoomTypeChannel) {
         isGroup = YES;
     }
-    
-    NSString *profileImageURL = room.imageURL.fullsize;
+
+    NSString *profileImageURL = @"";
+    NSString *roomName = @"";
+    if (room.type == RoomTypePersonal) {
+        NSString *otherUserID = [[TAPChatManager sharedManager] getOtherUserIDWithRoomID:room.roomID];
+        TAPUserModel *obtainedUser = [[TAPContactManager sharedManager] getUserWithUserID:otherUserID];
+        if([room.deleted longValue] != 0) {
+            profileImageURL = @"";
+        }
+        else if (obtainedUser != nil && ![obtainedUser.imageURL.thumbnail isEqualToString:@""]) {
+            profileImageURL = obtainedUser.imageURL.thumbnail;
+            profileImageURL = [TAPUtil nullToEmptyString:profileImageURL];
+        }
+        else {
+            profileImageURL = room.imageURL.thumbnail;
+            profileImageURL = [TAPUtil nullToEmptyString:profileImageURL];
+        }
+        
+        if (obtainedUser != nil && obtainedUser.fullname != nil && [room.deleted longValue] == 0) {
+            roomName = obtainedUser.fullname;
+            roomName = [TAPUtil nullToEmptyString:roomName];
+        }
+        else {
+            roomName = room.name;
+            roomName = [TAPUtil nullToEmptyString:roomName];
+        }
+    }
+    else if (room.type == RoomTypeGroup) {
+        TAPRoomModel *obtainedRoom = [[TAPGroupManager sharedManager] getRoomWithRoomID:room.roomID];
+        NSString *groupProfileImageURL = obtainedRoom.imageURL.thumbnail;
+        groupProfileImageURL = [TAPUtil nullToEmptyString:groupProfileImageURL];
+        
+        NSString *groupRoomName = obtainedRoom.name;
+        groupRoomName = [TAPUtil nullToEmptyString:groupRoomName];
+        
+        if ([groupProfileImageURL isEqualToString:@""]) {
+            profileImageURL = room.imageURL.thumbnail;
+            profileImageURL = [TAPUtil nullToEmptyString:profileImageURL];
+        }
+        else {
+            profileImageURL = groupProfileImageURL;
+            profileImageURL = [TAPUtil nullToEmptyString:profileImageURL];
+        }
+        
+        if ([groupRoomName isEqualToString:@""]) {
+            roomName = room.name;
+            roomName = [TAPUtil nullToEmptyString:roomName];
+        }
+        else {
+            roomName = groupRoomName;
+            roomName = [TAPUtil nullToEmptyString:roomName];
+        }
+    }
+
     NSInteger numberOfUnreadMessage = [unreadMessageCount integerValue];
     
-    TAPRoomModel *currentRoom = room;
-    
-    NSString *roomName = currentRoom.name;
-    roomName = [TAPUtil nullToEmptyString:roomName];
-    
     if (profileImageURL == nil || [profileImageURL isEqualToString:@""]) {
         //No photo found, get the initial
         self.initialNameView.alpha = 1.0f;
diff --git a/TapTalk/Views/UITableViewCells/TAPYourChatBubbleTableViewCell.m b/TapTalk/Views/UITableViewCells/TAPYourChatBubbleTableViewCell.m
index 5599841..3435e0c 100644
--- a/TapTalk/Views/UITableViewCells/TAPYourChatBubbleTableViewCell.m
+++ b/TapTalk/Views/UITableViewCells/TAPYourChatBubbleTableViewCell.m
@@ -367,26 +367,47 @@
     if (message.room.type == RoomTypeGroup) {
         [self showSenderInfo:YES];
         
-        if ([message.user.imageURL.thumbnail isEqualToString:@""]) {
+        NSString *thumbnailImageString = @"";
+        TAPUserModel *obtainedUser = [[TAPContactManager sharedManager] getUserWithUserID:message.user.userID];
+        if (obtainedUser != nil && ![obtainedUser.imageURL.thumbnail isEqualToString:@""]) {
+            thumbnailImageString = obtainedUser.imageURL.thumbnail;
+            thumbnailImageString = [TAPUtil nullToEmptyString:thumbnailImageString];
+        }
+        else {
+            thumbnailImageString = message.user.imageURL.thumbnail;
+            thumbnailImageString = [TAPUtil nullToEmptyString:thumbnailImageString];
+        }
+        
+        NSString *fullNameString = @"";
+        if (obtainedUser != nil && ![obtainedUser.fullname isEqualToString:@""]) {
+            fullNameString = obtainedUser.fullname;
+            fullNameString = [TAPUtil nullToEmptyString:fullNameString];
+        }
+        else {
+            fullNameString = message.user.fullname;
+            fullNameString = [TAPUtil nullToEmptyString:fullNameString];
+        }
+        
+        if ([thumbnailImageString isEqualToString:@""]) {
             //No photo found, get the initial
             self.senderInitialView.alpha = 1.0f;
             self.senderImageView.alpha = 0.0f;
-            self.senderInitialView.backgroundColor = [[TAPStyleManager sharedManager] getRandomDefaultAvatarBackgroundColorWithName:message.user.fullname];
-            self.senderInitialLabel.text = [[TAPStyleManager sharedManager] getInitialsWithName:message.user.fullname isGroup:NO];
+            self.senderInitialView.backgroundColor = [[TAPStyleManager sharedManager] getRandomDefaultAvatarBackgroundColorWithName:fullNameString];
+            self.senderInitialLabel.text = [[TAPStyleManager sharedManager] getInitialsWithName:fullNameString isGroup:NO];
         }
         else {
 
-            if(![self.currentProfileImageURLString isEqualToString:message.user.imageURL.thumbnail]) {
+            if(![self.currentProfileImageURLString isEqualToString:thumbnailImageString]) {
                 self.senderImageView.image = nil;
             }
             
             self.senderInitialView.alpha = 0.0f;
             self.senderImageView.alpha = 1.0f;
-            [self.senderImageView setImageWithURLString:message.user.imageURL.thumbnail];
-            _currentProfileImageURLString = message.user.imageURL.thumbnail;
+            [self.senderImageView setImageWithURLString:thumbnailImageString];
+            _currentProfileImageURLString = thumbnailImageString;
         }
         
-        self.senderNameLabel.text = message.user.fullname;
+        self.senderNameLabel.text = fullNameString;
     }
     else {
         [self showSenderInfo:NO];
@@ -618,7 +639,7 @@
 }
 
 - (void)setQuote:(TAPQuoteModel *)quote userID:(NSString *)userID {
-    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]]) {
+    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]] || [quote.fileType isEqualToString:@"file"]) {
         //TYPE FILE
         self.fileView.alpha = 1.0f;
         self.quoteImageView.alpha = 0.0f;
@@ -635,7 +656,7 @@
     }
     
     //check id message sender is equal to active user id, if yes change the title to "You"
-    if ([userID isEqualToString:[TAPDataManager getActiveUser].userID] && ![quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]]) {
+    if ([userID isEqualToString:[TAPDataManager getActiveUser].userID] && !([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]] || [quote.fileType isEqualToString:@"file"])) {
         self.quoteTitleLabel.text = NSLocalizedString(@"You", @"");
     }
     else {
diff --git a/TapTalk/Views/UITableViewCells/TAPYourChatDeletedBubbleTableViewCell.m b/TapTalk/Views/UITableViewCells/TAPYourChatDeletedBubbleTableViewCell.m
index 2b7779c..322c2a2 100644
--- a/TapTalk/Views/UITableViewCells/TAPYourChatDeletedBubbleTableViewCell.m
+++ b/TapTalk/Views/UITableViewCells/TAPYourChatDeletedBubbleTableViewCell.m
@@ -111,24 +111,46 @@
     self.bubbleLabel.text = NSLocalizedString(@"This message was deleted.", @"");
     
     //CS NOTE - check chat room type, show sender info if group type
+    
     if (message.room.type == RoomTypeGroup) {
         [self showSenderInfo:YES];
+        
+        NSString *thumbnailImageString = @"";
+        TAPUserModel *obtainedUser = [[TAPContactManager sharedManager] getUserWithUserID:message.user.userID];
+        if (obtainedUser != nil && ![obtainedUser.imageURL.thumbnail isEqualToString:@""]) {
+            thumbnailImageString = obtainedUser.imageURL.thumbnail;
+            thumbnailImageString = [TAPUtil nullToEmptyString:thumbnailImageString];
+        }
+        else {
+            thumbnailImageString = message.user.imageURL.thumbnail;
+            thumbnailImageString = [TAPUtil nullToEmptyString:thumbnailImageString];
+        }
+        
+        NSString *fullNameString = @"";
+        if (obtainedUser != nil && ![obtainedUser.fullname isEqualToString:@""]) {
+            fullNameString = obtainedUser.fullname;
+            fullNameString = [TAPUtil nullToEmptyString:fullNameString];
+        }
+        else {
+            fullNameString = message.user.fullname;
+            fullNameString = [TAPUtil nullToEmptyString:fullNameString];
+        }
 
-        if ([message.user.imageURL.thumbnail isEqualToString:@""]) {
+        if ([thumbnailImageString isEqualToString:@""]) {
             //No photo found, get the initial
             self.senderInitialView.alpha = 1.0f;
             self.senderImageView.alpha = 0.0f;
             self.senderProfileImageButton.alpha = 0.0f;
-            self.senderInitialView.backgroundColor = [[TAPStyleManager sharedManager] getRandomDefaultAvatarBackgroundColorWithName:message.user.fullname];
-            self.senderInitialLabel.text = [[TAPStyleManager sharedManager] getInitialsWithName:message.user.fullname isGroup:NO];
+            self.senderInitialView.backgroundColor = [[TAPStyleManager sharedManager] getRandomDefaultAvatarBackgroundColorWithName:fullNameString];
+            self.senderInitialLabel.text = [[TAPStyleManager sharedManager] getInitialsWithName:fullNameString isGroup:NO];
         }
         else {
             self.senderInitialView.alpha = 0.0f;
             self.senderImageView.alpha = 1.0f;
-            [self.senderImageView setImageWithURLString:message.user.imageURL.thumbnail];
+            [self.senderImageView setImageWithURLString:thumbnailImageString];
         }
         
-        self.senderNameLabel.text = message.user.fullname;
+        self.senderNameLabel.text = fullNameString;
     }
     else {
         [self showSenderInfo:NO];
diff --git a/TapTalk/Views/UITableViewCells/TAPYourFileBubbleTableViewCell.m b/TapTalk/Views/UITableViewCells/TAPYourFileBubbleTableViewCell.m
index 62fb263..c3f5352 100644
--- a/TapTalk/Views/UITableViewCells/TAPYourFileBubbleTableViewCell.m
+++ b/TapTalk/Views/UITableViewCells/TAPYourFileBubbleTableViewCell.m
@@ -422,26 +422,48 @@
     //CS NOTE - check chat room type, show sender info if group type
     if (message.room.type == RoomTypeGroup) {
         [self showSenderInfo:YES];
-        if ([message.user.imageURL.thumbnail isEqualToString:@""]) {
+        
+        NSString *thumbnailImageString = @"";
+        TAPUserModel *obtainedUser = [[TAPContactManager sharedManager] getUserWithUserID:message.user.userID];
+        if (obtainedUser != nil && ![obtainedUser.imageURL.thumbnail isEqualToString:@""]) {
+           thumbnailImageString = obtainedUser.imageURL.thumbnail;
+           thumbnailImageString = [TAPUtil nullToEmptyString:thumbnailImageString];
+        }
+        else {
+           thumbnailImageString = message.user.imageURL.thumbnail;
+           thumbnailImageString = [TAPUtil nullToEmptyString:thumbnailImageString];
+        }
+
+        NSString *fullNameString = @"";
+        if (obtainedUser != nil && ![obtainedUser.fullname isEqualToString:@""]) {
+           fullNameString = obtainedUser.fullname;
+           fullNameString = [TAPUtil nullToEmptyString:fullNameString];
+        }
+        else {
+           fullNameString = message.user.fullname;
+           fullNameString = [TAPUtil nullToEmptyString:fullNameString];
+        }
+        
+        if ([thumbnailImageString isEqualToString:@""]) {
             //No photo found, get the initial
             self.senderInitialView.alpha = 1.0f;
             self.senderImageView.alpha = 0.0f;
-            self.senderInitialView.backgroundColor = [[TAPStyleManager sharedManager] getRandomDefaultAvatarBackgroundColorWithName:message.user.fullname];
-            self.senderInitialLabel.text = [[TAPStyleManager sharedManager] getInitialsWithName:message.user.fullname isGroup:NO];
+            self.senderInitialView.backgroundColor = [[TAPStyleManager sharedManager] getRandomDefaultAvatarBackgroundColorWithName:fullNameString];
+            self.senderInitialLabel.text = [[TAPStyleManager sharedManager] getInitialsWithName:fullNameString isGroup:NO];
 
         }
         else {
-            if(![self.currentProfileImageURLString isEqualToString:message.user.imageURL.thumbnail]) {
+            if(![self.currentProfileImageURLString isEqualToString:thumbnailImageString]) {
                 self.senderImageView.image = nil;
             }
             
             self.senderInitialView.alpha = 0.0f;
             self.senderImageView.alpha = 1.0f;
-            [self.senderImageView setImageWithURLString:message.user.imageURL.thumbnail];
-            _currentProfileImageURLString = message.user.imageURL.thumbnail;
+            [self.senderImageView setImageWithURLString:thumbnailImageString];
+            _currentProfileImageURLString = thumbnailImageString;
         }
 
-        self.senderNameLabel.text = message.user.fullname;
+        self.senderNameLabel.text = fullNameString;
     }
     else {
         [self showSenderInfo:NO];
@@ -699,7 +721,7 @@
 }
 
 - (void)setQuote:(TAPQuoteModel *)quote userID:(NSString *)userID {
-    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]]) {
+    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]] || [quote.fileType isEqualToString:@"file"]) {
         //TYPE FILE
         self.fileView.alpha = 1.0f;
         self.quoteImageView.alpha = 0.0f;
diff --git a/TapTalk/Views/UITableViewCells/TAPYourImageBubbleTableViewCell.m b/TapTalk/Views/UITableViewCells/TAPYourImageBubbleTableViewCell.m
index aafaae6..b7f6854 100644
--- a/TapTalk/Views/UITableViewCells/TAPYourImageBubbleTableViewCell.m
+++ b/TapTalk/Views/UITableViewCells/TAPYourImageBubbleTableViewCell.m
@@ -537,23 +537,44 @@
         self.senderImageViewTrailingConstraint.constant = 4.0f;
         self.senderProfileImageButtonWidthConstraint.constant = 30.0f;
         self.senderProfileImageButton.userInteractionEnabled = YES;
+        
+        NSString *thumbnailImageString = @"";
+        TAPUserModel *obtainedUser = [[TAPContactManager sharedManager] getUserWithUserID:message.user.userID];
+        if (obtainedUser != nil && ![obtainedUser.imageURL.thumbnail isEqualToString:@""]) {
+           thumbnailImageString = obtainedUser.imageURL.thumbnail;
+           thumbnailImageString = [TAPUtil nullToEmptyString:thumbnailImageString];
+        }
+        else {
+           thumbnailImageString = message.user.imageURL.thumbnail;
+           thumbnailImageString = [TAPUtil nullToEmptyString:thumbnailImageString];
+        }
+
+        NSString *fullNameString = @"";
+        if (obtainedUser != nil && ![obtainedUser.fullname isEqualToString:@""]) {
+           fullNameString = obtainedUser.fullname;
+           fullNameString = [TAPUtil nullToEmptyString:fullNameString];
+        }
+        else {
+           fullNameString = message.user.fullname;
+           fullNameString = [TAPUtil nullToEmptyString:fullNameString];
+        }
 
-        if ([message.user.imageURL.thumbnail isEqualToString:@""]) {
+        if ([thumbnailImageString isEqualToString:@""]) {
             //No photo found, get the initial
             self.senderInitialView.alpha = 1.0f;
             self.senderImageView.alpha = 0.0f;
-            self.senderInitialView.backgroundColor = [[TAPStyleManager sharedManager] getRandomDefaultAvatarBackgroundColorWithName:message.user.fullname];
-            self.senderInitialLabel.text = [[TAPStyleManager sharedManager] getInitialsWithName:message.user.fullname isGroup:NO];
+            self.senderInitialView.backgroundColor = [[TAPStyleManager sharedManager] getRandomDefaultAvatarBackgroundColorWithName:fullNameString];
+            self.senderInitialLabel.text = [[TAPStyleManager sharedManager] getInitialsWithName:fullNameString isGroup:NO];
         }
         else {
-            if(![self.currentProfileImageURLString isEqualToString:message.user.imageURL.thumbnail]) {
+            if(![self.currentProfileImageURLString isEqualToString:thumbnailImageString]) {
                 self.senderImageView.image = nil;
             }
             
             self.senderInitialView.alpha = 0.0f;
             self.senderImageView.alpha = 1.0f;
-            [self.senderImageView setImageWithURLString:message.user.imageURL.thumbnail];
-            _currentProfileImageURLString = message.user.imageURL.thumbnail;
+            [self.senderImageView setImageWithURLString:thumbnailImageString];
+            _currentProfileImageURLString = thumbnailImageString;
         }
         
         //DV Note - Set sender name to empty string because image and video bubble not showing sender name
@@ -1111,7 +1132,7 @@
 }
 
 - (void)setQuote:(TAPQuoteModel *)quote userID:(NSString *)userID {
-    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]]) {
+    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]] || [quote.fileType isEqualToString:@"file"]) {
         //TYPE FILE
         self.fileView.alpha = 1.0f;
         self.quoteImageView.alpha = 0.0f;
diff --git a/TapTalk/Views/UITableViewCells/TAPYourLocationBubbleTableViewCell.m b/TapTalk/Views/UITableViewCells/TAPYourLocationBubbleTableViewCell.m
index 6baf5fb..6ee5e13 100644
--- a/TapTalk/Views/UITableViewCells/TAPYourLocationBubbleTableViewCell.m
+++ b/TapTalk/Views/UITableViewCells/TAPYourLocationBubbleTableViewCell.m
@@ -325,7 +325,28 @@
     if (message.room.type == RoomTypeGroup) {
         [self showSenderInfo:YES];
 
-        if ([message.user.imageURL.thumbnail isEqualToString:@""]) {
+        NSString *thumbnailImageString = @"";
+        TAPUserModel *obtainedUser = [[TAPContactManager sharedManager] getUserWithUserID:message.user.userID];
+        if (obtainedUser != nil && ![obtainedUser.imageURL.thumbnail isEqualToString:@""]) {
+          thumbnailImageString = obtainedUser.imageURL.thumbnail;
+          thumbnailImageString = [TAPUtil nullToEmptyString:thumbnailImageString];
+        }
+        else {
+          thumbnailImageString = message.user.imageURL.thumbnail;
+          thumbnailImageString = [TAPUtil nullToEmptyString:thumbnailImageString];
+        }
+
+        NSString *fullNameString = @"";
+        if (obtainedUser != nil && ![obtainedUser.fullname isEqualToString:@""]) {
+          fullNameString = obtainedUser.fullname;
+          fullNameString = [TAPUtil nullToEmptyString:fullNameString];
+        }
+        else {
+          fullNameString = message.user.fullname;
+          fullNameString = [TAPUtil nullToEmptyString:fullNameString];
+        }
+        
+        if ([thumbnailImageString isEqualToString:@""]) {
             //No photo found, get the initial
             self.senderInitialView.alpha = 1.0f;
             self.senderImageView.alpha = 0.0f;
@@ -333,14 +354,14 @@
             self.senderInitialLabel.text = [[TAPStyleManager sharedManager] getInitialsWithName:message.user.fullname isGroup:NO];
         }
         else {
-            if(![self.currentProfileImageURLString isEqualToString:message.user.imageURL.thumbnail]) {
+            if(![self.currentProfileImageURLString isEqualToString:thumbnailImageString]) {
                 self.senderImageView.image = nil;
             }
             
             self.senderInitialView.alpha = 0.0f;
             self.senderImageView.alpha = 1.0f;
-            [self.senderImageView setImageWithURLString:message.user.imageURL.thumbnail];
-            _currentProfileImageURLString = message.user.imageURL.thumbnail;
+            [self.senderImageView setImageWithURLString:thumbnailImageString];
+            _currentProfileImageURLString = thumbnailImageString;
         }
         
         self.senderNameLabel.text = message.user.fullname;
@@ -583,7 +604,7 @@
 }
 
 - (void)setQuote:(TAPQuoteModel *)quote userID:(NSString *)userID {
-    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]]) {
+    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]] || [quote.fileType isEqualToString:@"file"]) {
         //TYPE FILE
         self.fileView.alpha = 1.0f;
         self.quoteImageView.alpha = 0.0f;
diff --git a/TapTalk/Views/UITableViewCells/TAPYourVideoBubbleTableViewCell.m b/TapTalk/Views/UITableViewCells/TAPYourVideoBubbleTableViewCell.m
index aba9ab7..7d06811 100644
--- a/TapTalk/Views/UITableViewCells/TAPYourVideoBubbleTableViewCell.m
+++ b/TapTalk/Views/UITableViewCells/TAPYourVideoBubbleTableViewCell.m
@@ -499,22 +499,43 @@
         self.senderProfileImageButtonWidthConstraint.constant = 30.0f;
         self.senderProfileImageButton.userInteractionEnabled = YES;
         
-        if ([message.user.imageURL.thumbnail isEqualToString:@""]) {
+        NSString *thumbnailImageString = @"";
+        TAPUserModel *obtainedUser = [[TAPContactManager sharedManager] getUserWithUserID:message.user.userID];
+        if (obtainedUser != nil && ![obtainedUser.imageURL.thumbnail isEqualToString:@""]) {
+          thumbnailImageString = obtainedUser.imageURL.thumbnail;
+          thumbnailImageString = [TAPUtil nullToEmptyString:thumbnailImageString];
+        }
+        else {
+          thumbnailImageString = message.user.imageURL.thumbnail;
+          thumbnailImageString = [TAPUtil nullToEmptyString:thumbnailImageString];
+        }
+
+        NSString *fullNameString = @"";
+        if (obtainedUser != nil && ![obtainedUser.fullname isEqualToString:@""]) {
+          fullNameString = obtainedUser.fullname;
+          fullNameString = [TAPUtil nullToEmptyString:fullNameString];
+        }
+        else {
+          fullNameString = message.user.fullname;
+          fullNameString = [TAPUtil nullToEmptyString:fullNameString];
+        }
+        
+        if ([thumbnailImageString isEqualToString:@""]) {
             //No photo found, get the initial
             self.senderInitialView.alpha = 1.0f;
             self.senderImageView.alpha = 0.0f;
-            self.senderInitialView.backgroundColor = [[TAPStyleManager sharedManager] getRandomDefaultAvatarBackgroundColorWithName:message.user.fullname];
-            self.senderInitialLabel.text = [[TAPStyleManager sharedManager] getInitialsWithName:message.user.fullname isGroup:NO];
+            self.senderInitialView.backgroundColor = [[TAPStyleManager sharedManager] getRandomDefaultAvatarBackgroundColorWithName:fullNameString];
+            self.senderInitialLabel.text = [[TAPStyleManager sharedManager] getInitialsWithName:fullNameString isGroup:NO];
         }
         else {
-            if(![self.currentProfileImageURLString isEqualToString:message.user.imageURL.thumbnail]) {
+            if(![self.currentProfileImageURLString isEqualToString:thumbnailImageString]) {
                 self.senderImageView.image = nil;
             }
             
             self.senderInitialView.alpha = 0.0f;
             self.senderImageView.alpha = 1.0f;
-            [self.senderImageView setImageWithURLString:message.user.imageURL.thumbnail];
-            _currentProfileImageURLString = message.user.imageURL.thumbnail;
+            [self.senderImageView setImageWithURLString:thumbnailImageString];
+            _currentProfileImageURLString = thumbnailImageString;
         }
         
         //DV Note - Set sender name to empty string because image and video bubble not showing sender name
@@ -1034,7 +1055,7 @@
 }
 
 - (void)setQuote:(TAPQuoteModel *)quote userID:(NSString *)userID {
-    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]]) {
+    if ([quote.fileType isEqualToString:[NSString stringWithFormat:@"%ld", TAPChatMessageTypeFile]] || [quote.fileType isEqualToString:@"file"]) {
         //TYPE FILE
         self.fileView.alpha = 1.0f;
         self.quoteImageView.alpha = 0.0f;
-- 
GitLab