Commit ab663b2d09ef50f3f8575dcd09e4f75519d42ec6
1 parent
d49f39e2
1 完成设置角色逻辑
Showing
5 changed files
with
37 additions
and
19 deletions
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 | } |