Browse Source

增加刷新IM用户缓存

Pq 2 years ago
parent
commit
31f5a72fe4
1 changed files with 23 additions and 4 deletions
  1. 23 4
      rong_im/kit/src/main/java/io/rong/imkit/RongIM.java

+ 23 - 4
rong_im/kit/src/main/java/io/rong/imkit/RongIM.java

@@ -6,6 +6,8 @@ import android.net.Uri;
 import android.os.Bundle;
 import android.text.TextUtils;
 
+import com.cooleshow.usercenter.helper.UserHelper;
+
 import java.util.List;
 
 import io.rong.common.RLog;
@@ -975,6 +977,23 @@ public class RongIM {
     }
 
     /**
+     * 刷新当前用户缓存数据。
+     *
+     * @param 。
+     */
+    public void refreshCurrentUserInfoCacheIfNeed(String nickName, String avatar) {
+        if (TextUtils.isEmpty(avatar)) {
+            return;
+        }
+        String userAvatar = UserHelper.getUserAvatar();
+        String userName = UserHelper.getUserName();
+        if (!TextUtils.equals(userAvatar, avatar) || !TextUtils.equals(userName, nickName)) {
+            String userId = UserHelper.getUserId();
+            RongUserInfoManager.getInstance().refreshUserInfoCache(new UserInfo(userId, userName, Uri.parse(avatar)));
+        }
+    }
+
+    /**
      * 刷新群组缓存数据。
      *
      * @param group 需要更新的群组缓存数据。
@@ -1122,7 +1141,7 @@ public class RongIM {
      * @param callback    发送消息的回调,回调中携带 {@link IRongCallback.MediaMessageUploader} 对象,用户调用该对象中的方法更新状态。
      */
     public void sendMediaMessage(Message message, String pushContent, final String pushData, final IRongCallback.ISendMediaMessageCallbackWithUploader callback) {
-        IMCenter.getInstance().sendMediaMessage(message, pushContent, pushData, callback,false,null);
+        IMCenter.getInstance().sendMediaMessage(message, pushContent, pushData, callback, false, null);
     }
 
     /**
@@ -1206,9 +1225,9 @@ public class RongIM {
      *
      * @param groupUserInfoProvider 群组用户信息提供者。
      * @param isCacheGroupUserInfo  设置是否由 IMKit 来缓存 GroupUserInfo。<br>
-     *                         如果 App 提供的 GroupUserInfoProvider。
-     *                         每次都需要通过网络请求数据,而不是将数据缓存到本地,会影响信息的加载速度;<br>
-     *                         此时最好将本参数设置为 true,由 IMKit 来缓存信息。
+     *                              如果 App 提供的 GroupUserInfoProvider。
+     *                              每次都需要通过网络请求数据,而不是将数据缓存到本地,会影响信息的加载速度;<br>
+     *                              此时最好将本参数设置为 true,由 IMKit 来缓存信息。
      */
     public static void setGroupUserInfoProvider(UserDataProvider.GroupUserInfoProvider groupUserInfoProvider, boolean isCacheGroupUserInfo) {
         RongUserInfoManager.getInstance().setGroupUserInfoProvider(groupUserInfoProvider, isCacheGroupUserInfo);