CreateGroupActivity.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. package com.cooleshow.chatmodule.ui;
  2. import android.content.Intent;
  3. import android.os.Bundle;
  4. import android.text.TextUtils;
  5. import android.view.View;
  6. import android.widget.RadioGroup;
  7. import com.alibaba.android.arouter.facade.annotation.Route;
  8. import com.alibaba.android.arouter.launcher.ARouter;
  9. import com.cooleshow.base.bean.StudentPageListBean;
  10. import com.cooleshow.base.router.RouterPath;
  11. import com.cooleshow.base.ui.activity.BaseMVPActivity;
  12. import com.cooleshow.base.utils.ToastUtil;
  13. import com.cooleshow.base.utils.UiUtils;
  14. import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
  15. import com.cooleshow.chatmodule.R;
  16. import com.cooleshow.chatmodule.adapter.CreateGroupMemberAdapter;
  17. import com.cooleshow.chatmodule.constants.TCChatRouterPath;
  18. import com.cooleshow.chatmodule.contract.CreateGroupContract;
  19. import com.cooleshow.chatmodule.databinding.TcActivityCreateGroupBinding;
  20. import com.cooleshow.chatmodule.presenter.CreateGroupPresenter;
  21. import com.cooleshow.usercenter.constants.UserConstants;
  22. import com.cooleshow.usercenter.helper.UserHelper;
  23. import java.util.ArrayList;
  24. import java.util.List;
  25. import androidx.annotation.NonNull;
  26. import androidx.annotation.Nullable;
  27. import androidx.recyclerview.widget.LinearLayoutManager;
  28. /**
  29. * 创建日期:2022/6/10 17:23
  30. *
  31. * @author Ryan
  32. * 类说明:
  33. */
  34. @Route(path = TCChatRouterPath.CHAT_CREATE_GROUP)
  35. public class CreateGroupActivity extends BaseMVPActivity<TcActivityCreateGroupBinding, CreateGroupPresenter> implements CreateGroupContract.CreateGroupView, View.OnClickListener {
  36. public static final int REQUEST_CODE_SELECT = 10001;
  37. public static final String GROUP_TYPE_FAN = "FAN";
  38. public static final String GROUP_TYPE_ORG = "ORG";
  39. private CreateGroupMemberAdapter mMemberAdapter;
  40. private String groupType = GROUP_TYPE_FAN;
  41. private ArrayList<String> memberListResult = null;
  42. private String currentUserId;
  43. @Override
  44. public void onClick(View view) {
  45. int id = view.getId();
  46. if (id == R.id.tv_create) {
  47. if (UiUtils.isFastClick(3000)) {
  48. return;
  49. }
  50. String groupName = viewBinding.etGroupName.getText().toString().trim();
  51. if (TextUtils.isEmpty(groupName)) {
  52. ToastUtil.getInstance().showShort("请输入群聊名称");
  53. return;
  54. }
  55. if (!checkTenantCondition()) {
  56. return;
  57. }
  58. String introduction = viewBinding.etIntroduction.getText().toString().trim();
  59. presenter.createGroup(groupName, introduction, groupType, memberListResult);
  60. }
  61. if (id == R.id.tv_add_members) {
  62. ArrayList<StudentPageListBean.RowsBean> cList = new ArrayList<>(mMemberAdapter.getData());
  63. ARouter.getInstance().build(RouterPath.MineCenter.SELECT_TENANT_MEMBER)
  64. .withParcelableArrayList("list", cList)
  65. .navigation(this, REQUEST_CODE_SELECT);
  66. return;
  67. }
  68. }
  69. private boolean checkTenantCondition() {
  70. String tenantId = UserHelper.getTenantId();
  71. if (!UserHelper.isTenantAccount(tenantId)) {
  72. return true;
  73. }
  74. int checkId = viewBinding.rgGroupType.getCheckedRadioButtonId();
  75. if (checkId == -1) {
  76. ToastUtil.getInstance().showShort("请选择需要创建的群类型");
  77. return false;
  78. }
  79. if (checkId == R.id.rb_jg_group_type) {
  80. groupType = GROUP_TYPE_ORG;
  81. } else {
  82. groupType = GROUP_TYPE_FAN;
  83. }
  84. if (groupType == GROUP_TYPE_ORG) {
  85. List<StudentPageListBean.RowsBean> data = mMemberAdapter.getData();
  86. memberListResult = new ArrayList<>();
  87. for (int i = data.size() - 1; i >= 0; i--) {
  88. StudentPageListBean.RowsBean rowsBean = data.get(i);
  89. memberListResult.add(rowsBean.getImUserId());
  90. }
  91. }
  92. return true;
  93. }
  94. @Override
  95. protected void onCreate(@Nullable Bundle savedInstanceState) {
  96. super.onCreate(savedInstanceState);
  97. QMUIStatusBarHelper.setStatusBarLightMode(this);
  98. }
  99. @Override
  100. protected void initView() {
  101. initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "创建群聊");
  102. viewBinding.tvCreate.setOnClickListener(this);
  103. viewBinding.tvAddMembers.setOnClickListener(this);
  104. }
  105. @Override
  106. public void initData() {
  107. super.initData();
  108. currentUserId = UserHelper.getImUserId();
  109. String tenantId = UserHelper.getTenantId();
  110. if (UserHelper.isTenantAccount(tenantId)) {
  111. viewBinding.csGroupType.setVisibility(View.VISIBLE);
  112. viewBinding.csMember.setVisibility(View.VISIBLE);
  113. }
  114. mMemberAdapter = new CreateGroupMemberAdapter("");
  115. viewBinding.recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
  116. viewBinding.recyclerView.setAdapter(mMemberAdapter);
  117. initListener();
  118. }
  119. private void initListener() {
  120. viewBinding.rgGroupType.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
  121. @Override
  122. public void onCheckedChanged(RadioGroup group, int checkedId) {
  123. viewBinding.csMember.setVisibility(checkedId == viewBinding.rbJgGroupType.getId() ? View.VISIBLE : View.GONE);
  124. }
  125. });
  126. }
  127. @NonNull
  128. private ArrayList<StudentPageListBean.RowsBean> getOwnerData() {
  129. StudentPageListBean.RowsBean rowsBean = new StudentPageListBean.RowsBean();
  130. rowsBean.setUserId(UserHelper.getImUserId());
  131. rowsBean.setAvatar(UserHelper.getUserAvatar());
  132. rowsBean.setUsername(UserHelper.getUserName());
  133. ArrayList<StudentPageListBean.RowsBean> list = new ArrayList();
  134. list.add(rowsBean);
  135. return list;
  136. }
  137. @Override
  138. protected TcActivityCreateGroupBinding getLayoutView() {
  139. return TcActivityCreateGroupBinding.inflate(getLayoutInflater());
  140. }
  141. @Override
  142. protected CreateGroupPresenter createPresenter() {
  143. return new CreateGroupPresenter();
  144. }
  145. @Override
  146. public void createImGroupSuccess() {
  147. ToastUtil.getInstance().showShort("创建成功");
  148. finish();
  149. }
  150. @Override
  151. protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
  152. super.onActivityResult(requestCode, resultCode, data);
  153. if (resultCode == RESULT_OK) {
  154. if (requestCode == REQUEST_CODE_SELECT) {
  155. assert data != null;
  156. ArrayList<StudentPageListBean.RowsBean> selectMembers = data.getParcelableArrayListExtra("result");
  157. if (selectMembers != null) {
  158. if (selectMembers.size() > 0) {
  159. viewBinding.recyclerView.setVisibility(View.VISIBLE);
  160. } else {
  161. viewBinding.recyclerView.setVisibility(View.GONE);
  162. }
  163. if (mMemberAdapter != null) {
  164. mMemberAdapter.setList(selectMembers);
  165. }
  166. }
  167. }
  168. }
  169. }
  170. }