瀏覽代碼

修改聊天模块部分问题

Pq 1 年之前
父節點
當前提交
41e5210846
共有 27 個文件被更改,包括 411 次插入382 次删除
  1. 50 41
      chatModule/src/main/java/com/cooleshow/chatmodule/adapter/ContactListAdapter.java
  2. 19 19
      chatModule/src/main/java/com/cooleshow/chatmodule/adapter/ContactRoomListAdapter.java
  3. 2 2
      chatModule/src/main/java/com/cooleshow/chatmodule/adapter/GroupMemberAdapter.java
  4. 2 2
      chatModule/src/main/java/com/cooleshow/chatmodule/adapter/GroupSettingMemberAdapter.java
  5. 1 1
      chatModule/src/main/java/com/cooleshow/chatmodule/adapter/NoticeListAdapter.java
  6. 19 0
      chatModule/src/main/java/com/cooleshow/chatmodule/constants/TCChatRouterPath.java
  7. 0 2
      chatModule/src/main/java/com/cooleshow/chatmodule/contract/ContactListFragmentContract.java
  8. 83 87
      chatModule/src/main/java/com/cooleshow/chatmodule/presenter/ContactListPresenter.java
  9. 7 6
      chatModule/src/main/java/com/cooleshow/chatmodule/ui/ChatGroupSettingActivity.java
  10. 0 75
      chatModule/src/main/java/com/cooleshow/chatmodule/ui/ContactPersonListFragment.java
  11. 2 1
      chatModule/src/main/java/com/cooleshow/chatmodule/ui/GroupMemberActivity.java
  12. 3 2
      chatModule/src/main/java/com/cooleshow/chatmodule/ui/ImAppealActivity.java
  13. 4 3
      chatModule/src/main/java/com/cooleshow/chatmodule/ui/NoticeActivity.java
  14. 2 1
      chatModule/src/main/java/com/cooleshow/chatmodule/ui/NoticeEditActivity.java
  15. 2 1
      chatModule/src/main/java/com/cooleshow/chatmodule/ui/PhotoPreviewActivity.java
  16. 112 0
      chatModule/src/main/java/com/cooleshow/chatmodule/utils/helper/ChatGroupHelper.java
  17. 2 1
      chatModule/src/main/java/com/cooleshow/chatmodule/widget/CustomChatGroupTopRightIconExtension.java
  18. 二進制
      chatModule/src/main/res/drawable-xhdpi/icon_im_teacher_avatar_tag.png
  19. 二進制
      chatModule/src/main/res/drawable-xxhdpi/ic_group_message.png
  20. 二進制
      chatModule/src/main/res/drawable-xxhdpi/icon_im_teacher_avatar_tag.png
  21. 9 0
      chatModule/src/main/res/drawable/shape_im_teacher_tag_bg.xml
  22. 2 3
      chatModule/src/main/res/layout/tc_fragment_contact_list_layout.xml
  23. 1 1
      chatModule/src/main/res/layout/tc_fragment_contact_room_list.xml
  24. 1 1
      chatModule/src/main/res/layout/tc_fragment_conversation_list_layout.xml
  25. 4 3
      chatModule/src/main/res/layout/tc_group_member_list_item.xml
  26. 41 62
      chatModule/src/main/res/layout/tc_item_contact_list_layout.xml
  27. 43 68
      chatModule/src/main/res/layout/tc_item_contact_person_list_layout.xml

+ 50 - 41
chatModule/src/main/java/com/cooleshow/chatmodule/adapter/ContactListAdapter.java

@@ -8,12 +8,12 @@ import android.widget.TextView;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.viewholder.BaseViewHolder;
-import com.cooleshow.base.constanst.RoleType;
 import com.cooleshow.base.utils.GlideUtils;
 import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.chatmodule.R;
 import com.cooleshow.chatmodule.bean.ContactListBean;
 import com.cooleshow.chatmodule.constants.GroupConstants;
+import com.cooleshow.chatmodule.utils.helper.ChatGroupHelper;
 
 import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.RecyclerView;
@@ -28,49 +28,58 @@ public class ContactListAdapter extends BaseQuickAdapter<ContactListBean.RowsBea
 
     @Override
     protected void convert(@NonNull BaseViewHolder holder, ContactListBean.RowsBean contactListBean) {
-        TextView tv_name = holder.getView(R.id.tv_name);
-        tv_name.setTypeface(Typeface.DEFAULT);
+//        TextView tv_name = holder.getView(R.id.tv_name);
+//        tv_name.setTypeface(Typeface.DEFAULT);
+//        holder.setText(R.id.tv_name, contactListBean.getFriendNickname());
+//        ImageView iv_icon = holder.getView(R.id.iv_icon);
+//
+//        if (TextUtils.equals(contactListBean.getRoleType(), GroupConstants.ROLE_TYPE_TEACHER)) {
+//            GlideUtils.INSTANCE.loadImage(getContext(), contactListBean.getFriendAvatar(), iv_icon, com.cooleshow.base.R.drawable.icon_default_avatar_teacher);
+//        } else {
+//            GlideUtils.INSTANCE.loadImage(getContext(), contactListBean.getFriendAvatar(), iv_icon, com.cooleshow.base.R.drawable.icon_default_avatar);
+//        }
+//
+//        TextView tv_des = holder.getView(R.id.tv_des);
+//        if (!TextUtils.isEmpty(contactListBean.getSubjectName())) {
+//            tv_des.setVisibility(View.VISIBLE);
+//            String result = contactListBean.getSubjectName().replaceAll(",", "、");
+//            tv_des.setText(result);
+//        } else {
+//            tv_des.setText("");
+//            tv_des.setVisibility(View.INVISIBLE);
+//        }
+//
+//       TextView tv_group_tag = holder.getView(R.id.tv_group_tag);
+//        String friendType = contactListBean.getFriendType();
+//        if (!TextUtils.isEmpty(friendType)) {
+//            tv_group_tag.setVisibility(View.VISIBLE);
+//            if (TextUtils.equals(RoleType.STUDENT.getId(), friendType)) {
+//                tv_group_tag.setText(RoleType.STUDENT.getValue());
+//                tv_group_tag.setBackgroundResource(com.cooleshow.base.R.drawable.shape_ff8057_4dp);
+//            } else {
+//                tv_group_tag.setText(RoleType.TEACHER.getValue());
+//                tv_group_tag.setBackgroundResource(com.cooleshow.base.R.drawable.shape_54a0ff_4dp);
+//            }
+//        } else {
+//            tv_group_tag.setVisibility(View.GONE);
+//        }
+//
+//        View view = holder.getView(R.id.root_view);
+//        RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) view.getLayoutParams();
+//        if (holder.getLayoutPosition() == getData().size() - 1) {
+//            layoutParams.setMargins(0,0,0, SizeUtils.dp2px(10));
+//        }else{
+//            layoutParams.setMargins(0,0,0, 0);
+//        }
+//        view.setLayoutParams(layoutParams);
         holder.setText(R.id.tv_name, contactListBean.getFriendNickname());
         ImageView iv_icon = holder.getView(R.id.iv_icon);
-
-        if (TextUtils.equals(contactListBean.getRoleType(), GroupConstants.ROLE_TYPE_TEACHER)) {
-            GlideUtils.INSTANCE.loadImage(getContext(), contactListBean.getFriendAvatar(), iv_icon, com.cooleshow.base.R.drawable.icon_default_avatar_teacher);
+        GlideUtils.INSTANCE.loadImage(getContext(), contactListBean.getFriendAvatar(), iv_icon);
+        View ll_klx_tag = holder.getView(R.id.ll_klx_tag);
+        if (ChatGroupHelper.isTeacher(contactListBean.roleType)) {
+            ll_klx_tag.setVisibility(View.VISIBLE);
         } else {
-            GlideUtils.INSTANCE.loadImage(getContext(), contactListBean.getFriendAvatar(), iv_icon, com.cooleshow.base.R.drawable.icon_default_avatar);
-        }
-
-        TextView tv_des = holder.getView(R.id.tv_des);
-        if (!TextUtils.isEmpty(contactListBean.getSubjectName())) {
-            tv_des.setVisibility(View.VISIBLE);
-            String result = contactListBean.getSubjectName().replaceAll(",", "、");
-            tv_des.setText(result);
-        } else {
-            tv_des.setText("");
-            tv_des.setVisibility(View.INVISIBLE);
-        }
-
-       TextView tv_group_tag = holder.getView(R.id.tv_group_tag);
-        String friendType = contactListBean.getFriendType();
-        if (!TextUtils.isEmpty(friendType)) {
-            tv_group_tag.setVisibility(View.VISIBLE);
-            if (TextUtils.equals(RoleType.STUDENT.getId(), friendType)) {
-                tv_group_tag.setText(RoleType.STUDENT.getValue());
-                tv_group_tag.setBackgroundResource(com.cooleshow.base.R.drawable.shape_ff8057_4dp);
-            } else {
-                tv_group_tag.setText(RoleType.TEACHER.getValue());
-                tv_group_tag.setBackgroundResource(com.cooleshow.base.R.drawable.shape_54a0ff_4dp);
-            }
-        } else {
-            tv_group_tag.setVisibility(View.GONE);
-        }
-
-        View view = holder.getView(R.id.root_view);
-        RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) view.getLayoutParams();
-        if (holder.getLayoutPosition() == getData().size() - 1) {
-            layoutParams.setMargins(0,0,0, SizeUtils.dp2px(10));
-        }else{
-            layoutParams.setMargins(0,0,0, 0);
+            ll_klx_tag.setVisibility(View.GONE);
         }
-        view.setLayoutParams(layoutParams);
     }
 }

+ 19 - 19
chatModule/src/main/java/com/cooleshow/chatmodule/adapter/ContactRoomListAdapter.java

@@ -29,24 +29,24 @@ public class ContactRoomListAdapter extends BaseQuickAdapter<ContactRoomListBean
     @Override
     protected void convert(@NonNull BaseViewHolder holder, ContactRoomListBean.RowsBean contactListBean) {
         holder.setText(R.id.tv_name, contactListBean.getName());
-        ImageView iv_icon = holder.getView(R.id.iv_icon);
-        TextView tv_group_tag = holder.getView(R.id.tv_group_tag);
-        tv_group_tag.setVisibility(BaseConstant.isSchoolClient() ? View.VISIBLE : View.GONE);
-        View tv_des = holder.getView(R.id.tv_des);
-        tv_des.setVisibility(!TextUtils.isEmpty(contactListBean.getOrchestraName()) ? View.VISIBLE : View.GONE);
-        holder.setText(R.id.tv_des, contactListBean.getOrchestraName());
-        if (TextUtils.equals(contactListBean.getType(), GroupConstants.GROUP_TYPE_CLASS)) {
-            tv_group_tag.setText(getContext().getString(R.string.group_type_class_str));
-            tv_group_tag.setBackgroundResource(com.cooleshow.base.R.drawable.shape_ff8057_4dp);
-            iv_icon.setImageResource(R.drawable.tc_icon_group_fans);
-        } else if (TextUtils.equals(contactListBean.getType(), GroupConstants.GROUP_TYPE_OTHER)) {
-            tv_group_tag.setText(getContext().getString(R.string.group_type_other_str));
-            tv_group_tag.setBackgroundResource(com.cooleshow.base.R.drawable.shape_64a9ff_4dp);
-            iv_icon.setImageResource(R.drawable.tc_icon_group_course);
-        } else {
-            tv_group_tag.setText(getContext().getString(R.string.group_type_class_str));
-            tv_group_tag.setBackgroundResource(com.cooleshow.base.R.drawable.shape_ff8057_4dp);
-            GlideUtils.INSTANCE.loadImage(getContext(), contactListBean.getImg(), iv_icon, R.drawable.tc_icon_group_fans);
-        }
+//        ImageView iv_icon = holder.getView(R.id.iv_icon);
+//        TextView tv_group_tag = holder.getView(R.id.tv_group_tag);
+//        tv_group_tag.setVisibility(BaseConstant.isSchoolClient() ? View.VISIBLE : View.GONE);
+//        View tv_des = holder.getView(R.id.tv_des);
+//        tv_des.setVisibility(!TextUtils.isEmpty(contactListBean.getOrchestraName()) ? View.VISIBLE : View.GONE);
+//        holder.setText(R.id.tv_des, contactListBean.getOrchestraName());
+//        if (TextUtils.equals(contactListBean.getType(), GroupConstants.GROUP_TYPE_CLASS)) {
+//            tv_group_tag.setText(getContext().getString(R.string.group_type_class_str));
+//            tv_group_tag.setBackgroundResource(com.cooleshow.base.R.drawable.shape_ff8057_4dp);
+//            iv_icon.setImageResource(R.drawable.tc_icon_group_fans);
+//        } else if (TextUtils.equals(contactListBean.getType(), GroupConstants.GROUP_TYPE_OTHER)) {
+//            tv_group_tag.setText(getContext().getString(R.string.group_type_other_str));
+//            tv_group_tag.setBackgroundResource(com.cooleshow.base.R.drawable.shape_64a9ff_4dp);
+//            iv_icon.setImageResource(R.drawable.tc_icon_group_course);
+//        } else {
+//            tv_group_tag.setText(getContext().getString(R.string.group_type_class_str));
+//            tv_group_tag.setBackgroundResource(com.cooleshow.base.R.drawable.shape_ff8057_4dp);
+//            GlideUtils.INSTANCE.loadImage(getContext(), contactListBean.getImg(), iv_icon, R.drawable.tc_icon_group_fans);
+//        }
     }
 }

+ 2 - 2
chatModule/src/main/java/com/cooleshow/chatmodule/adapter/GroupMemberAdapter.java

@@ -58,9 +58,9 @@ public class GroupMemberAdapter extends BaseQuickAdapter<GroupMemberBean.RowsBea
 
         if (null != bean) {
             if (TextUtils.equals(bean.getRoleType(),"STUDENT")) {
-                GlideImageLoaderUtils.getInstance().loadCircleImage(getContext(), bean.getAvatar(),com.cooleshow.base.R.drawable.icon_default_avatar, ivIcon);
+                GlideImageLoaderUtils.getInstance().loadCircleImage(getContext(), bean.getAvatar(),R.drawable.tc_icon_teacher_default_head, ivIcon);
             } else {
-                GlideImageLoaderUtils.getInstance().loadCircleImage(getContext(), bean.getAvatar(), com.cooleshow.base.R.drawable.icon_default_avatar_teacher,ivIcon);
+                GlideImageLoaderUtils.getInstance().loadCircleImage(getContext(), bean.getAvatar(), R.drawable.tc_icon_teacher_default_head,ivIcon);
             }
             tvTitle.setText(bean.getNickname());
             if (TextUtils.equals(currentId, bean.getUserId())) {

+ 2 - 2
chatModule/src/main/java/com/cooleshow/chatmodule/adapter/GroupSettingMemberAdapter.java

@@ -28,9 +28,9 @@ public class GroupSettingMemberAdapter extends BaseQuickAdapter<GroupMemberBean.
         ImageView ivIcon = helper.getView(R.id.iv_icon);
         TextView tvTitle = helper.getView(R.id.tv_title);
         if (TextUtils.equals(item.getRoleType(),"STUDENT")) {
-            GlideImageLoaderUtils.getInstance().loadCircleImage(getContext(), item.getAvatar(),com.cooleshow.base.R.drawable.icon_default_avatar, ivIcon);
+            GlideImageLoaderUtils.getInstance().loadCircleImage(getContext(), item.getAvatar(),R.drawable.tc_icon_teacher_default_head, ivIcon);
         } else {
-            GlideImageLoaderUtils.getInstance().loadCircleImage(getContext(), item.getAvatar(), com.cooleshow.base.R.drawable.icon_default_avatar_teacher,ivIcon);
+            GlideImageLoaderUtils.getInstance().loadCircleImage(getContext(), item.getAvatar(), R.drawable.tc_icon_teacher_default_head,ivIcon);
         }
         tvTitle.setText(item.getNickname());
     }

+ 1 - 1
chatModule/src/main/java/com/cooleshow/chatmodule/adapter/NoticeListAdapter.java

@@ -42,7 +42,7 @@ public class NoticeListAdapter extends BaseQuickAdapter<GroupNoticeBean.RowsBean
         TextView tvTitle = helper.getView(R.id.tv_title);
         TextView tvContent = helper.getView(R.id.tv_content);
         TextView tvRead = helper.getView(R.id.tv_read);
-        GlideUtils.INSTANCE.loadImage(getContext(), bean.avatar, ivPortrait, com.cooleshow.base.R.drawable.icon_default_avatar_teacher);
+        GlideUtils.INSTANCE.loadImage(getContext(), bean.avatar, ivPortrait, R.drawable.tc_icon_teacher_default_head);
         tvName.setText(bean.username);
 
         tvTime.setText(DateUtil.dateFormatNoSecond(TextUtils.isEmpty(bean.updateTime) ? bean.createTime : bean.updateTime));

+ 19 - 0
chatModule/src/main/java/com/cooleshow/chatmodule/constants/TCChatRouterPath.java

@@ -0,0 +1,19 @@
+package com.cooleshow.chatmodule.constants;
+
+/**
+ * Author by pq, Date on 2023/8/10.
+ */
+public class TCChatRouterPath {
+            public final static String  CHAT_SELECT_SCORE = "/tc/activity/SelectScoreChatActivity";
+            public final static String  CHAT_CREATE_GROUP = "/tc/activity/CreateGroupActivity";
+            public final static String  CHAT_GROUP_SETTING = "/tc/activity/ChatGroupSettingActivity";
+            public final static String CHAT_GROUP_SEARCH_HISTORY="/tc/activity/SearchHistoryMessageActivity";
+            public final static String  CHAT_GROUP_NOTICE = "/tc/activity/NoticeActivity";
+            public final static String  CHAT_GROUP_NOTICE_EDIT = "/tc/activity/NoticeEditActivity";
+            public final static String  CHAT_GROUP_SET_REMARK = "/tc/activity/SetRemarksActivity";
+            public final static String  CHAT_IM_APPEAL = "/tc/activity/ImAppealActivity";
+            public final static String  CHAT_PHOTO_PREVIEW = "/tc/activity/PhotoPreviewActivity";
+            public final static String  CHAT_GROUP_MEMBER = "/tc/activity/GroupMemberActivity";
+            public final static String  CHAT_GROUP_JOIN_APPLY = "/tc/activity/JoinGroupApplyActivity";
+            public final static String  CHAT_SELECT_CONTACT = "/tc/activity/SelectContactActivity";
+}

+ 0 - 2
chatModule/src/main/java/com/cooleshow/chatmodule/contract/ContactListFragmentContract.java

@@ -1,6 +1,5 @@
 package com.cooleshow.chatmodule.contract;
 
-import com.cooleshow.base.bean.ContactFilterConditionBean;
 import com.cooleshow.base.presenter.view.BaseView;
 import com.cooleshow.chatmodule.bean.ContactListBean;
 
@@ -14,7 +13,6 @@ public interface ContactListFragmentContract {
 
         void getFriendListError();
 
-        void getFilterConditionSuccess(ContactFilterConditionBean data);
     }
 
     interface Presenter {

+ 83 - 87
chatModule/src/main/java/com/cooleshow/chatmodule/presenter/ContactListPresenter.java

@@ -2,10 +2,6 @@ package com.cooleshow.chatmodule.presenter;
 
 import android.text.TextUtils;
 
-import com.cooleshow.base.api.APIService;
-import com.cooleshow.base.bean.ContactFilterConditionBean;
-import com.cooleshow.base.bean.OrchestraListBean;
-import com.cooleshow.base.bean.SchoolListBean;
 import com.cooleshow.base.common.BaseConstant;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
@@ -24,97 +20,97 @@ public class ContactListPresenter extends BasePresenter<ContactListFragmentContr
 
     @Override
     public void queryFriendList(String searchCondition, String schoolId, String orchestraId, String subjectId, String roleId) {
-        JSONObject jsonObject = new JSONObject();
-        try {
-            jsonObject.putOpt("keyword", searchCondition);
-            if (!TextUtils.isEmpty(schoolId)) {
-                jsonObject.putOpt("schoolId", schoolId);
-            }
-            if (!TextUtils.isEmpty(orchestraId)) {
-                jsonObject.putOpt("orchestraId", orchestraId);
-            }
-            if (!TextUtils.isEmpty(subjectId)) {
-                jsonObject.putOpt("subjectId", subjectId);
-            }
-            if (!TextUtils.isEmpty(roleId)) {
-                jsonObject.putOpt("friendType", roleId);
-            }
-            jsonObject.putOpt("rows", Integer.MAX_VALUE);
-            jsonObject.putOpt("page", 1);
-        } catch (JSONException e) {
-            e.printStackTrace();
-        }
-        addSubscribe(create(IMApi.class).queryFriendList(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString()),BaseConstant.CLIENT_API_GROUP_NAME), new BaseObserver<ContactListBean>(getView()) {
-            @Override
-            protected void onSuccess(ContactListBean data) {
-                if (getView() != null) {
-                    getView().getFriendListSuccess(data);
-                }
-            }
-
-            @Override
-            public void onError(Throwable e) {
-                super.onError(e);
-                if (getView() != null) {
-                    getView().getFriendListError();
-                }
-            }
-        });
-    }
-
-    public void getOrchestraList() {
-        JSONObject jsonObject = new JSONObject();
-        addSubscribe(create(APIService.class).getOrchestraList(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString()), BaseConstant.CLIENT_API_GROUP_NAME), new BaseObserver<OrchestraListBean>(getView()) {
-            @Override
-            protected void onSuccess(OrchestraListBean data) {
+//        JSONObject jsonObject = new JSONObject();
+//        try {
+//            jsonObject.putOpt("keyword", searchCondition);
+//            if (!TextUtils.isEmpty(schoolId)) {
+//                jsonObject.putOpt("schoolId", schoolId);
+//            }
+//            if (!TextUtils.isEmpty(orchestraId)) {
+//                jsonObject.putOpt("orchestraId", orchestraId);
+//            }
+//            if (!TextUtils.isEmpty(subjectId)) {
+//                jsonObject.putOpt("subjectId", subjectId);
+//            }
+//            if (!TextUtils.isEmpty(roleId)) {
+//                jsonObject.putOpt("friendType", roleId);
+//            }
+//            jsonObject.putOpt("rows", Integer.MAX_VALUE);
+//            jsonObject.putOpt("page", 1);
+//        } catch (JSONException e) {
+//            e.printStackTrace();
+//        }
+//        addSubscribe(create(IMApi.class).queryFriendList(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString()),BaseConstant.CLIENT_API_GROUP_NAME), new BaseObserver<ContactListBean>(getView()) {
+//            @Override
+//            protected void onSuccess(ContactListBean data) {
 //                if (getView() != null) {
-//                    getView().getOrchestraListSuccess(data);
+//                    getView().getFriendListSuccess(data);
 //                }
-            }
+//            }
+//
+//            @Override
+//            public void onError(Throwable e) {
+//                super.onError(e);
+//                if (getView() != null) {
+//                    getView().getFriendListError();
+//                }
+//            }
+//        });
+    }
 
-            @Override
-            public void onError(Throwable e) {
-                super.onError(e);
-            }
-        });
+    public void getOrchestraList() {
+//        JSONObject jsonObject = new JSONObject();
+//        addSubscribe(create(APIService.class).getOrchestraList(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString()), BaseConstant.CLIENT_API_GROUP_NAME), new BaseObserver<OrchestraListBean>(getView()) {
+//            @Override
+//            protected void onSuccess(OrchestraListBean data) {
+////                if (getView() != null) {
+////                    getView().getOrchestraListSuccess(data);
+////                }
+//            }
+//
+//            @Override
+//            public void onError(Throwable e) {
+//                super.onError(e);
+//            }
+//        });
     }
 
     public void getSchoolList() {
-        JSONObject jsonObject = new JSONObject();
-        try {
-            jsonObject.putOpt("page", 1);
-            jsonObject.putOpt("rows", Integer.MAX_VALUE);
-        } catch (JSONException e) {
-            e.printStackTrace();
-        }
-        addSubscribe(create(APIService.class).getSchoolList(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString()), BaseConstant.CLIENT_API_GROUP_NAME), new BaseObserver<SchoolListBean>(getView()) {
-            @Override
-            protected void onSuccess(SchoolListBean data) {
-//                if (getView() != null) {
-//                    getView().getSchoolListSuccess(data);
-//                }
-            }
-
-            @Override
-            public void onError(Throwable e) {
-                super.onError(e);
-            }
-        });
+//        JSONObject jsonObject = new JSONObject();
+//        try {
+//            jsonObject.putOpt("page", 1);
+//            jsonObject.putOpt("rows", Integer.MAX_VALUE);
+//        } catch (JSONException e) {
+//            e.printStackTrace();
+//        }
+//        addSubscribe(create(APIService.class).getSchoolList(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString()), BaseConstant.CLIENT_API_GROUP_NAME), new BaseObserver<SchoolListBean>(getView()) {
+//            @Override
+//            protected void onSuccess(SchoolListBean data) {
+////                if (getView() != null) {
+////                    getView().getSchoolListSuccess(data);
+////                }
+//            }
+//
+//            @Override
+//            public void onError(Throwable e) {
+//                super.onError(e);
+//            }
+//        });
     }
 
     public void getFilterCondition() {
-        addSubscribe(create(APIService.class).getContactFilterCondition(BaseConstant.CLIENT_API_GROUP_NAME), new BaseObserver<ContactFilterConditionBean>(getView()) {
-            @Override
-            protected void onSuccess(ContactFilterConditionBean data) {
-                if (getView() != null) {
-                    getView().getFilterConditionSuccess(data);
-                }
-            }
-
-            @Override
-            public void onError(Throwable e) {
-                super.onError(e);
-            }
-        });
+//        addSubscribe(create(APIService.class).getContactFilterCondition(BaseConstant.CLIENT_API_GROUP_NAME), new BaseObserver<ContactFilterConditionBean>(getView()) {
+//            @Override
+//            protected void onSuccess(ContactFilterConditionBean data) {
+//                if (getView() != null) {
+//                    getView().getFilterConditionSuccess(data);
+//                }
+//            }
+//
+//            @Override
+//            public void onError(Throwable e) {
+//                super.onError(e);
+//            }
+//        });
     }
 }

+ 7 - 6
chatModule/src/main/java/com/cooleshow/chatmodule/ui/ChatGroupSettingActivity.java

@@ -20,7 +20,7 @@ import com.cooleshow.base.common.BaseConstant;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.JumpUtils;
-import com.cooleshow.base.utils.LOG;
+import com.cooleshow.base.utils.LogUtils;
 import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.base.widgets.dialog.CommonDialog;
@@ -28,6 +28,7 @@ import com.cooleshow.chatmodule.R;
 import com.cooleshow.chatmodule.adapter.GroupSettingMemberAdapter;
 import com.cooleshow.chatmodule.bean.GroupMemberBean;
 import com.cooleshow.chatmodule.bean.IMGroupInfo;
+import com.cooleshow.chatmodule.constants.TCChatRouterPath;
 import com.cooleshow.chatmodule.contract.ChatGroupSettingContract;
 import com.cooleshow.chatmodule.databinding.TcActivityChatGroupSettingBinding;
 import com.cooleshow.chatmodule.presenter.ChatGroupSettingPresenter;
@@ -48,7 +49,7 @@ import androidx.recyclerview.widget.RecyclerView;
  * @author Ryan
  * 类说明:
  */
-@Route(path = RouterPath.TCChatCenter.CHAT_GROUP_SETTING)
+@Route(path = TCChatRouterPath.CHAT_GROUP_SETTING)
 public class ChatGroupSettingActivity extends BaseMVPActivity<TcActivityChatGroupSettingBinding, ChatGroupSettingPresenter> implements ChatGroupSettingContract.ChatGroupSettingView, View.OnClickListener {
     private final int REQUEST_GROUP_REMARKS_CODE = 100;
 
@@ -66,7 +67,7 @@ public class ChatGroupSettingActivity extends BaseMVPActivity<TcActivityChatGrou
         } else if (view.getId() == R.id.tv_group_member_list) {
             //查看联系人
             if (adapter != null) {
-                ARouter.getInstance().build(RouterPath.TCChatCenter.CHAT_GROUP_MEMBER)
+                ARouter.getInstance().build(TCChatRouterPath.CHAT_GROUP_MEMBER)
                         .withSerializable("list", (Serializable) adapter.getData())
                         .navigation();
             }
@@ -77,14 +78,14 @@ public class ChatGroupSettingActivity extends BaseMVPActivity<TcActivityChatGrou
 //                    .navigation();
         } else if (view.getId() == R.id.tv_feedback) {
             //反馈
-            ARouter.getInstance().build(RouterPath.TCChatCenter.CHAT_IM_APPEAL)
+            ARouter.getInstance().build(TCChatRouterPath.CHAT_IM_APPEAL)
                     .withString("targetId", targetId)
                     .withString("name", name)
                     .withString("type", "GROUP")
                     .navigation();
         } else if (view.getId() == R.id.tv_notice) {
             //群公告
-            ARouter.getInstance().build(RouterPath.TCChatCenter.CHAT_GROUP_NOTICE)
+            ARouter.getInstance().build(TCChatRouterPath.CHAT_GROUP_NOTICE)
                     .withString("targetId", targetId)
                     .navigation();
         } else if (view.getId() == R.id.btn_confirm) {
@@ -340,7 +341,7 @@ public class ChatGroupSettingActivity extends BaseMVPActivity<TcActivityChatGrou
         }
         mGroupInfo = data;
         boolean messageReceiveOption = mGroupInfo.getMessageReceiveOption();
-        LOG.i("消息免打扰模式:"+messageReceiveOption);
+        LogUtils.i("消息免打扰模式:"+messageReceiveOption);
         viewBinding.cbMessage.setChecked(messageReceiveOption);
     }
 

+ 0 - 75
chatModule/src/main/java/com/cooleshow/chatmodule/ui/ContactPersonListFragment.java

@@ -8,18 +8,12 @@ import android.widget.PopupWindow;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
-import com.cooleshow.base.bean.ContactFilterConditionBean;
-import com.cooleshow.base.bean.OrchestraListBean;
-import com.cooleshow.base.bean.SchoolListBean;
-import com.cooleshow.base.bean.SubjectBean;
-import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.constanst.LoginStatusConstants;
 import com.cooleshow.base.event.LoginStatusEvent;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.PopupUtil;
 import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.base.utils.UiUtils;
-import com.cooleshow.base.widgets.ContactFilterView;
 import com.cooleshow.base.widgets.CustomSuspensionDecoration;
 import com.cooleshow.base.widgets.EmptyViewLayout;
 import com.cooleshow.chatmodule.R;
@@ -60,10 +54,6 @@ public class ContactPersonListFragment extends BaseMVPFragment<TcFragmentContact
     private String roleId;
     private EmptyViewLayout mEmptyViewLayout;
     private boolean isSelectContact = false;//是否是选择联系人
-    private ContactFilterView mContactFilterView;
-    private List<SchoolListBean.RowsBean> schoolList;
-    private List<OrchestraListBean.RowsBean> orchestraList;
-    private List<SubjectBean.RowsBean> subjectList;
     private View parentTopBgView;
 
 
@@ -175,21 +165,6 @@ public class ContactPersonListFragment extends BaseMVPFragment<TcFragmentContact
         mViewBinding.refreshLayout.finishRefresh();
     }
 
-    @Override
-    public void getFilterConditionSuccess(ContactFilterConditionBean data) {
-        if (data == null) {
-            return;
-        }
-        if (data.getOrchestra() != null) {
-            orchestraList = data.getOrchestra().getRows();
-        }
-        if (data.getSubject() != null) {
-            subjectList = data.getSubject().getRows();
-        }
-        if (data.getSchool() != null) {
-            schoolList = data.getSchool().getRows();
-        }
-    }
 
     private void setEmptyView() {
         if (mEmptyViewLayout == null) {
@@ -207,57 +182,10 @@ public class ContactPersonListFragment extends BaseMVPFragment<TcFragmentContact
             getData();
         }
         if (v.getId() == R.id.tv_filter) {
-            if (subjectList == null || subjectList.size() == 0) {
-                return;
-            }
-            if (mContactFilterView == null) {
-                mContactFilterView = new ContactFilterView(getContext());
-            }
-            mContactFilterView.setSchoolData(schoolList);
-            mContactFilterView.setSubjectData(subjectList);
-            mContactFilterView.setOrchestraData(orchestraList);
-            mContactFilterView.setRoleData();
-            mContactFilterView.bindData();
-            PopupWindow popupWindow = PopupUtil.showInDropWrapNObg(getContext(), mContactFilterView, mViewBinding.tvFilter, new PopupUtil.ShowListener() {
-                @Override
-                public void onShow(View view, PopupWindow popupWindow) {
-                    changeTopBg(true);
-                }
-            });
-            mContactFilterView.setOnEventListener(new ContactFilterView.OnEventListener() {
-                @Override
-                public void onDismiss() {
-                    if (popupWindow != null) {
-                        popupWindow.dismiss();
-                    }
-                }
 
-                @Override
-                public void onQuery(String schoolId, String orchestraId, String subjectId, String roleId) {
-                    ContactPersonListFragment.this.schoolId = schoolId;
-                    ContactPersonListFragment.this.orchestraId = orchestraId;
-                    ContactPersonListFragment.this.subjectId = subjectId;
-                    ContactPersonListFragment.this.roleId = roleId;
-                    getData();
-                }
-            });
-            popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
-                @Override
-                public void onDismiss() {
-                    changeTopBg(false);
-                }
-            });
         }
     }
 
-    private void changeTopBg(boolean popIsShow) {
-        UiUtils.refreshFilterTextStyle(popIsShow, mViewBinding.tvFilter);
-        mViewBinding.viewTopBg.setBackgroundColor(popIsShow ? Color.WHITE : Color.TRANSPARENT);
-        mViewBinding.groupSearch.setVisibility(popIsShow ? View.INVISIBLE : View.VISIBLE);
-        if (parentTopBgView != null) {
-            parentTopBgView.setBackgroundColor(popIsShow ? Color.WHITE : Color.TRANSPARENT);
-        }
-    }
 
     private void getData() {
         if (presenter != null) {
@@ -274,9 +202,6 @@ public class ContactPersonListFragment extends BaseMVPFragment<TcFragmentContact
     @Subscribe(threadMode = ThreadMode.MAIN)
     public void loadEventBus(LoginStatusEvent event) {
         if (event != null && event.eventCode == LoginStatusConstants.LOGIN_OUT) {
-            orchestraList = null;
-            schoolList = null;
-            subjectList = null;
             searchCondition = "";
             schoolId = "";
             orchestraId = "";

+ 2 - 1
chatModule/src/main/java/com/cooleshow/chatmodule/ui/GroupMemberActivity.java

@@ -17,6 +17,7 @@ import com.cooleshow.base.widgets.DensityUtil;
 import com.cooleshow.base.widgets.EmptyViewLayout;
 import com.cooleshow.chatmodule.adapter.GroupMemberAdapter;
 import com.cooleshow.chatmodule.bean.GroupMemberBean;
+import com.cooleshow.chatmodule.constants.TCChatRouterPath;
 import com.cooleshow.chatmodule.contract.GroupMemberContract;
 import com.cooleshow.chatmodule.databinding.TcActivityGroupMemberBinding;
 import com.cooleshow.chatmodule.presenter.GroupMemberPresenter;
@@ -39,7 +40,7 @@ import androidx.recyclerview.widget.RecyclerView;
  * @author Ryan
  * 类说明:
  */
-@Route(path = RouterPath.TCChatCenter.CHAT_GROUP_MEMBER)
+@Route(path = TCChatRouterPath.CHAT_GROUP_MEMBER)
 public class GroupMemberActivity extends BaseMVPActivity<TcActivityGroupMemberBinding, GroupMemberPresenter> implements GroupMemberContract.GroupMemberView, View.OnClickListener {
     @Override
     public void onClick(View v) {

+ 3 - 2
chatModule/src/main/java/com/cooleshow/chatmodule/ui/ImAppealActivity.java

@@ -22,6 +22,7 @@ import com.cooleshow.base.utils.helper.GlideEngine;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.base.utils.helper.upload.UploadHelper;
 import com.cooleshow.chatmodule.adapter.AddPhotoListAdapter;
+import com.cooleshow.chatmodule.constants.TCChatRouterPath;
 import com.cooleshow.chatmodule.contract.ImAppealContract;
 import com.cooleshow.chatmodule.databinding.TcActivityImAppealBinding;
 import com.cooleshow.chatmodule.presenter.ImAppealPresenter;
@@ -46,7 +47,7 @@ import androidx.recyclerview.widget.RecyclerView;
  * @author Ryan
  * 类说明:
  */
-@Route(path = RouterPath.TCChatCenter.CHAT_IM_APPEAL)
+@Route(path = TCChatRouterPath.CHAT_IM_APPEAL)
 public class ImAppealActivity extends BaseMVPActivity<TcActivityImAppealBinding, ImAppealPresenter> implements ImAppealContract.ImAppealView {
 
 
@@ -91,7 +92,7 @@ public class ImAppealActivity extends BaseMVPActivity<TcActivityImAppealBinding,
                 if (item.getPath().equals("123")) {
                     toSelectPic();
                 } else {
-                    ARouter.getInstance().build(RouterPath.TCChatCenter.CHAT_PHOTO_PREVIEW)
+                    ARouter.getInstance().build(TCChatRouterPath.CHAT_PHOTO_PREVIEW)
                             .withInt("position", position)
                             .withParcelableArrayList("list", (ArrayList<? extends Parcelable>) selectList)
                             .navigation(ImAppealActivity.this, 100);

+ 4 - 3
chatModule/src/main/java/com/cooleshow/chatmodule/ui/NoticeActivity.java

@@ -19,6 +19,7 @@ import com.cooleshow.chatmodule.R;
 import com.cooleshow.chatmodule.adapter.NoticeListAdapter;
 import com.cooleshow.chatmodule.adapter.NoticePopuListAdapter;
 import com.cooleshow.chatmodule.bean.GroupNoticeBean;
+import com.cooleshow.chatmodule.constants.TCChatRouterPath;
 import com.cooleshow.chatmodule.contract.NoticeContract;
 import com.cooleshow.chatmodule.databinding.TcActivityImAppealBinding;
 import com.cooleshow.chatmodule.databinding.TcActivityNoticeBinding;
@@ -40,7 +41,7 @@ import androidx.recyclerview.widget.RecyclerView;
  * @author Ryan
  * 类说明:
  */
-@Route(path = RouterPath.TCChatCenter.CHAT_GROUP_NOTICE)
+@Route(path = TCChatRouterPath.CHAT_GROUP_NOTICE)
 public class NoticeActivity extends BaseMVPActivity<TcActivityNoticeBinding, NoticePresenter> implements NoticeContract.NoticeView, View.OnClickListener {
 
     private int currentPage;
@@ -51,7 +52,7 @@ public class NoticeActivity extends BaseMVPActivity<TcActivityNoticeBinding, Not
     @Override
     public void onClick(View v) {
         if (v.getId() == com.cooleshow.base.R.id.tv_right) {
-            ARouter.getInstance().build(RouterPath.TCChatCenter.CHAT_GROUP_NOTICE_EDIT)
+            ARouter.getInstance().build(TCChatRouterPath.CHAT_GROUP_NOTICE_EDIT)
                     .withString("targetId", targetId)
                     .navigation();
         }
@@ -150,7 +151,7 @@ public class NoticeActivity extends BaseMVPActivity<TcActivityNoticeBinding, Not
                         @Override
                         public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
                             if (position == 0) {
-                                ARouter.getInstance().build(RouterPath.TCChatCenter.CHAT_GROUP_NOTICE_EDIT)
+                                ARouter.getInstance().build(TCChatRouterPath.CHAT_GROUP_NOTICE_EDIT)
                                         .withString("targetId", targetId)
                                         .withString("title", bean.title)
                                         .withString("notice", bean.content)

+ 2 - 1
chatModule/src/main/java/com/cooleshow/chatmodule/ui/NoticeEditActivity.java

@@ -13,6 +13,7 @@ import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
+import com.cooleshow.chatmodule.constants.TCChatRouterPath;
 import com.cooleshow.chatmodule.contract.NoticeEditContract;
 import com.cooleshow.chatmodule.databinding.TcActivityNoticeEditBinding;
 import com.cooleshow.chatmodule.presenter.NoticeEditPresenter;
@@ -25,7 +26,7 @@ import androidx.annotation.Nullable;
  * @author Ryan
  * 类说明:
  */
-@Route(path = RouterPath.TCChatCenter.CHAT_GROUP_NOTICE_EDIT)
+@Route(path = TCChatRouterPath.CHAT_GROUP_NOTICE_EDIT)
 public class NoticeEditActivity extends BaseMVPActivity<TcActivityNoticeEditBinding, NoticeEditPresenter> implements NoticeEditContract.NoticeEditView, View.OnClickListener {
     @Override
     public void onClick(View v) {

+ 2 - 1
chatModule/src/main/java/com/cooleshow/chatmodule/ui/PhotoPreviewActivity.java

@@ -16,6 +16,7 @@ import com.cooleshow.base.ui.activity.BaseActivity;
 import com.cooleshow.base.utils.GlideUtils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.chatmodule.R;
+import com.cooleshow.chatmodule.constants.TCChatRouterPath;
 import com.cooleshow.chatmodule.databinding.TcActivityPhotoPreviewBinding;
 import com.luck.picture.lib.entity.LocalMedia;
 import com.luck.picture.lib.photoview.PhotoView;
@@ -34,7 +35,7 @@ import androidx.viewpager.widget.ViewPager;
  * @author Ryan
  * 类说明:
  */
-@Route(path = RouterPath.TCChatCenter.CHAT_PHOTO_PREVIEW)
+@Route(path = TCChatRouterPath.CHAT_PHOTO_PREVIEW)
 public class PhotoPreviewActivity extends BaseActivity<TcActivityPhotoPreviewBinding> implements View.OnClickListener {
     @Override
     public void onClick(View v) {

+ 112 - 0
chatModule/src/main/java/com/cooleshow/chatmodule/utils/helper/ChatGroupHelper.java

@@ -1,12 +1,29 @@
 package com.cooleshow.chatmodule.utils.helper;
 
+import android.text.TextUtils;
+
+import com.cooleshow.base.common.BaseApplication;
 import com.cooleshow.chatmodule.R;
 
+import org.json.JSONException;
+import org.json.JSONObject;
+
 
 /**
  * Author by pq, Date on 2022/7/10.
  */
 public class ChatGroupHelper {
+
+
+    public static final String GROUP_ADMIN_KEY = "isOwner";
+    public static final String ROLE_TYPE_KEY = "roleType";
+
+    public static final String GROUP_ADMIN_TAG = "owner";
+    public static final String GROUP_MEMBER_TAG = "member";
+    public static final String ROLE_TYPE_STU = "STUDENT";
+    public static final String ROLE_TYPE_TEACHER = "TEACHER";
+
+
     public static int getChatGroupAvatar(String groupType) {
         return R.drawable.tc_icon_group_fans;
 //        if (TextUtils.equals(groupType, GroupType.GROUP_TYPE_CLASS)) {
@@ -28,4 +45,99 @@ public class ChatGroupHelper {
 //        }
         return R.drawable.tc_icon_group_fans;
     }
+
+    public static String getGroupUserInfoExtra(boolean isAdmin, String roleType) {
+        JSONObject jsonObject = new JSONObject();
+        try {
+            jsonObject.put(GROUP_ADMIN_KEY, isAdmin ? GROUP_ADMIN_TAG : GROUP_MEMBER_TAG);
+            jsonObject.put(ROLE_TYPE_KEY, roleType);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+        return jsonObject.toString();
+    }
+
+    public static String getCurrentUserInfoRoleTypeExtra() {
+        boolean teacherClient = BaseApplication.Companion.isTeacherClient();
+        return getSingleUserInfoExtra(teacherClient ? ROLE_TYPE_TEACHER : ROLE_TYPE_STU);
+    }
+
+    public static String getSingleUserInfoExtra(String roleType) {
+        JSONObject jsonObject = new JSONObject();
+        try {
+            jsonObject.put(ROLE_TYPE_KEY, roleType);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+        return jsonObject.toString();
+    }
+
+    /**
+     * 解析是否是群主标记
+     *
+     * @param extra
+     * @return
+     */
+    public static boolean isAdminFromExtra(String extra) {
+        if (TextUtils.equals(GROUP_ADMIN_TAG, extra)) {
+            return true;
+        }
+        try {
+            JSONObject jsonObject = new JSONObject(extra);
+            if (jsonObject.has(GROUP_ADMIN_KEY)) {
+                String result = jsonObject.optString(GROUP_ADMIN_KEY);
+                return TextUtils.equals(result, GROUP_ADMIN_TAG);
+            }
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+        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());
+//                return roleType;
+//            }
+//        }
+//        //单人
+//        if (conversationType == Conversation.ConversationType.PRIVATE) {
+//            UserInfo stuUserInfo = RongUserInfoManager.getInstance().getUserInfo(targetId);
+//            if (stuUserInfo != null) {
+//                String roleType = GroupUtils.getRoleType(stuUserInfo.getExtra());
+//                return roleType;
+//            }
+//        }
+//        return "";
+//
+//    }
+
+    /**
+     * 获取roleType
+     *
+     * @param extra
+     * @return
+     */
+    public static String getRoleType(String extra) {
+        if (TextUtils.isEmpty(extra)) {
+            return "";
+        }
+        try {
+            JSONObject jsonObject = new JSONObject(extra);
+            if (jsonObject.has(ROLE_TYPE_KEY)) {
+                String result = jsonObject.optString(ROLE_TYPE_KEY);
+                return result;
+            }
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
+    public static boolean isTeacher(String roleType) {
+        return TextUtils.equals(roleType, ROLE_TYPE_TEACHER);
+    }
 }

+ 2 - 1
chatModule/src/main/java/com/cooleshow/chatmodule/widget/CustomChatGroupTopRightIconExtension.java

@@ -6,6 +6,7 @@ import android.text.TextUtils;
 
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.cooleshow.base.router.RouterPath;
+import com.cooleshow.chatmodule.constants.TCChatRouterPath;
 import com.tencent.qcloud.tuicore.ServiceInitializer;
 import com.tencent.qcloud.tuicore.TUIConstants;
 import com.tencent.qcloud.tuicore.TUICore;
@@ -50,7 +51,7 @@ public class CustomChatGroupTopRightIconExtension extends ServiceInitializer imp
 //                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 //                        getAppContext().startActivity(intent);
 //                          ToastUtil.getInstance().showShort("点击群组右上角");
-                        ARouter.getInstance().build(RouterPath.TCChatCenter.CHAT_GROUP_SETTING)
+                        ARouter.getInstance().build(TCChatRouterPath.CHAT_GROUP_SETTING)
                                 .withString("targetId",(String) groupID)
                                 .navigation();
                     }

二進制
chatModule/src/main/res/drawable-xhdpi/icon_im_teacher_avatar_tag.png


二進制
chatModule/src/main/res/drawable-xxhdpi/ic_group_message.png


二進制
chatModule/src/main/res/drawable-xxhdpi/icon_im_teacher_avatar_tag.png


+ 9 - 0
chatModule/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>

+ 2 - 3
chatModule/src/main/res/layout/tc_fragment_contact_list_layout.xml

@@ -11,11 +11,10 @@
         android:layout_width="match_parent"
         android:layout_height="0dp"/>
     <TextView
-        android:visibility="visible"
+        android:visibility="gone"
         android:id="@+id/tv_filter"
         android:layout_width="wrap_content"
         android:layout_height="0dp"
-        android:drawableRight="@drawable/icon_arrow_down_black"
         android:drawablePadding="5dp"
         android:ellipsize="end"
         android:gravity="center"
@@ -73,7 +72,7 @@
         android:layout_width="56dp"
         android:layout_height="28dp"
         android:layout_marginEnd="4dp"
-        android:background="@drawable/shape_ff8057_18dp"
+        android:background="@drawable/shape_1ecdac_18dp"
         android:gravity="center"
         android:text="搜索"
         android:textColor="@color/white"

+ 1 - 1
chatModule/src/main/res/layout/tc_fragment_contact_room_list.xml

@@ -49,7 +49,7 @@
         android:layout_width="56dp"
         android:layout_height="28dp"
         android:layout_marginEnd="4dp"
-        android:background="@drawable/shape_ff8057_18dp"
+        android:background="@drawable/shape_1ecdac_18dp"
         android:gravity="center"
         android:text="搜索"
         android:textColor="@color/white"

+ 1 - 1
chatModule/src/main/res/layout/tc_fragment_conversation_list_layout.xml

@@ -47,7 +47,7 @@
         android:layout_width="56dp"
         android:layout_height="28dp"
         android:layout_marginEnd="6dp"
-        android:background="@drawable/shape_ff8057_18dp"
+        android:background="@drawable/shape_1ecdac_18dp"
         android:gravity="center"
         android:text="搜索"
         android:textColor="@color/white"

+ 4 - 3
chatModule/src/main/res/layout/tc_group_member_list_item.xml

@@ -21,7 +21,7 @@
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
-        android:background="@drawable/tc_shape_im_teacher_tag_bg"
+        android:background="@drawable/shape_im_teacher_tag_bg"
         android:gravity="center"
         android:visibility="gone"
         app:layout_constraintBottom_toBottomOf="@+id/iv_icon"
@@ -31,13 +31,14 @@
         <ImageView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:src="@drawable/icon_default_avatar2" />
+            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>
@@ -97,7 +98,7 @@
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintTop_toTopOf="parent"
-        app:srcCompat="@drawable/icon_chat_message" />
+        app:srcCompat="@drawable/ic_group_message" />
 
     <View
         android:id="@+id/view_line"

+ 41 - 62
chatModule/src/main/res/layout/tc_item_contact_list_layout.xml

@@ -7,92 +7,71 @@
     android:background="@color/white"
     android:paddingStart="@dimen/dp_14">
 
-    <de.hdodenhof.circleimageview.CircleImageView
+    <com.cooleshow.base.widgets.QMUIRadiusImageView
         android:id="@+id/iv_icon"
-        android:layout_width="@dimen/dp_44"
-        android:layout_height="@dimen/dp_44"
         android:layout_marginTop="12dp"
         android:layout_marginBottom="12dp"
+        android:layout_width="@dimen/dp_44"
+        android:layout_height="@dimen/dp_44"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         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:textStyle="bold"
         android:id="@+id/tv_name"
-        android:layout_width="0dp"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginStart="11dp"
-        android:ellipsize="end"
         android:includeFontPadding="false"
-        android:maxLines="1"
+        android:layout_marginStart="11dp"
         android:textColor="@color/color_1a1a1a"
         android:textSize="@dimen/sp_16"
-        app:layout_constraintBottom_toTopOf="@+id/tv_des"
-        app:layout_constraintHorizontal_bias="0"
-        app:layout_constraintHorizontal_chainStyle="packed"
+        app:layout_constraintBottom_toBottomOf="@+id/iv_icon"
         app:layout_constraintLeft_toRightOf="@+id/iv_icon"
-        app:layout_constraintRight_toLeftOf="@+id/tv_group_tag"
         app:layout_constraintTop_toTopOf="@+id/iv_icon"
-        app:layout_constraintWidth_default="wrap"
-        tools:text="哈喽王哈喽王" />
-
-    <TextView
-        android:visibility="gone"
-        android:id="@+id/tv_des"
-        android:paddingEnd="12dp"
-        android:maxLines="1"
-        android:ellipsize="end"
-        app:layout_constraintRight_toRightOf="parent"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:textColor="@color/color_666666"
-        android:textSize="@dimen/sp_12"
-        tools:visibility="visible"
-        app:layout_constraintBottom_toBottomOf="@+id/iv_icon"
-        app:layout_constraintLeft_toLeftOf="@+id/tv_name"
-        app:layout_constraintTop_toBottomOf="@+id/tv_name"
-        tools:text="哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈" />
-
-    <TextView
-        android:paddingTop="1dp"
-        android:paddingBottom="1dp"
-        android:paddingStart="6dp"
-        android:paddingEnd="6dp"
-        android:visibility="gone"
-        android:layout_marginLeft="@dimen/dp_4"
-        android:layout_marginEnd="12dp"
-        app:layout_constraintBottom_toBottomOf="@+id/tv_name"
-        app:layout_constraintTop_toTopOf="@+id/tv_name"
-        android:id="@+id/tv_group_tag"
-        app:layout_constraintLeft_toRightOf="@+id/tv_name"
-        app:layout_constraintRight_toRightOf="parent"
-        android:gravity="center"
-        android:background="@drawable/shape_ff8057_4dp"
-        android:textColor="@color/white"
-        android:textSize="@dimen/sp_11"
-        android:text="晋升团"
-        tools:visibility="visible"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"/>
+        tools:text="哈喽王" />
 
     <ImageView
         android:id="@+id/im_group_mark"
         android:layout_width="@dimen/dp_45"
         android:layout_height="@dimen/dp_17"
-        android:layout_marginLeft="@dimen/dp_4"
-        android:visibility="gone"
-        android:layout_marginEnd="12dp"
-        app:layout_constraintBottom_toBottomOf="@+id/tv_name"
         app:layout_constraintLeft_toRightOf="@+id/tv_name"
-        app:layout_constraintRight_toRightOf="parent"
-        app:layout_constraintTop_toTopOf="@+id/tv_name" />
+        app:layout_constraintTop_toTopOf="@+id/tv_name"
+        android:layout_marginLeft="@dimen/dp_4"
+        android:visibility="visible"
+        app:layout_constraintBottom_toBottomOf="@+id/tv_name"/>
 
     <View
-        android:layout_width="0dp"
-        android:layout_height="1px"
         android:background="@color/divide_color_f0f0f0"
         app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintLeft_toLeftOf="@+id/tv_name" />
+        app:layout_constraintLeft_toLeftOf="@+id/tv_name"
+        android:layout_width="0dp"
+        android:layout_height="1px"/>
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 43 - 68
chatModule/src/main/res/layout/tc_item_contact_person_list_layout.xml

@@ -4,99 +4,74 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:id="@+id/root_view"
     android:background="@color/white"
     android:paddingStart="@dimen/dp_14">
 
-    <de.hdodenhof.circleimageview.CircleImageView
-        android:layout_marginTop="12dp"
+    <com.cooleshow.base.widgets.QMUIRadiusImageView
         android:id="@+id/iv_icon"
+        android:layout_marginTop="12dp"
+        android:layout_marginBottom="12dp"
         android:layout_width="@dimen/dp_44"
         android:layout_height="@dimen/dp_44"
-        android:layout_marginBottom="12dp"
+        app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         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:textStyle="bold"
         android:id="@+id/tv_name"
-        android:layout_width="0dp"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginStart="11dp"
-        android:ellipsize="end"
         android:includeFontPadding="false"
-        android:maxLines="1"
+        android:layout_marginStart="11dp"
         android:textColor="@color/color_1a1a1a"
         android:textSize="@dimen/sp_16"
-        app:layout_constraintHorizontal_bias="0"
-        app:layout_constraintBottom_toTopOf="@+id/tv_des"
-        app:layout_constraintHorizontal_chainStyle="packed"
+        app:layout_constraintBottom_toBottomOf="@+id/iv_icon"
         app:layout_constraintLeft_toRightOf="@+id/iv_icon"
-        app:layout_constraintRight_toLeftOf="@+id/tv_group_tag"
         app:layout_constraintTop_toTopOf="@+id/iv_icon"
-        app:layout_constraintWidth_default="wrap"
-        tools:text="哈喽王哈喽王哈喽王哈喽王哈喽王哈喽王" />
-
-    <TextView
-        tools:visibility="visible"
-        android:visibility="gone"
-        android:id="@+id/tv_des"
-        android:paddingEnd="25dp"
-        android:maxLines="2"
-        android:ellipsize="end"
-        app:layout_constraintRight_toRightOf="parent"
-        android:layout_width="0dp"
-        android:includeFontPadding="false"
-        android:layout_height="wrap_content"
-        android:textColor="@color/color_666666"
-        android:textSize="@dimen/sp_12"
-        android:layout_marginTop="5dp"
-        app:layout_constraintLeft_toLeftOf="@+id/tv_name"
-        app:layout_constraintTop_toBottomOf="@+id/tv_name"
-        tools:text="哈喽王哈喽哈喽王哈喽王哈喽王哈喽王" />
-
-    <TextView
-        android:paddingTop="1dp"
-        android:paddingBottom="1dp"
-        android:paddingStart="6dp"
-        android:paddingEnd="6dp"
-        android:visibility="gone"
-        android:layout_marginLeft="@dimen/dp_4"
-        android:layout_marginEnd="12dp"
-        app:layout_constraintBottom_toBottomOf="@+id/tv_name"
-        app:layout_constraintTop_toTopOf="@+id/tv_name"
-        android:id="@+id/tv_group_tag"
-        app:layout_constraintLeft_toRightOf="@+id/tv_name"
-        app:layout_constraintRight_toRightOf="parent"
-        android:gravity="center"
-        android:background="@drawable/shape_ff8057_4dp"
-        android:textColor="@color/white"
-        android:textSize="@dimen/sp_11"
-        android:text="晋升团"
-        tools:visibility="visible"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"/>
+        tools:text="哈喽王" />
 
     <ImageView
         android:id="@+id/im_group_mark"
         android:layout_width="@dimen/dp_45"
         android:layout_height="@dimen/dp_17"
-        android:layout_marginLeft="@dimen/dp_4"
-        android:visibility="gone"
-        android:layout_marginEnd="12dp"
-        app:layout_constraintBottom_toBottomOf="@+id/tv_name"
         app:layout_constraintLeft_toRightOf="@+id/tv_name"
-        app:layout_constraintRight_toRightOf="parent"
-        app:layout_constraintTop_toTopOf="@+id/tv_name" />
+        app:layout_constraintTop_toTopOf="@+id/tv_name"
+        android:layout_marginLeft="@dimen/dp_4"
+        android:visibility="visible"
+        app:layout_constraintBottom_toBottomOf="@+id/tv_name"/>
 
     <View
-        app:layout_constraintTop_toBottomOf="@+id/tv_des"
-        app:layout_constraintRight_toRightOf="parent"
-        android:layout_marginTop="13dp"
-        android:id="@+id/view_line"
-        android:layout_width="0dp"
-        android:layout_height="1px"
         android:background="@color/divide_color_f0f0f0"
-        app:layout_constraintLeft_toLeftOf="@+id/tv_name" />
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toLeftOf="@+id/tv_name"
+        android:layout_width="0dp"
+        android:layout_height="1px"/>
 </androidx.constraintlayout.widget.ConstraintLayout>