Jelajahi Sumber

im相关页面中增加学院标记

Pq 2 tahun lalu
induk
melakukan
471d476332

+ 7 - 0
rong_im/common_im_ui/src/main/java/com/common/im/adapter/ContactListAdapter.java

@@ -11,6 +11,7 @@ import com.cooleshow.base.presenter.view.BaseView;
 import com.cooleshow.base.utils.GlideUtils;
 
 import androidx.annotation.NonNull;
+import io.rong.imkit.utils.GroupUtils;
 
 /**
  * Author by pq, Date on 2022/5/7.
@@ -25,5 +26,11 @@ public class ContactListAdapter extends BaseQuickAdapter<ContactListBean, BaseVi
         holder.setText(R.id.tv_name, contactListBean.friendNickname);
         ImageView iv_icon = holder.getView(R.id.iv_icon);
         GlideUtils.INSTANCE.loadImage(getContext(), contactListBean.friendAvatar, iv_icon);
+        View ll_klx_tag = holder.getView(R.id.ll_klx_tag);
+        if (GroupUtils.isTeacher(contactListBean.roleType)) {
+            ll_klx_tag.setVisibility(View.VISIBLE);
+        } else {
+            ll_klx_tag.setVisibility(View.GONE);
+        }
     }
 }

+ 10 - 0
rong_im/common_im_ui/src/main/java/com/common/im/adapter/GroupMemberAdapter.java

@@ -14,6 +14,8 @@ import com.cooleshow.usercenter.helper.UserHelper;
 
 import java.util.List;
 
+import io.rong.imkit.utils.GroupUtils;
+
 /**
  * 创建日期:2022/6/13 15:54
  *
@@ -46,6 +48,14 @@ public class GroupMemberAdapter extends BaseQuickAdapter<GroupMemberBean, BaseVi
         //群主标记
         View iv_group_admin_tag = helper.getView(R.id.iv_group_admin_tag);
         iv_group_admin_tag.setVisibility(bean.isAdmin() ? View.VISIBLE : View.GONE);
+        //学院标记
+        View ll_klx_tag = helper.getView(R.id.ll_klx_tag);
+        if (GroupUtils.isTeacher(bean.getRoleType())) {
+            ll_klx_tag.setVisibility(View.VISIBLE);
+        } else {
+            ll_klx_tag.setVisibility(View.GONE);
+        }
+
 
         if (null != bean) {
             GlideUtils.INSTANCE.loadImage(getContext(), bean.getAvatar(), ivIcon);

+ 9 - 0
rong_im/common_im_ui/src/main/java/com/common/im/bean/ContactListBean.java

@@ -31,8 +31,17 @@ public class ContactListBean extends BaseIndexPinyinBean {
     public int id;
     public String memo;
     public String updateTime;
+    public String roleType;
     public int userId;
 
+    public String getRoleType() {
+        return roleType;
+    }
+
+    public void setRoleType(String roleType) {
+        this.roleType = roleType;
+    }
+
     public String getCreateTime() {
         return createTime;
     }

+ 28 - 1
rong_im/common_im_ui/src/main/res/layout/group_member_list_item.xml

@@ -14,7 +14,34 @@
         android:layout_marginTop="6dp"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent"
-        app:qmui_corner_radius="@dimen/dp_5" />
+        app:qmui_corner_radius="@dimen/dp_6" />
+
+    <LinearLayout
+        android:id="@+id/ll_klx_tag"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:background="@drawable/shape_im_teacher_tag_bg"
+        android:gravity="center"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="@+id/iv_icon"
+        app:layout_constraintLeft_toLeftOf="@+id/iv_icon"
+        app:layout_constraintRight_toRightOf="@+id/iv_icon">
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/icon_im_teacher_avatar_tag" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="14dp"
+            android:gravity="center"
+            android:paddingStart="3dp"
+            android:text="@string/teacher_tag_str"
+            android:textColor="@color/white"
+            android:textSize="@dimen/sp_9" />
+    </LinearLayout>
 
 
     <ImageView

+ 27 - 0
rong_im/common_im_ui/src/main/res/layout/item_contact_list_layout.xml

@@ -18,6 +18,33 @@
         app:layout_constraintTop_toTopOf="parent"
         app:qmui_corner_radius="6dp" />
 
+    <LinearLayout
+        android:id="@+id/ll_klx_tag"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:background="@drawable/shape_im_teacher_tag_bg"
+        android:gravity="center"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="@+id/iv_icon"
+        app:layout_constraintLeft_toLeftOf="@+id/iv_icon"
+        app:layout_constraintRight_toRightOf="@+id/iv_icon">
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/icon_im_teacher_avatar_tag" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="14dp"
+            android:gravity="center"
+            android:paddingStart="3dp"
+            android:text="@string/teacher_tag_str"
+            android:textColor="@color/white"
+            android:textSize="@dimen/sp_9" />
+    </LinearLayout>
+
     <TextView
         android:id="@+id/tv_name"
         android:layout_width="wrap_content"

+ 71 - 17
rong_im/kit/src/main/java/io/rong/imkit/conversation/messgelist/provider/BaseMessageItemProvider.java

@@ -120,23 +120,10 @@ public abstract class BaseMessageItemProvider<T extends MessageContent> implemen
             if (uiMessage.getUserInfo().getPortraitUri() != null) {
                 RongConfigCenter.featureConfig().getKitImageEngine().loadConversationPortrait(holder.getContext(), uiMessage.getUserInfo().getPortraitUri().toString(), view, uiMessage.getMessage());
             }
-            if (uiMessage.getConversationType() == Conversation.ConversationType.GROUP) {
-                if (uiMessage.getUserInfo() != null && !TextUtils.isEmpty(uiMessage.getUserInfo().getExtra())) {
-                    String extra = uiMessage.getUserInfo().getExtra();
-                    if (GroupUtils.isAdminFromExtra(extra)) {
-                        if (isSender) {
-                            holder.setVisible(R.id.iv_right_group_admin_tag, true);
-                            holder.setVisible(R.id.iv_left_group_admin_tag, false);
-                        } else {
-                            holder.setVisible(R.id.iv_right_group_admin_tag, false);
-                            holder.setVisible(R.id.iv_left_group_admin_tag, true);
-                        }
-                    } else {
-                        holder.setVisible(R.id.iv_left_group_admin_tag, false);
-                        holder.setVisible(R.id.iv_right_group_admin_tag, false);
-                    }
-                }
-            }
+            //群主标记
+//            setGroupAdminTag(holder, uiMessage, isSender);
+            //学院标记
+            setTeacherTag(holder, uiMessage, isSender);
 
             holder.setOnClickListener(R.id.rc_left_portrait, new View.OnClickListener() {
                 @Override
@@ -191,12 +178,21 @@ public abstract class BaseMessageItemProvider<T extends MessageContent> implemen
             });
             if (!RongConfigCenter.conversationConfig().isShowReceiverUserTitle(uiMessage.getMessage().getConversationType())) {
                 holder.setVisible(R.id.rc_title, false);
+                holder.setVisible(R.id.tv_group_admin_tag, false);
             } else {
                 if (!isSender) {
                     holder.setVisible(R.id.rc_title, true);
                     holder.setText(R.id.rc_title, !TextUtils.isEmpty(uiMessage.getNickname()) ? uiMessage.getNickname() : uiMessage.getUserInfo().getName());
+                    //群主标记
+                    String roleType = GroupUtils.getRoleType(uiMessage.getUserInfo() != null ? uiMessage.getUserInfo().getExtra() : "");
+                    if (uiMessage.getConversationType() == Conversation.ConversationType.GROUP && GroupUtils.isTeacher(roleType)) {
+                        holder.setVisible(R.id.tv_group_admin_tag, true);
+                    } else {
+                        holder.setVisible(R.id.tv_group_admin_tag, false);
+                    }
                 } else {
                     holder.setVisible(R.id.rc_title, false);
+                    holder.setVisible(R.id.tv_group_admin_tag, false);
                 }
             }
         } else {
@@ -206,6 +202,64 @@ public abstract class BaseMessageItemProvider<T extends MessageContent> implemen
         }
     }
 
+    private void setGroupAdminTag(final ViewHolder holder, final UiMessage uiMessage, boolean isSender) {
+        if (uiMessage.getConversationType() == Conversation.ConversationType.GROUP) {
+            if (uiMessage.getUserInfo() != null) {
+                //群主标记
+                String extra = uiMessage.getUserInfo().getExtra();
+                if (!TextUtils.isEmpty(extra) && GroupUtils.isAdminFromExtra(extra)) {
+                    if (isSender) {
+                        holder.setVisible(R.id.iv_right_group_admin_tag, true);
+                        holder.setVisible(R.id.iv_left_group_admin_tag, false);
+                    } else {
+                        holder.setVisible(R.id.iv_right_group_admin_tag, false);
+                        holder.setVisible(R.id.iv_left_group_admin_tag, true);
+                    }
+                } else {
+                    holder.setVisible(R.id.iv_left_group_admin_tag, false);
+                    holder.setVisible(R.id.iv_right_group_admin_tag, false);
+                }
+            } else {
+                holder.setVisible(R.id.iv_left_group_admin_tag, false);
+                holder.setVisible(R.id.iv_right_group_admin_tag, false);
+            }
+        } else {
+            holder.setVisible(R.id.iv_left_group_admin_tag, false);
+            holder.setVisible(R.id.iv_right_group_admin_tag, false);
+        }
+    }
+
+    private void setTeacherTag(final ViewHolder holder, final UiMessage uiMessage, boolean isSender) {
+        //学院标记
+        if (uiMessage.getUserInfo() != null) {
+            String roleType = GroupUtils.getRoleType(uiMessage.getUserInfo().getExtra());
+            if (!TextUtils.isEmpty(roleType)) {
+                if (GroupUtils.isTeacher(roleType)) {
+                    //如果是Teacher身份
+                    if (isSender) {
+                        holder.setVisible(R.id.ll_klx_tag_right, true);
+                        holder.setVisible(R.id.ll_klx_tag_left, false);
+                    } else {
+                        holder.setVisible(R.id.ll_klx_tag_right, false);
+                        holder.setVisible(R.id.ll_klx_tag_left, true);
+                    }
+                } else {
+                    //如果不是Teacher身份
+                    holder.setVisible(R.id.ll_klx_tag_right, false);
+                    holder.setVisible(R.id.ll_klx_tag_left, false);
+                }
+            } else {
+                //如果取不到身份就先隐藏
+                holder.setVisible(R.id.ll_klx_tag_right, false);
+                holder.setVisible(R.id.ll_klx_tag_left, false);
+            }
+        } else {
+            //如果取不到身份就先隐藏
+            holder.setVisible(R.id.ll_klx_tag_right, false);
+            holder.setVisible(R.id.ll_klx_tag_left, false);
+        }
+    }
+
     private void initContent(final ViewHolder holder, boolean isSender, final UiMessage uiMessage, final int position, final IViewProviderListener<UiMessage> listener, final List<UiMessage> list) {
         if (mConfig.showContentBubble) {
             holder.setBackgroundRes(R.id.rc_content, isSender ? R.drawable.rc_ic_message_bubble_right : R.drawable.rc_ic_message_bubble_left);

+ 13 - 0
rong_im/kit/src/main/java/io/rong/imkit/conversationlist/provider/BaseConversationProvider.java

@@ -17,6 +17,7 @@ import java.util.List;
 import io.rong.imkit.R;
 import io.rong.imkit.config.RongConfigCenter;
 import io.rong.imkit.conversationlist.model.BaseUiConversation;
+import io.rong.imkit.utils.GroupUtils;
 import io.rong.imkit.utils.RongDateUtils;
 import io.rong.imkit.utils.helper.ChatGroupHelper;
 import io.rong.imkit.widget.adapter.IViewProvider;
@@ -62,6 +63,18 @@ public class BaseConversationProvider implements IViewProvider<BaseUiConversatio
             }
             holder.setImageDrawable(R.id.rc_conversation_portrait, holder.getContext().getResources().getDrawable(drawableId));
         }
+
+        //学院标记
+        View ll_klx_tag = holder.getView(R.id.ll_klx_tag);
+        if (uiConversation.mCore.getConversationType() == Conversation.ConversationType.PRIVATE) {
+            String targetId = uiConversation.mCore.getTargetId();
+            String roleTypeFromCache = GroupUtils.getRoleTypeFromCache(Conversation.ConversationType.PRIVATE, "", targetId);
+            boolean isTeacher = GroupUtils.isTeacher(roleTypeFromCache);
+            ll_klx_tag.setVisibility(isTeacher ? View.VISIBLE : View.GONE);
+        } else {
+            ll_klx_tag.setVisibility(View.GONE);
+        }
+
         holder.getView(R.id.rc_conversation_portrait).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {

+ 39 - 0
rong_im/kit/src/main/java/io/rong/imkit/utils/GroupUtils.java

@@ -7,6 +7,12 @@ import com.cooleshow.base.common.BaseApplication;
 import org.json.JSONException;
 import org.json.JSONObject;
 
+import io.rong.imkit.userinfo.RongUserInfoManager;
+import io.rong.imkit.userinfo.UserDataDelegate;
+import io.rong.imkit.userinfo.model.GroupUserInfo;
+import io.rong.imlib.model.Conversation;
+import io.rong.imlib.model.UserInfo;
+
 /**
  * Author by pq, Date on 2022/8/4.
  */
@@ -67,6 +73,39 @@ public class GroupUtils {
         return false;
     }
 
+    public static String getRoleTypeFromCache(Conversation.ConversationType conversationType, String groupId,String targetId) {
+        //群组
+        if (conversationType == Conversation.ConversationType.GROUP) {
+            GroupUserInfo groupUserInfo = RongUserInfoManager.getInstance().getGroupUserInfo(groupId,targetId);
+            if (groupUserInfo != null) {
+                String roleType = getRoleType(groupUserInfo.getExtra());
+                if (TextUtils.isEmpty(roleType)) {
+                    UserDataDelegate userInfoProvider = RongUserInfoManager.getInstance().getUserInfoProvider();
+                    if (userInfoProvider != null) {
+                        userInfoProvider.getGroupUserInfo(targetId, targetId);
+                    }
+                }
+                return roleType;
+            }
+        }
+        //单人
+        if (conversationType == Conversation.ConversationType.PRIVATE) {
+            UserInfo stuUserInfo = RongUserInfoManager.getInstance().getUserInfo(targetId);
+            if (stuUserInfo != null) {
+                String roleType = GroupUtils.getRoleType(stuUserInfo.getExtra());
+                if (TextUtils.isEmpty(roleType)) {
+                    UserDataDelegate userInfoProvider = RongUserInfoManager.getInstance().getUserInfoProvider();
+                    if (userInfoProvider != null) {
+                        userInfoProvider.getUserInfo(targetId);
+                    }
+                }
+                return roleType;
+            }
+        }
+        return "";
+
+    }
+
     /**
      * 获取roleType
      *

+ 19 - 30
rong_im/kit/src/main/java/io/rong/imkit/utils/helper/ChatClickHelper.java

@@ -35,44 +35,33 @@ public class ChatClickHelper {
             return;
         }
         if (conversationType == Conversation.ConversationType.GROUP) {
-            GroupUserInfo groupUserInfo = RongUserInfoManager.getInstance().getGroupUserInfo(targetId, userInfo.getUserId());
-            if (groupUserInfo != null && !TextUtils.isEmpty(groupUserInfo.getExtra())) {
-                String roleType = GroupUtils.getRoleType(groupUserInfo.getExtra());
-                if (TextUtils.isEmpty(roleType)) {
-                    UserDataDelegate userInfoProvider = RongUserInfoManager.getInstance().getUserInfoProvider();
-                    if (userInfoProvider != null) {
-                        userInfoProvider.getGroupUserInfo(targetId, userInfo.getUserId());
-                    }
-                    return;
-                }
-                boolean isTeacher = GroupUtils.isTeacher(roleType);
-                if (isTeacher) {
-                    //跳转老师个人主页
-                    if (BaseApplication.Companion.isTeacherClient()) {
-                        ARouter.getInstance().build(RouterPath.MineCenter.HOME_PAGE)
-                                .navigation();
-                    } else {
-                        WebStartHelper.startTeacherHomePage(userInfo.getUserId());
-                    }
-                } else {
-                    //跳转学生个人主页
-                    ARouter.getInstance().build(RouterPath.BaseCenter.USER_DETAIL_STU)
-                            .withString("targetUserId", userInfo.getUserId())
+            String roleTypeFromCache = GroupUtils.getRoleTypeFromCache(Conversation.ConversationType.GROUP, targetId, userInfo.getUserId());
+            if (TextUtils.isEmpty(roleTypeFromCache)) {
+                return;
+            }
+            boolean isTeacher = GroupUtils.isTeacher(roleTypeFromCache);
+            if (isTeacher) {
+                //跳转老师个人主页
+                if (BaseApplication.Companion.isTeacherClient()) {
+                    ARouter.getInstance().build(RouterPath.MineCenter.HOME_PAGE)
                             .navigation();
+                } else {
+                    WebStartHelper.startTeacherHomePage(userInfo.getUserId());
                 }
+            } else {
+                //跳转学生个人主页
+                ARouter.getInstance().build(RouterPath.BaseCenter.USER_DETAIL_STU)
+                        .withString("targetUserId", userInfo.getUserId())
+                        .navigation();
             }
         } else {
             UserInfo stuUserInfo = RongUserInfoManager.getInstance().getUserInfo(userInfo.getUserId());
             if (stuUserInfo != null) {
-                String roleType = GroupUtils.getRoleType(stuUserInfo.getExtra());
-                if (TextUtils.isEmpty(roleType)) {
-                    UserDataDelegate userInfoProvider = RongUserInfoManager.getInstance().getUserInfoProvider();
-                    if (userInfoProvider != null) {
-                        userInfoProvider.getUserInfo(userInfo.getUserId());
-                    }
+                String roleTypeFromCache = GroupUtils.getRoleTypeFromCache(Conversation.ConversationType.PRIVATE, "", userInfo.getUserId());
+                if (TextUtils.isEmpty(roleTypeFromCache)) {
                     return;
                 }
-                boolean isTeacher = GroupUtils.isTeacher(roleType);
+                boolean isTeacher = GroupUtils.isTeacher(roleTypeFromCache);
                 if (isTeacher) {
                     //跳转老师个人主页
                     if (BaseApplication.Companion.isTeacherClient()) {

TEMPAT SAMPAH
rong_im/kit/src/main/res/drawable-xhdpi/icon_im_teacher_avatar_tag.png


TEMPAT SAMPAH
rong_im/kit/src/main/res/drawable-xxhdpi/icon_im_teacher_avatar_tag.png


+ 8 - 0
rong_im/kit/src/main/res/drawable/shape_group_admin_tag_bg.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:radius="4dp"/>
+    <gradient
+        android:angle="270"
+        android:startColor="#FFBA82"
+        android:endColor="#FF3D3D"/>
+</shape>

+ 9 - 0
rong_im/kit/src/main/res/drawable/shape_im_teacher_tag_bg.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <gradient android:startColor="#47F0DC"
+        android:angle="270"
+        android:endColor="#04CEA8"/>
+
+    <corners android:bottomLeftRadius="5.5dp"
+        android:bottomRightRadius="5.5dp"/>
+</shape>

+ 31 - 6
rong_im/kit/src/main/res/layout/rc_conversationlist_item.xml

@@ -23,19 +23,44 @@
                 android:id="@+id/rc_conversation_portrait"
                 android:layout_width="@dimen/rc_conversation_portrait_size"
                 android:layout_height="@dimen/rc_conversation_portrait_size"
-                app:qmui_corner_radius="@dimen/dp_6"
-                android:scaleType="centerCrop" />
+                android:scaleType="centerCrop"
+                app:qmui_corner_radius="@dimen/dp_6" />
+
+
+            <LinearLayout
+                android:id="@+id/ll_klx_tag"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_alignParentBottom="true"
+                android:background="@drawable/shape_im_teacher_tag_bg"
+                android:gravity="center"
+                android:visibility="gone">
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:src="@drawable/icon_im_teacher_avatar_tag" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="14dp"
+                    android:gravity="center"
+                    android:paddingStart="3dp"
+                    android:text="@string/teacher_tag_str"
+                    android:textColor="@color/white"
+                    android:textSize="@dimen/sp_9" />
+            </LinearLayout>
         </RelativeLayout>
 
         <RelativeLayout
-            app:layout_constraintCircleAngle="45"
-            app:layout_constraintCircleRadius="28dp"
-            app:layout_constraintCircle="@+id/rc_conversation_portrait_rl"
             android:id="@+id/rc_conversation_unread"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_alignParentTop="true"
-            android:layout_alignParentEnd="true">
+            android:layout_alignParentEnd="true"
+            app:layout_constraintCircle="@+id/rc_conversation_portrait_rl"
+            app:layout_constraintCircleAngle="45"
+            app:layout_constraintCircleRadius="28dp">
 
             <ImageView
                 android:id="@+id/rc_conversation_unread_bg"

+ 87 - 7
rong_im/kit/src/main/res/layout/rc_message_item.xml

@@ -43,6 +43,33 @@
         app:layout_goneMarginStart="@dimen/rc_margin_size_12"
         app:qmui_corner_radius="@dimen/dp_6" />
 
+    <LinearLayout
+        android:id="@+id/ll_klx_tag_left"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:background="@drawable/shape_im_teacher_tag_bg"
+        android:gravity="center"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="@+id/rc_left_portrait"
+        app:layout_constraintLeft_toLeftOf="@+id/rc_left_portrait"
+        app:layout_constraintRight_toRightOf="@+id/rc_left_portrait">
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/icon_im_teacher_avatar_tag" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="14dp"
+            android:gravity="center"
+            android:paddingStart="3dp"
+            android:text="@string/teacher_tag_str"
+            android:textColor="@color/white"
+            android:textSize="@dimen/sp_9" />
+    </LinearLayout>
+
     <View
         android:id="@+id/view_help_line2"
         android:layout_width="1px"
@@ -72,6 +99,33 @@
         app:layout_goneMarginTop="@dimen/rc_margin_size_20"
         app:qmui_corner_radius="@dimen/dp_6" />
 
+    <LinearLayout
+        android:id="@+id/ll_klx_tag_right"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:background="@drawable/shape_im_teacher_tag_bg"
+        android:gravity="center"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="@+id/rc_right_portrait"
+        app:layout_constraintLeft_toLeftOf="@+id/rc_right_portrait"
+        app:layout_constraintRight_toRightOf="@+id/rc_right_portrait">
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/icon_im_teacher_avatar_tag" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="14dp"
+            android:gravity="center"
+            android:paddingStart="3dp"
+            android:text="@string/teacher_tag_str"
+            android:textColor="@color/white"
+            android:textSize="@dimen/sp_9" />
+    </LinearLayout>
+
     <View
         android:id="@+id/view_help_line"
         android:layout_width="1px"
@@ -101,17 +155,43 @@
         app:layout_constraintStart_toEndOf="@id/rc_left_portrait"
         app:layout_constraintTop_toBottomOf="@id/rc_time">
 
-        <TextView
-            android:id="@+id/rc_title"
-            style="@style/TextStyle.Alignment"
+        <LinearLayout
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:ellipsize="end"
-            android:singleLine="true"
-            android:textColor="@color/rc_secondary_color"
-            android:textSize="@dimen/rc_font_text_third_size" />
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/tv_group_admin_tag"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="4dp"
+                android:background="@drawable/shape_group_admin_tag_bg"
+                android:gravity="center"
+                android:includeFontPadding="false"
+                android:paddingStart="5dp"
+                android:paddingTop="1dp"
+                android:paddingEnd="5dp"
+                android:paddingBottom="1dp"
+                android:text="@string/group_admin_str"
+                android:textColor="@color/white"
+                android:textSize="@dimen/sp_12"
+                android:visibility="gone" />
+
+            <TextView
+                android:id="@+id/rc_title"
+                style="@style/TextStyle.Alignment"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:ellipsize="end"
+                android:singleLine="true"
+                android:textColor="@color/rc_secondary_color"
+                android:textSize="@dimen/rc_font_text_third_size"
+                tools:text="你好,我是昵称" />
+        </LinearLayout>
 
         <LinearLayout
+            android:layout_marginTop="3dp"
             android:id="@+id/rc_layout"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"

+ 2 - 0
rong_im/kit/src/main/res/values/strings.xml

@@ -501,4 +501,6 @@
     <string name="rc_mention_messages">有人@我 %s</string>
     <string name="rc_media_upload_error">不能上传 0kb 的文件</string>
     <string name="live_name_tip">%s在直播间等你哦~</string>
+    <string name="teacher_tag_str">学院</string>
+    <string name="group_admin_str">群主</string>
 </resources>