Browse Source

添加IM群组用户头像字段

Pq 2 years ago
parent
commit
3ed4e5d1ca

+ 1 - 1
rong_im/common_im_ui/src/main/java/com/common/im/ui/MessageFragment.java

@@ -212,7 +212,7 @@ public class MessageFragment extends BaseMVPFragment<FragmentMessageLayoutBindin
     @Override
     public void onQueryGroupUserInfoSuccess(GroupUserInfoBean userInfoBean) {
         if (userInfoBean != null) {
-            GroupUserInfo groupUserInfo = new GroupUserInfo(userInfoBean.groupId, userInfoBean.imUserId, userInfoBean.nickname, GroupUtils.getGroupUserInfoExtra(userInfoBean.isAdmin, userInfoBean.roleType));
+            GroupUserInfo groupUserInfo = new GroupUserInfo(userInfoBean.groupId, userInfoBean.imUserId, userInfoBean.nickname, userInfoBean.avatar,GroupUtils.getGroupUserInfoExtra(userInfoBean.isAdmin, userInfoBean.roleType));
             RongIM.getInstance().refreshGroupUserInfoCache(groupUserInfo);
         }
     }

+ 2 - 1
rong_im/common_im_ui/src/main/java/com/common/im/ui/activity/ChatGroupSettingActivity.java

@@ -262,10 +262,11 @@ public class ChatGroupSettingActivity extends BaseMVPActivity<ActivityChatGroupS
                 GroupMemberBean usersBean = data.get(i);
                 String id = usersBean.getUserId() + "";
                 String name = usersBean.getNickname();
+                String avatar = usersBean.getAvatar();
                 String extra = GroupUtils.getGroupUserInfoExtra(usersBean.isAdmin(), usersBean.getRoleType());
                 if (!TextUtils.isEmpty(id)) {
                     //todo 这里需要改一下,刷新会有操作数据库逻辑,for循环不太合适,可以改成集合形式更改数据库->insertGroupMembers
-                    RongIM.getInstance().refreshGroupUserInfoCache(new GroupUserInfo(groupId, id, name, extra));
+                    RongIM.getInstance().refreshGroupUserInfoCache(new GroupUserInfo(groupId, id, name, avatar, extra));
                 }
             } catch (Exception e) {
             }

+ 4 - 0
rong_im/kit/src/main/java/io/rong/imkit/model/UiMessage.java

@@ -61,6 +61,10 @@ public class UiMessage extends UiBaseBean {
             GroupUserInfo groupUserInfo = RongUserInfoManager.getInstance().getGroupUserInfo(message.getTargetId(), message.getSenderUserId());
             if (groupUserInfo != null && !TextUtils.isEmpty(groupUserInfo.getNickname())) {
                 nickname = groupUserInfo.getNickname();
+                userInfo.setName(nickname);
+                if(!TextUtils.isEmpty(groupUserInfo.getAvatar())){
+                    userInfo.setPortraitUri(Uri.parse(groupUserInfo.getAvatar()));
+                }
                 userInfo.setExtra(groupUserInfo.getExtra());
             }
         }

+ 2 - 2
rong_im/kit/src/main/java/io/rong/imkit/userinfo/RongUserInfoManager.java

@@ -291,7 +291,7 @@ public class RongUserInfoManager {
         }
 
         if (groupMember != null) {
-            return new GroupUserInfo(groupId, userId, groupMember.memberName, groupMember.extra);
+            return new GroupUserInfo(groupId, userId, groupMember.memberName, groupMember.memberAvatar,groupMember.extra);
         } else {
             return null;
         }
@@ -409,7 +409,7 @@ public class RongUserInfoManager {
             RLog.e(TAG, "Invalid to refresh a null groupUserInfo object.");
             return;
         }
-        GroupMember groupMember = new GroupMember(groupUserInfo.getGroupId(), groupUserInfo.getUserId(), groupUserInfo.getNickname(), groupUserInfo.getExtra());
+        GroupMember groupMember = new GroupMember(groupUserInfo.getGroupId(), groupUserInfo.getUserId(), groupUserInfo.getNickname(), groupUserInfo.getAvatar(),groupUserInfo.getExtra());
         if (mIsCacheGroupMemberInfo && mLocalDataSource != null) {
             mLocalDataSource.refreshGroupUserInfo(groupMember);
         } else {

+ 1 - 1
rong_im/kit/src/main/java/io/rong/imkit/userinfo/UserDataDelegate.java

@@ -37,7 +37,7 @@ public class UserDataDelegate {
         if (mGroupUserInfoProvider != null) {
             GroupUserInfo groupUserInfo = mGroupUserInfoProvider.getGroupUserInfo(groupId, userId);
             if (groupUserInfo != null) {
-                return new GroupMember(groupUserInfo.getGroupId(), groupUserInfo.getUserId(), groupUserInfo.getNickname(),groupUserInfo.getExtra());
+                return new GroupMember(groupUserInfo.getGroupId(), groupUserInfo.getUserId(), groupUserInfo.getNickname(),groupUserInfo.getAvatar(),groupUserInfo.getExtra());
             }
         }
         return null;

+ 1 - 1
rong_im/kit/src/main/java/io/rong/imkit/userinfo/UserDatabase.java

@@ -17,7 +17,7 @@ import io.rong.imkit.userinfo.db.model.GroupMember;
 import io.rong.imkit.userinfo.db.model.User;
 import io.rong.common.rlog.RLog;
 
-@Database(entities = {User.class, Group.class, GroupMember.class}, version = 2, exportSchema = false)
+@Database(entities = {User.class, Group.class, GroupMember.class}, version = 3, exportSchema = false)
 public abstract class UserDatabase extends RoomDatabase {
     private static final String TAG = UserDatabase.class.getCanonicalName();
     private static final String DB_NAME_FORMAT = "kit_user_%s";

+ 5 - 1
rong_im/kit/src/main/java/io/rong/imkit/userinfo/db/model/GroupMember.java

@@ -6,10 +6,11 @@ import androidx.room.Entity;
 
 @Entity(tableName = "group_member", primaryKeys = {"group_id", "user_id"})
 public class GroupMember {
-    public GroupMember(@NonNull String groupId, @NonNull String userId, String memberName,String extra) {
+    public GroupMember(@NonNull String groupId, @NonNull String userId, String memberName,String memberAvatar,String extra) {
         this.groupId = groupId;
         this.userId = userId;
         this.memberName = memberName;
+        this.memberAvatar = memberAvatar;
         this.extra = extra;
     }
 
@@ -24,6 +25,9 @@ public class GroupMember {
     @ColumnInfo(name = "member_name")
     public String memberName;
 
+    @ColumnInfo(name = "member_avatar")
+    public String memberAvatar;
+
     @ColumnInfo(name = "extra")
     public String extra;
 }

+ 19 - 1
rong_im/kit/src/main/java/io/rong/imkit/userinfo/model/GroupUserInfo.java

@@ -7,6 +7,7 @@ public class GroupUserInfo {
     private String mNickname;
     private String mUserId;
     private String mGroupId;
+    private String avatar;
     private String extra;
 
     public String getExtra() {
@@ -23,13 +24,30 @@ public class GroupUserInfo {
      * @param userId 用户 Id
      * @param nickname 该用户在群里的昵称
      */
-    public GroupUserInfo(String groupId, String userId, String nickname,String extra) {
+    public GroupUserInfo(String groupId, String userId, String nickname,String avatar,String extra) {
         this.mGroupId = groupId;
         this.mNickname = nickname;
         this.mUserId = userId;
+        this.avatar = avatar;
         this.extra = extra;
     }
 
+    public void setUserId(String userId) {
+        mUserId = userId;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public void setNickname(String nickname) {
+        mNickname = nickname;
+    }
+
     public String getGroupId() {
         return mGroupId;
     }