package com.lqr.wechat.ui.activity; import android.app.Activity; import android.content.Intent; import android.text.TextUtils; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.ImageView; import com.bumptech.glide.Glide; import com.lqr.adapter.LQRAdapterForRecyclerView; import com.lqr.adapter.LQRViewHolderForRecyclerView; import com.lqr.recyclerview.LQRRecyclerView; import com.lqr.wechat.R; import com.lqr.wechat.db.DBManager; import com.lqr.wechat.db.model.GroupMember; import com.lqr.wechat.model.cache.UserCache; import com.lqr.wechat.ui.base.BaseActivity; import com.lqr.wechat.ui.base.BasePresenter; import com.lqr.wechat.util.UIUtils; import java.util.ArrayList; import java.util.List; import butterknife.Bind; import io.rong.imlib.model.UserInfo; /** * @创建者 CSDN_LQR * @描述 移出群成员界面(该界面简单就不使用mvp了) */ public class RemoveGroupMemberActivity extends BaseActivity { private String mGroupId; private List<GroupMember> mData = new ArrayList<>(); private List<GroupMember> mSelectedData = new ArrayList<>(); @Bind(R.id.btnToolbarSend) Button mBtnToolbarSend; @Bind(R.id.rvMember) LQRRecyclerView mRvMember; private LQRAdapterForRecyclerView<GroupMember> mAdapter; @Override public void init() { mGroupId = getIntent().getStringExtra("sessionId"); } @Override public void initView() { if (TextUtils.isEmpty(mGroupId)) { finish(); return; } mBtnToolbarSend.setText(UIUtils.getString(R.string.delete)); mBtnToolbarSend.setVisibility(View.VISIBLE); mBtnToolbarSend.setBackgroundResource(R.drawable.shape_btn_delete); mBtnToolbarSend.setEnabled(false); } @Override public void initData() { List<GroupMember> groupMembers = DBManager.getInstance().getGroupMembers(mGroupId); if (groupMembers != null && groupMembers.size() > 0) { for (int i = 0; i < groupMembers.size(); i++) { GroupMember groupMember = groupMembers.get(i); if (groupMember.getUserId().equals(UserCache.getId())) { groupMembers.remove(i); break; } } mData.clear(); mData.addAll(groupMembers); } setAdapter(); } @Override public void initListener() { mBtnToolbarSend.setOnClickListener(v -> { ArrayList<String> selectedIds = new ArrayList<>(mSelectedData.size()); for (int i = 0; i < mSelectedData.size(); i++) { GroupMember groupMember = mSelectedData.get(i); selectedIds.add(groupMember.getUserId()); } Intent data = new Intent(); data.putStringArrayListExtra("selectedIds", selectedIds); setResult(Activity.RESULT_OK, data); finish(); }); } private void setAdapter() { if (mAdapter == null) { mAdapter = new LQRAdapterForRecyclerView<GroupMember>(this, mData, R.layout.item_contact) { @Override public void convert(LQRViewHolderForRecyclerView helper, GroupMember item, int position) { helper.setText(R.id.tvName, item.getName()).setViewVisibility(R.id.cb, View.VISIBLE); ImageView ivHeader = helper.getView(R.id.ivHeader); Glide.with(RemoveGroupMemberActivity.this).load(item.getPortraitUri()).centerCrop().into(ivHeader); CheckBox cb = helper.getView(R.id.cb); cb.setClickable(true); cb.setChecked(mSelectedData.contains(item) ? true : false); cb.setOnClickListener(v -> { if (cb.isChecked()) { mSelectedData.add(item); } else { mSelectedData.remove(item); } if (mSelectedData.size() > 0) { mBtnToolbarSend.setEnabled(true); mBtnToolbarSend.setText(UIUtils.getString(R.string.delete) + "(" + mSelectedData.size() + ")"); } else { mBtnToolbarSend.setEnabled(false); mBtnToolbarSend.setText(UIUtils.getString(R.string.delete)); } }); } }; mAdapter.setOnItemClickListener((helper, parent, itemView, position) -> { UserInfo userInfo = DBManager.getInstance().getUserInfo(mData.get(position).getUserId()); if (userInfo != null) { Intent intent = new Intent(RemoveGroupMemberActivity.this, UserInfoActivity.class); intent.putExtra("userInfo", userInfo); jumpToActivity(intent); } }); mRvMember.setAdapter(mAdapter); } else { mAdapter.notifyDataSetChangedWrapper(); } } @Override protected BasePresenter createPresenter() { return null; } @Override protected int provideContentViewId() { return R.layout.activity_remove_group_member; } }