| 
					
				 | 
			
			
				@@ -157,9 +157,9 @@ public class RongUserInfoManager { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param groupUserInfoProvider 群组用户信息提供者。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param isCacheGroupUserInfo  设置是否由 IMKit 来缓存 GroupUserInfo。<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     *                         如果 App 提供的 GroupUserInfoProvider。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     *                         每次都需要通过网络请求数据,而不是将数据缓存到本地,会影响信息的加载速度;<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     *                         此时最好将本参数设置为 true,由 IMKit 来缓存信息。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     *                              如果 App 提供的 GroupUserInfoProvider。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     *                              每次都需要通过网络请求数据,而不是将数据缓存到本地,会影响信息的加载速度;<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     *                              此时最好将本参数设置为 true,由 IMKit 来缓存信息。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void setGroupUserInfoProvider(UserDataProvider.GroupUserInfoProvider groupUserInfoProvider, boolean isCacheGroupUserInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         mUserDataDelegate.setGroupUserInfoProvider(groupUserInfoProvider); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -190,7 +190,7 @@ public class RongUserInfoManager { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (mIsCacheUserInfo && mLocalDataSource != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             user = mLocalDataSource.getUserInfo(userId, mAllUsers); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (user == null && mUserDataDelegate != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (checkIsUpdateUser(user) && mUserDataDelegate != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             UserInfo userInfo = mUserDataDelegate.getUserInfo(userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (userInfo != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 user = new User(userInfo.getUserId(), userInfo.getName() == null ? "" : userInfo.getName(), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -209,6 +209,29 @@ public class RongUserInfoManager { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private boolean checkIsUpdateUser(User user) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (TextUtils.isEmpty(user.id) || TextUtils.isEmpty(user.portraitUrl) || TextUtils.isEmpty(user.name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private boolean checkIsUpdateGroup(Group group) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (group == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (TextUtils.isEmpty(group.id) || TextUtils.isEmpty(group.portraitUrl) || TextUtils.isEmpty(group.name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public LiveData<User> getUserInfoLiveData(final String userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         final MediatorLiveData userLiveData = new MediatorLiveData<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         userLiveData.addSource(UserDatabase.getDatabaseCreated(), new Observer<Boolean>() { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -237,7 +260,7 @@ public class RongUserInfoManager { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (mIsCacheGroupInfo && mLocalDataSource != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             group = mLocalDataSource.getGroupInfo(groupId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (group == null && mUserDataDelegate != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (checkIsUpdateGroup(group) && mUserDataDelegate != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             group = mUserDataDelegate.getGroupInfo(groupId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (mIsCacheGroupInfo && group != null && mLocalDataSource != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 mLocalDataSource.refreshGroupInfo(group); 
			 |