|
@@ -15,8 +15,8 @@ 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.bean.StudentPageListBean;
|
|
|
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;
|
|
@@ -36,6 +36,7 @@ import com.cooleshow.chatmodule.databinding.TcActivityChatGroupSettingBinding;
|
|
|
import com.cooleshow.chatmodule.presenter.ChatGroupSettingPresenter;
|
|
|
import com.cooleshow.chatmodule.utils.helper.ChatGroupHelper;
|
|
|
import com.cooleshow.chatmodule.utils.helper.IMThemManager;
|
|
|
+import com.cooleshow.usercenter.helper.UserHelper;
|
|
|
import com.tencent.qcloud.tuicore.TUICore;
|
|
|
import com.tencent.qcloud.tuikit.tuigroup.bean.GroupInfo;
|
|
|
|
|
@@ -45,6 +46,7 @@ import java.util.List;
|
|
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
import androidx.annotation.Nullable;
|
|
|
+import androidx.recyclerview.widget.GridLayoutManager;
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
|
|
|
@@ -58,6 +60,12 @@ import androidx.recyclerview.widget.RecyclerView;
|
|
|
public class ChatGroupSettingActivity extends BaseMVPActivity<TcActivityChatGroupSettingBinding, ChatGroupSettingPresenter> implements ChatGroupSettingContract.ChatGroupSettingView, View.OnClickListener {
|
|
|
private final int REQUEST_GROUP_REMARKS_CODE = 100;
|
|
|
|
|
|
+ public static final int REQUEST_CODE_SELECT = 10001;
|
|
|
+
|
|
|
+ private final int MAX_SHOW_GROUP_MEMBER_COUNT = 5;
|
|
|
+
|
|
|
+ private boolean isCanAddMember = false;
|
|
|
+
|
|
|
@Override
|
|
|
public void onClick(View view) {
|
|
|
if (view.getId() == R.id.ll_history_message) {
|
|
@@ -71,9 +79,9 @@ public class ChatGroupSettingActivity extends BaseMVPActivity<TcActivityChatGrou
|
|
|
// .navigation(this, REQUEST_GROUP_REMARKS_CODE);
|
|
|
} else if (view.getId() == R.id.tv_group_member_list) {
|
|
|
//查看联系人
|
|
|
- if (adapter != null) {
|
|
|
+ if (mAdapter != null) {
|
|
|
ARouter.getInstance().build(TCChatRouterPath.CHAT_GROUP_MEMBER)
|
|
|
- .withSerializable("list", (Serializable) adapter.getData())
|
|
|
+ .withSerializable("list", (Serializable) mAdapter.getData())
|
|
|
.navigation();
|
|
|
}
|
|
|
} else if (view.getId() == R.id.tv_group_apply_count) {
|
|
@@ -161,7 +169,7 @@ public class ChatGroupSettingActivity extends BaseMVPActivity<TcActivityChatGrou
|
|
|
private TextView tv_group_apply_count;
|
|
|
private TextView tv_group_name_remarks;
|
|
|
private CheckBox cb_message;
|
|
|
- GroupSettingMemberAdapter adapter;
|
|
|
+ GroupSettingMemberAdapter mAdapter;
|
|
|
private GroupInfo mGroupInfo;
|
|
|
|
|
|
@Override
|
|
@@ -202,21 +210,19 @@ public class ChatGroupSettingActivity extends BaseMVPActivity<TcActivityChatGrou
|
|
|
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() {
|
|
|
+ GridLayoutManager gridLayoutManager = new GridLayoutManager(this, MAX_SHOW_GROUP_MEMBER_COUNT);
|
|
|
+ recyclerView.setLayoutManager(gridLayoutManager);
|
|
|
+ mAdapter = new GroupSettingMemberAdapter();
|
|
|
+ recyclerView.setAdapter(mAdapter);
|
|
|
+ mAdapter.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());
|
|
|
-
|
|
|
+ if (position < mAdapter.getData().size()) {
|
|
|
+ GroupMemberBean rowsBean = mAdapter.getData().get(position);
|
|
|
+ if (rowsBean.getItemType() == GroupSettingMemberAdapter.ADD_TYPE) {
|
|
|
+ goSelectContact();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
|
|
@@ -256,13 +262,17 @@ public class ChatGroupSettingActivity extends BaseMVPActivity<TcActivityChatGrou
|
|
|
@Override
|
|
|
protected void onResume() {
|
|
|
super.onResume();
|
|
|
- presenter.queryGroupDetail(targetId);
|
|
|
- presenter.queryGroupMembers(targetId);
|
|
|
+ refresh();
|
|
|
if (BaseApplication.Companion.isTeacherClient()) {
|
|
|
presenter.groupApplyList(targetId);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void goSelectContact() {
|
|
|
+ ARouter.getInstance().build(RouterPath.MineCenter.SELECT_TENANT_MEMBER)
|
|
|
+ .navigation(this, REQUEST_CODE_SELECT);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
protected TcActivityChatGroupSettingBinding getLayoutView() {
|
|
|
return TcActivityChatGroupSettingBinding.inflate(getLayoutInflater());
|
|
@@ -283,7 +293,7 @@ public class ChatGroupSettingActivity extends BaseMVPActivity<TcActivityChatGrou
|
|
|
if (!checkActivityExist()) {
|
|
|
return;
|
|
|
}
|
|
|
- if (adapter != null && data != null) {
|
|
|
+ if (mAdapter != null && data != null) {
|
|
|
List<GroupMemberBean> result = new ArrayList<>();
|
|
|
for (int i = 0; i < data.size(); i++) {
|
|
|
GroupMemberBean groupMemberBean = data.get(i);
|
|
@@ -293,18 +303,22 @@ public class ChatGroupSettingActivity extends BaseMVPActivity<TcActivityChatGrou
|
|
|
result.add(groupMemberBean);
|
|
|
}
|
|
|
}
|
|
|
- adapter.getData().clear();
|
|
|
- adapter.setNewInstance(result);
|
|
|
tv_group_member_list.setText("查看" + result.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) {
|
|
|
+
|
|
|
+ int countLimit = isCanAddMember ? MAX_SHOW_GROUP_MEMBER_COUNT - 1 : MAX_SHOW_GROUP_MEMBER_COUNT;
|
|
|
+ ArrayList<GroupMemberBean> list = new ArrayList();
|
|
|
+ for (int i = 0; i < result.size(); i++) {
|
|
|
+ if (list.size() >= countLimit) {
|
|
|
+ break;
|
|
|
}
|
|
|
+ list.add(result.get(i));
|
|
|
+ }
|
|
|
+ if (isCanAddMember) {
|
|
|
+ GroupMemberBean addBean = new GroupMemberBean();
|
|
|
+ addBean.setItemType(GroupSettingMemberAdapter.ADD_TYPE);
|
|
|
+ list.add(addBean);
|
|
|
}
|
|
|
+ mAdapter.setNewInstance(list);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -324,9 +338,18 @@ public class ChatGroupSettingActivity extends BaseMVPActivity<TcActivityChatGrou
|
|
|
}
|
|
|
tv_group_name.setText(data.getName());
|
|
|
tv_group_name_remarks.setText(data.getName());
|
|
|
+
|
|
|
+ checkTeacherCanAddMember(data.getType());
|
|
|
+
|
|
|
+ presenter.queryGroupMembers(targetId);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void checkTeacherCanAddMember(String type) {
|
|
|
+ String tenantId = UserHelper.getTenantId();
|
|
|
+ isCanAddMember = UserHelper.isTenantAccount(tenantId) && TextUtils.equals(type, CreateGroupActivity.GROUP_TYPE_ORG);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void dissolveChatGroupSuccess() {
|
|
|
ToastUtil.getInstance().showShort("解散成功");
|
|
@@ -375,12 +398,39 @@ public class ChatGroupSettingActivity extends BaseMVPActivity<TcActivityChatGrou
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public void addGroupMemberSuccess(Object data) {
|
|
|
+ if (!checkActivityExist()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ ToastUtil.getInstance().showShort("添加成功");
|
|
|
+ refresh();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void refresh() {
|
|
|
+ presenter.queryGroupDetail(targetId);
|
|
|
+ }
|
|
|
+
|
|
|
+ @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"));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (requestCode == REQUEST_CODE_SELECT) {
|
|
|
+ if (data != null) {
|
|
|
+ ArrayList<StudentPageListBean.RowsBean> selectMembers = data.getParcelableArrayListExtra("result");
|
|
|
+ if (selectMembers != null && selectMembers.size() > 0) {
|
|
|
+ ArrayList<String> result = new ArrayList<>();
|
|
|
+ for (int i = 0; i < selectMembers.size(); i++) {
|
|
|
+ result.add(selectMembers.get(i).getUserId());
|
|
|
+ }
|
|
|
+ presenter.addGroupMembers(targetId, result);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|