package com.cooleshow.chatmodule.ui; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.ImageView; import android.widget.TextView; import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.launcher.ARouter; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.listener.OnItemClickListener; import com.cooleshow.base.common.BaseApplication; import com.cooleshow.base.common.BaseConstant; import com.cooleshow.base.router.RouterPath; import com.cooleshow.base.ui.activity.BaseMVPActivity; import com.cooleshow.base.utils.GlideUtils; import com.cooleshow.base.utils.JumpUtils; 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; import com.cooleshow.chatmodule.R; import com.cooleshow.chatmodule.adapter.GroupSettingMemberAdapter; import com.cooleshow.chatmodule.bean.GroupApplyBean; 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; import com.cooleshow.chatmodule.utils.helper.ChatGroupHelper; import com.tencent.qcloud.tuicore.TUICore; import com.tencent.qcloud.tuikit.tuigroup.bean.GroupInfo; import java.io.Serializable; import java.util.List; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; /** * 创建日期:2022/6/11 14:29 * * @author Ryan * 类说明: */ @Route(path = TCChatRouterPath.CHAT_GROUP_SETTING) public class ChatGroupSettingActivity extends BaseMVPActivity implements ChatGroupSettingContract.ChatGroupSettingView, View.OnClickListener { private final int REQUEST_GROUP_REMARKS_CODE = 100; @Override public void onClick(View view) { if (view.getId() == R.id.ll_history_message) { //查看历史消息内容 TUICore.startActivity("SearchMainActivity", null); } else if (view.getId() == R.id.tv_group_name_remarks) { //设置群名称 // ARouter.getInstance().build(RouterPath.ChatCenter.CHAT_GROUP_SET_REMARK) // .withString("targetId", targetId) // .withString("remarks", tv_group_name_remarks.getText().toString().trim()) // .navigation(this, REQUEST_GROUP_REMARKS_CODE); } else if (view.getId() == R.id.tv_group_member_list) { //查看联系人 if (adapter != null) { ARouter.getInstance().build(TCChatRouterPath.CHAT_GROUP_MEMBER) .withSerializable("list", (Serializable) adapter.getData()) .navigation(); } } else if (view.getId() == R.id.tv_group_apply_count) { //查看入群申请 ARouter.getInstance().build(TCChatRouterPath.CHAT_GROUP_JOIN_APPLY) .withString("targetId", targetId) .navigation(); } else if (view.getId() == R.id.tv_feedback) { //反馈 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(TCChatRouterPath.CHAT_GROUP_NOTICE) .withString("targetId", targetId) .navigation(); } else if (view.getId() == R.id.btn_confirm) { if (BaseApplication.Companion.isTeacherClient()) { //老师端解散群组 showConfirmDialog(); } else { //发消息 finish(); } } } private void showQuitConfirmDialog() { CommonDialog commonDialog = new CommonDialog(this); commonDialog.show(); commonDialog.setTitle("提示"); commonDialog.setContent("确认退出该群聊吗?"); commonDialog.setOnConfirmClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (commonDialog != null) { commonDialog.dismiss(); } presenter.quitChatGroup(targetId); } }); commonDialog.setOnCancelClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (commonDialog != null) { commonDialog.dismiss(); } } }); } private void showConfirmDialog() { CommonDialog commonDialog = new CommonDialog(this); commonDialog.show(); commonDialog.setTitle("提示"); commonDialog.setContent("确认解散群组吗?"); commonDialog.setOnConfirmClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (commonDialog != null) { commonDialog.dismiss(); } presenter.dissolveChatGroup(targetId); } }); commonDialog.setOnCancelClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (commonDialog != null) { commonDialog.dismiss(); } } }); } private ImageView iv_portrait; private TextView tv_group_name; private TextView tv_class_num; private TextView tv_group_member_list; private RecyclerView recyclerView; private TextView tv_group_apply_count; private TextView tv_group_name_remarks; private CheckBox cb_message; GroupSettingMemberAdapter adapter; private GroupInfo mGroupInfo; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); QMUIStatusBarHelper.setStatusBarLightMode(this); } @Override protected void initView() { initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "群设置"); iv_portrait = viewBinding.ivPortrait; tv_group_name = viewBinding.tvGroupName; tv_class_num = viewBinding.tvClassNum; tv_group_member_list = viewBinding.tvGroupMemberList; tv_group_member_list.setOnClickListener(this); recyclerView = viewBinding.recyclerView; Button btnConfirm = viewBinding.btnConfirm; btnConfirm.setText("发消息"); tv_group_apply_count = viewBinding.tvGroupApplyCount; tv_group_apply_count.setOnClickListener(this); tv_group_name_remarks = viewBinding.tvGroupNameRemarks; tv_group_name_remarks.setOnClickListener(this); viewBinding.llHistoryMessage.setOnClickListener(this); cb_message = viewBinding.cbMessage; viewBinding.tvNotice.setOnClickListener(this); viewBinding.tvFeedback.setOnClickListener(this); viewBinding.btnConfirm.setOnClickListener(this); if (BaseApplication.Companion.isTeacherClient()) { btnConfirm.setText("解散群组"); viewBinding.llChatJoinApply.setVisibility(View.VISIBLE); } else { btnConfirm.setText("发消息"); viewBinding.llChatJoinApply.setVisibility(View.GONE); } LinearLayoutManager manager = new LinearLayoutManager(this); manager.setOrientation(LinearLayoutManager.HORIZONTAL); recyclerView.setLayoutManager(manager); adapter = new GroupSettingMemberAdapter(); recyclerView.setAdapter(adapter); adapter.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(@NonNull BaseQuickAdapter adapter, @NonNull View view, int position) { // GroupMemberBean.RowsBean groupMemberBean = (GroupMemberBean.RowsBean) adapter.getItem(position); // String imUserId = UserHelper.getImUserId(); // if (TextUtils.equals(groupMemberBean.getImUserId(), imUserId)) { // return; // } // RongIM.getInstance().startPrivateChat(ChatGroupSettingActivity.this, groupMemberBean.getImUserId() + "", groupMemberBean.getNickname()); } }); } private String targetId; private String name; @Override public void initData() { super.initData(); targetId = getIntent().getStringExtra("targetId"); name = getIntent().getStringExtra("name"); if (TextUtils.isEmpty(targetId)) { finish(); return; } presenter.loadGroup(targetId); // presenter.conversationGet(Conversation.ConversationType.GROUP, targetId); cb_message.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (buttonView.isPressed()) { presenter.setGroupNotDisturb(targetId, isChecked, null); // if (isChecked) { // presenter.conversationMute(Conversation.ConversationType.GROUP, targetId, Conversation.ConversationNotificationStatus.DO_NOT_DISTURB); // } else { // presenter.conversationGetUnmute(Conversation.ConversationType.GROUP, targetId, Conversation.ConversationNotificationStatus.NOTIFY); // } } } }); } @Override protected void onResume() { super.onResume(); presenter.queryGroupDetail(targetId); presenter.queryGroupMembers(targetId); if (BaseApplication.Companion.isTeacherClient()) { presenter.groupApplyList(targetId); } } @Override protected TcActivityChatGroupSettingBinding getLayoutView() { return TcActivityChatGroupSettingBinding.inflate(getLayoutInflater()); } @Override protected ChatGroupSettingPresenter createPresenter() { return new ChatGroupSettingPresenter(); } @Override public void onConversation(boolean b) { cb_message.setChecked(b); } @Override public void onGroupUsers(List data, String groupId) { if (!checkActivityExist()) { return; } if (adapter != null && data != null) { adapter.getData().clear(); adapter.setNewInstance(data); tv_group_member_list.setText("查看" + data.size() + "名群成员"); for (int i = 0; i < data.size(); i++) { try { // GroupMemberBean usersBean = data.get(i); // String id = usersBean.getUserId() + ""; // String avatar = usersBean.getAvatar(); // String name = usersBean.getNickname(); } catch (Exception e) { } } } } @Override public void onQueryGroupDetail(IMGroupInfo data) { if (null != data) { if(!TextUtils.isEmpty(data.getImg())){ GlideUtils.INSTANCE.loadImage(this,data.getImg(),iv_portrait); }else{ iv_portrait.setImageResource(ChatGroupHelper.getChatGroupAvatarFromId(data.getId())); } if (!TextUtils.isEmpty(data.getMemberNum())) { tv_class_num.setVisibility(View.VISIBLE); tv_class_num.setText(data.getMemberNum() + "/500"); } else { tv_class_num.setVisibility(View.GONE); } tv_group_name.setText(data.getName()); tv_group_name_remarks.setText(data.getName()); } } @Override public void dissolveChatGroupSuccess() { ToastUtil.getInstance().showShort("解散成功"); JumpUtils.jumpMain(2); } @Override public void groupApplyListSuccess(List data) { if (!checkActivityExist()) { return; } if (tv_group_apply_count == null) { return; } if (data != null && data.size() > 0) { tv_group_apply_count.setText(data.size() + "人"); } else { tv_group_apply_count.setText("0人"); } } @Override public void quitChatGroupSuccess() { if (!checkActivityExist()) { return; } ToastUtil.getInstance().showShort("退出成功"); } @Override public void getGroupInfoSuccess(GroupInfo data) { if (!checkActivityExist()) { return; } mGroupInfo = data; boolean messageReceiveOption = mGroupInfo.getMessageReceiveOption(); LogUtils.i("消息免打扰模式:"+messageReceiveOption); viewBinding.cbMessage.setChecked(messageReceiveOption); } @Override public void setMessageReceiveOption(boolean b) { if (mGroupInfo != null) { mGroupInfo.setMessageReceiveOption(b); } } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == Activity.RESULT_OK) { if (requestCode == REQUEST_GROUP_REMARKS_CODE) { tv_group_name_remarks.setText(data.getStringExtra("remarks")); tv_group_name.setText(data.getStringExtra("remarks")); } } } }