Files
Android-WaterProject/app/src/main/java/com/ckkj/water/plan/BindDeviceFragment.java

217 lines
6.4 KiB
Java

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<PlanBindDeviceLayoutBinding, WaterPlanPresenter>
implements WaterPlanContract.WaterPlanView {
private List<WaterPlanWeekEntity> weekList = new ArrayList<>();
private List<WaterDeviceEntity.DeviceListBean> 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<String> 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<Integer> selectedPositions = mAdapter.getSelectedPositions();
// List<WaterPlanWeekEntity.DeviceEntity> 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<WaterPlanWeekEntity> 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) {
}
}