Commit ab663b2d09ef50f3f8575dcd09e4f75519d42ec6

Authored by YangShuai
1 parent d49f39e2

1 完成设置角色逻辑

module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/SetFriendsRoleView.java
@@ -44,7 +44,7 @@ public class SetFriendsRoleView implements MvpView { @@ -44,7 +44,7 @@ public class SetFriendsRoleView implements MvpView {
44 bean.setAllowUse(roleNetBean.getRoleList().get(j).isAllowUse()); 44 bean.setAllowUse(roleNetBean.getRoleList().get(j).isAllowUse());
45 bean.setId(roleNetBean.getRoleList().get(j).getId()); 45 bean.setId(roleNetBean.getRoleList().get(j).getId());
46 bean.setRoleName(roleNetBean.getRoleList().get(j).getRoleName()); 46 bean.setRoleName(roleNetBean.getRoleList().get(j).getRoleName());
47 - bean.setSelectList(new ArrayList<>()); 47 + bean.setParentPosition(i);
48 roleList.add(bean); 48 roleList.add(bean);
49 } 49 }
50 roleInfo.setRoleList(roleList); 50 roleInfo.setRoleList(roleList);
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/model/RoleInfo.java
@@ -12,6 +12,15 @@ public class RoleInfo { @@ -12,6 +12,15 @@ public class RoleInfo {
12 private String userIcon; 12 private String userIcon;
13 private String userName; 13 private String userName;
14 private List<RoleNetBean.RoleListBean> roleList; 14 private List<RoleNetBean.RoleListBean> roleList;
  15 + private String selectId;
  16 +
  17 + public String getSelectId() {
  18 + return selectId;
  19 + }
  20 +
  21 + public void setSelectId(String selectId) {
  22 + this.selectId = selectId;
  23 + }
15 24
16 public List<RoleNetBean.RoleListBean> getRoleList() { 25 public List<RoleNetBean.RoleListBean> getRoleList() {
17 return roleList; 26 return roleList;
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/netWork/bean/RoleNetBean.java
@@ -35,14 +35,14 @@ public class RoleNetBean { @@ -35,14 +35,14 @@ public class RoleNetBean {
35 private boolean allowUse; 35 private boolean allowUse;
36 private int id; 36 private int id;
37 private String roleName; 37 private String roleName;
38 - private List<String> selectList; 38 + private int parentPosition;
39 39
40 - public List<String> getSelectList() {  
41 - return selectList; 40 + public int getParentPosition() {
  41 + return parentPosition;
42 } 42 }
43 43
44 - public void setSelectList(List<String> selectList) {  
45 - this.selectList = selectList; 44 + public void setParentPosition(int parentPosition) {
  45 + this.parentPosition = parentPosition;
46 } 46 }
47 47
48 public boolean isAllowUse() { 48 public boolean isAllowUse() {
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/adapter/AllRoleDetailAdapter.java
@@ -12,6 +12,7 @@ import android.view.ViewGroup; @@ -12,6 +12,7 @@ import android.view.ViewGroup;
12 import com.cnlive.libs.base.util.AlertUtil; 12 import com.cnlive.libs.base.util.AlertUtil;
13 import com.cnlive.strike.xiaojiaspeaker.R; 13 import com.cnlive.strike.xiaojiaspeaker.R;
14 import com.cnlive.strike.xiaojiaspeaker.databinding.ItemListSetRoleCheckBoxBinding; 14 import com.cnlive.strike.xiaojiaspeaker.databinding.ItemListSetRoleCheckBoxBinding;
  15 +import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo;
15 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean; 16 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
16 import com.cnlive.strike.xiaojiaspeaker.util.utilcode.util.GsonUtils; 17 import com.cnlive.strike.xiaojiaspeaker.util.utilcode.util.GsonUtils;
17 18
@@ -48,12 +49,13 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { @@ -48,12 +49,13 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter {
48 //设置名称 49 //设置名称
49 binding.checkBox.setText(allRoleList.get(position).getRoleName()); 50 binding.checkBox.setText(allRoleList.get(position).getRoleName());
50 //设置不可选中的 51 //设置不可选中的
51 - if (null != allRoleList.get(position).getSelectList()) {  
52 - if (allRoleList.get(position).getSelectList().contains(allRoleList.get(position).getId() + "")) {  
53 - binding.checkBox.setChecked(true);  
54 - } else {  
55 - binding.checkBox.setChecked(false);  
56 - } 52 + List<RoleInfo> roleInfoList = setRoleAdapter.getRoleInfoList();
  53 + String selectId = roleInfoList.get(allRoleList.get(position).getParentPosition()).getSelectId();
  54 + if (null == selectId) {
  55 + selectId = "";
  56 + }
  57 + if (selectId.contains(allRoleList.get(position).getId() + "")) {
  58 + binding.checkBox.setChecked(true);
57 } else { 59 } else {
58 binding.checkBox.setChecked(false); 60 binding.checkBox.setChecked(false);
59 } 61 }
@@ -90,7 +92,10 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { @@ -90,7 +92,10 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter {
90 public void onClick(View view) { 92 public void onClick(View view) {
91 if (view.getId() == R.id.ll_root) { 93 if (view.getId() == R.id.ll_root) {
92 int position = getAdapterPosition(); 94 int position = getAdapterPosition();
93 - List<String> selectList = allRoleList.get(position).getSelectList(); 95 + String selectId = setRoleAdapter.getRoleInfoList().get(allRoleList.get(position).getParentPosition()).getSelectId();
  96 + if (null == selectId) {
  97 + selectId = "";
  98 + }
94 String currentRoleId = allRoleList.get(position).getId() + ""; 99 String currentRoleId = allRoleList.get(position).getId() + "";
95 //先判断是否是后台初始传过来的 100 //先判断是否是后台初始传过来的
96 if (setRoleAdapter.getInitNotAllowRoleId().contains(currentRoleId)) { 101 if (setRoleAdapter.getInitNotAllowRoleId().contains(currentRoleId)) {
@@ -99,7 +104,7 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { @@ -99,7 +104,7 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter {
99 } 104 }
100 //判断点击这个东西在不在已存储的集合中 105 //判断点击这个东西在不在已存储的集合中
101 if (!allowSelectMap.get(currentRoleId)) { 106 if (!allowSelectMap.get(currentRoleId)) {
102 - if (!selectList.contains(currentRoleId)) { 107 + if (!selectId.equals(currentRoleId)) {
103 AlertUtil.showDeftToast(context, "该角色已占用!"); 108 AlertUtil.showDeftToast(context, "该角色已占用!");
104 return; 109 return;
105 } 110 }
@@ -108,13 +113,13 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { @@ -108,13 +113,13 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter {
108 //开始设置全局状态 113 //开始设置全局状态
109 if (binding.checkBox.isChecked()) { 114 if (binding.checkBox.isChecked()) {
110 //添加到选中的集合 115 //添加到选中的集合
111 - if (!selectList.contains(currentRoleId)) {  
112 - selectList.add(currentRoleId); 116 + if (!selectId.equals(currentRoleId)) {
  117 + //重置状态
  118 + allowSelectMap.put(selectId, true);
  119 + setRoleAdapter.getRoleInfoList().get(allRoleList.get(position).getParentPosition()).setSelectId(currentRoleId);
113 } 120 }
114 } else { 121 } else {
115 - if (selectList.contains(currentRoleId)) {  
116 - selectList.remove(currentRoleId);  
117 - } 122 + setRoleAdapter.getRoleInfoList().get(allRoleList.get(position).getParentPosition()).setSelectId("");
118 } 123 }
119 //设置全局不允许选择 124 //设置全局不允许选择
120 allowSelectMap.put(currentRoleId, !binding.checkBox.isChecked()); 125 allowSelectMap.put(currentRoleId, !binding.checkBox.isChecked());
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/adapter/SetRoleAdapter.java
@@ -25,6 +25,10 @@ public class SetRoleAdapter extends RecyclerView.Adapter { @@ -25,6 +25,10 @@ public class SetRoleAdapter extends RecyclerView.Adapter {
25 private AllRoleDetailAdapter adapter; 25 private AllRoleDetailAdapter adapter;
26 private List<Integer> initNotAllowRoleId;//服务器初始给的不允许点击的值 26 private List<Integer> initNotAllowRoleId;//服务器初始给的不允许点击的值
27 27
  28 + public List<RoleInfo> getRoleInfoList() {
  29 + return roleInfoList;
  30 + }
  31 +
28 public Map<String, Boolean> getAllowSelectMap() { 32 public Map<String, Boolean> getAllowSelectMap() {
29 return allowSelectMap; 33 return allowSelectMap;
30 } 34 }