package com.ckkj.water.plan; import android.os.Bundle; import android.os.Handler; import android.view.View; import com.chad.library.adapter.base.BaseQuickAdapter; import com.ckkj.water.R; import com.ckkj.water.base.BaseFragment; import com.ckkj.water.databinding.PlanBindDeviceLayoutBinding; import com.ckkj.water.index.entity.WaterDeviceEntity; import com.ckkj.water.network.BaseBean; //import com.ckkj.water.plan.adapter.BindDeviceAdapter; import com.ckkj.water.plan.adapter.BindDeviceAdapter; import com.ckkj.water.plan.entity.WaterPlanWeekEntity; import com.ckkj.water.plan.mvp.WaterPlanContract; import com.ckkj.water.plan.mvp.WaterPlanImpl; import com.ckkj.water.plan.mvp.WaterPlanPresenter; import com.ckkj.water.utils.show.ToastUtil; import java.util.ArrayList; import java.util.List; /** * 排程关联设备 */ public class BindDeviceFragment extends BaseFragment implements WaterPlanContract.WaterPlanView { private List weekList = new ArrayList<>(); private List mDeviceList = new ArrayList<>(); private WaterPlanWeekEntity mPlanEntity; private BindDeviceAdapter mAdapter; @Override public void initData(Bundle state) { initListener(); mAdapter = new BindDeviceAdapter(mContext,R.layout.plan_bind_device_item,mDeviceList); viewBinding.rvDevices.setAdapter(mAdapter); mAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { @Override public void onItemClick(BaseQuickAdapter adapter, View view, int position) { mAdapter.toggleSelection(position); if(mDeviceList.get(position).getStatus().equals("0")){ mDeviceList.get(position).setStatus("1"); }else{ mDeviceList.get(position).setStatus("0"); } } }); if (mPlanEntity != null) { mPresenter.getPlanBindDevices(mPlanEntity); } } private void initListener() { setClick(viewBinding.tvCommit); } private void setClick(View view) { view.setOnClickListener(this::onClick); } public void onClick(View v){ switch (v.getId()){ case R.id.tv_commit: if (mPlanEntity == null) { ToastUtil.showShort(mContext, "请先保存排程"); return; } boolean isSelected = false; List selected = new ArrayList<>(); for(WaterDeviceEntity.DeviceListBean bean : mDeviceList){ if(bean.getStatus().equals("1")){ isSelected = true; selected.add(bean.getDeviceNo()); } } if(!isSelected){ ToastUtil.showShort(mContext, getString(R.string.select_the_device_to_link)); return; } String selDevice = ""; for(String id : selected){ selDevice += id + ","; } selDevice = selDevice.substring(0,selDevice.length()-1); //提交绑定 mPresenter.planBindWithDevices(mPlanEntity,selDevice); break; } } @Override protected void onResumeInitData() { super.onResumeInitData(); } /** * 设置排程实体,用于关联设备接口请求 * @param entity 排程实体 */ public void setPlanEntity(WaterPlanWeekEntity entity) { this.mPlanEntity = entity; if (mPlanEntity != null) { if(mPresenter != null){ mPresenter.getPlanBindDevices(mPlanEntity); } } } /** * 查询到了可绑定的设备 * @param bean */ @Override public void getPlanBindDeviceList(WaterDeviceEntity bean) { hideDialogLoading(); if(mAdapter != null){ mDeviceList = bean.getDeviceList(); mAdapter.setNewData(mDeviceList); if (mAdapter.getItemCount() != 0) { viewBinding.relNoresult.setVisibility(View.GONE); viewBinding.linearContent.setVisibility(View.VISIBLE); } else { viewBinding.relNoresult.setVisibility(View.VISIBLE); viewBinding.linearContent.setVisibility(View.GONE); } } } @Override public void planBindDeviceSuccess(BaseBean bean) { hideDialogLoading(); ToastUtil.showShort(mContext, "绑定成功"); new Handler().postDelayed(new Runnable() { @Override public void run() { if (getActivity() instanceof AddWaterPlanActivity) { ((AddWaterPlanActivity) getActivity()).finish(); } } },800); } @Override public void deletePlanSuccess(BaseBean bean) { } @Override public void planUnbindDeviceSuccess(BaseBean bean, int position) { } // private void syncSelectedDevices() { // Set selectedPositions = mAdapter.getSelectedPositions(); // List selected = new ArrayList<>(); // for (int pos : selectedPositions) { // if (pos >= 0 && pos < weekList.get(0).getDeviceList().size()) { // selected.add(weekList.get(0).getDeviceList().get(pos)); // } // } // if (getActivity() instanceof AddWaterPlanActivity) { // ((AddWaterPlanActivity) getActivity()).setSelectedDevices(selected); // } // } @Override public WaterPlanPresenter createPresenter() { return new WaterPlanPresenter(new WaterPlanImpl()); } @Override public void onNetChange(int netModel) { } @Override public void showError(String message) { } @Override public void logOut(BaseBean bean) { } @Override public void getWaterConfigListSuccess(List list,int total) { } @Override public void saveConfigSuccess(WaterPlanWeekEntity entity) { } @Override public void updateConfigSuccess(WaterPlanWeekEntity entity) { } @Override public void updatePlanStatusSuccess(BaseBean bean, String status) { } @Override public void getPlanDetailInfo(WaterPlanWeekEntity entity) { } }