248 lines
8.4 KiB
Java
248 lines
8.4 KiB
Java
package com.ckkj.water.plan;
|
|
|
|
import android.os.Bundle;
|
|
import android.text.Editable;
|
|
import android.text.TextUtils;
|
|
import android.text.TextWatcher;
|
|
import android.view.View;
|
|
|
|
import com.bigkoo.pickerview.builder.TimePickerBuilder;
|
|
import com.bigkoo.pickerview.listener.OnTimeSelectListener;
|
|
import com.bigkoo.pickerview.view.TimePickerView;
|
|
import com.chad.library.adapter.base.BaseQuickAdapter;
|
|
import com.ckkj.water.R;
|
|
import com.ckkj.water.base.BaseActivity;
|
|
import com.ckkj.water.base.BaseFragment;
|
|
import com.ckkj.water.databinding.WaterConfigFragmentLayoutBinding;
|
|
import com.ckkj.water.network.BaseBean;
|
|
import com.ckkj.water.plan.adapter.WaterPlanWeekAdapter;
|
|
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 com.ckkj.water.utils.text.TextUtil;
|
|
import com.ckkj.water.utils.time.ZYTimeUtils;
|
|
import com.google.gson.Gson;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* 配置信息页面
|
|
*/
|
|
public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutBinding, WaterPlanPresenter>
|
|
implements WaterPlanContract.WaterPlanView {
|
|
private List<WaterPlanWeekEntity.DetailsBean> mConfigList = new ArrayList<>();
|
|
|
|
private WaterPlanWeekEntity mConfigEntity;
|
|
private WaterPlanWeekAdapter mWeekAdapter;
|
|
private String mPlanName = "";
|
|
public static boolean isConfigSave;
|
|
|
|
|
|
@Override
|
|
public void initData(Bundle state) {
|
|
mConfigEntity = new WaterPlanWeekEntity();
|
|
List<WaterPlanWeekEntity.DetailsBean> list = new ArrayList<>();
|
|
for(int i = 0; i < 7; i++){
|
|
WaterPlanWeekEntity.DetailsBean bean = new WaterPlanWeekEntity.DetailsBean();
|
|
bean.setWeekday(i + 1);
|
|
bean.setStatus("0");
|
|
bean.setWeekName(ZYTimeUtils.getWeekName(i));
|
|
list.add(bean);
|
|
}
|
|
mConfigEntity.setDetails(list);
|
|
mWeekAdapter = new WaterPlanWeekAdapter(mContext,R.layout.plan_week_config_item, mConfigEntity.getDetails());
|
|
viewBinding.rvWeekConfig.setAdapter(mWeekAdapter);
|
|
initListener();
|
|
}
|
|
|
|
private void initListener() {
|
|
setClick(viewBinding.tvCommit);
|
|
mWeekAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
|
|
@Override
|
|
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
|
|
switch (view.getId()){
|
|
case R.id.linear_week://选中
|
|
case R.id.checkbox:
|
|
if(mConfigEntity.getDetails().get(position).getStatus().equals("1")){
|
|
mConfigEntity.getDetails().get(position).setStatus("0");
|
|
}else{
|
|
mConfigEntity.getDetails().get(position).setStatus("1");
|
|
}
|
|
mWeekAdapter.notifyItemChanged(position);
|
|
break;
|
|
|
|
case R.id.tv_select_time:
|
|
selectStartTime(position);
|
|
break;
|
|
|
|
case R.id.tv_plan_duration:
|
|
inputDuration(position);
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
|
|
viewBinding.etPlanName.addTextChangedListener(new TextWatcher() {
|
|
@Override
|
|
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
|
|
|
|
@Override
|
|
public void onTextChanged(CharSequence s, int start, int before, int count) {}
|
|
|
|
@Override
|
|
public void afterTextChanged(Editable s) {
|
|
if(!TextUtils.isEmpty(s.toString())){
|
|
mPlanName = s.toString();
|
|
mConfigEntity.setName(s.toString());
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
public void onClick(View v){
|
|
switch (v.getId()){
|
|
case R.id.tv_commit:
|
|
if(checkConfigFinish()){
|
|
mPresenter.saveConfig(mConfigEntity);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
public void commitConfig(){
|
|
if(checkConfigFinish()){
|
|
mPresenter.saveConfig(mConfigEntity);
|
|
}
|
|
}
|
|
|
|
private void inputDuration(int position) {
|
|
showEditDialog(getString(R.string.device_work_times_title),
|
|
getString(R.string.input_water_plan_time),
|
|
mConfigEntity.getDetails().get(position).getDurationMin() == 0 ?
|
|
"" : mConfigEntity.getDetails().get(position).getDurationMin() + "",
|
|
true,
|
|
getString(R.string.cancel_text),
|
|
getString(R.string.confirm_text),
|
|
BaseFragment.INPUT_TYPE_NUMBER,
|
|
new BaseActivity.OnDialogClick() {
|
|
@Override
|
|
public void onCancelClick() {
|
|
}
|
|
|
|
@Override
|
|
public void onConfirmClisk() {
|
|
}
|
|
|
|
@Override
|
|
public void onConfirmClisk(String content) {
|
|
if(Integer.parseInt(content) <= 0){
|
|
ToastUtil.showShort(mContext, getString(R.string.input_water_plan_time_error));
|
|
return;
|
|
}
|
|
mConfigEntity.getDetails().get(position).setDurationMin(Integer.parseInt(content));
|
|
mWeekAdapter.notifyItemChanged(position);
|
|
}
|
|
|
|
@Override
|
|
public void onView1Click() {
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
private void selectStartTime(int position) {
|
|
boolean times[] = {false, false, false, true, true, false};
|
|
//时间选择器
|
|
TimePickerView pvTime = new TimePickerBuilder(mContext, new OnTimeSelectListener() {
|
|
@Override
|
|
public void onTimeSelect(Date date, View v) {
|
|
//用于提交接口
|
|
mConfigEntity.getDetails().get(position).setStartTime(ZYTimeUtils.getStrTimeData(date));
|
|
mWeekAdapter.notifyItemChanged(position);
|
|
}
|
|
}).setType(times)
|
|
.setCancelColor(mContext.getColor(R.color.color_999999))
|
|
.setSubmitColor(mContext.getColor(R.color.color_zhu))
|
|
.setTextColorCenter(mContext.getColor(R.color.color_zhu))
|
|
.build();
|
|
pvTime.show();
|
|
}
|
|
|
|
private void setClick(View view) {
|
|
view.setOnClickListener(this::onClick);
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 检查配置信息是否完成
|
|
* @return
|
|
*/
|
|
public boolean checkConfigFinish() {
|
|
if(TextUtils.isEmpty(viewBinding.etPlanName.getText().toString())){
|
|
ToastUtil.showShort(mContext,getString(R.string.plan_name_text_empty_hint));
|
|
return false;
|
|
}
|
|
List<WaterPlanWeekEntity.DetailsBean> list = mConfigEntity.getDetails();
|
|
//是否勾选了排程日期
|
|
boolean isSelectOne = false;
|
|
if(list != null){
|
|
for(WaterPlanWeekEntity.DetailsBean bean : list){
|
|
if(bean.getStatus().equals("1")){
|
|
isSelectOne = true;
|
|
}
|
|
}
|
|
}
|
|
if(!isSelectOne){
|
|
ToastUtil.showShort(mContext,getString(R.string.plan_week_empty_hint));
|
|
return false;
|
|
}
|
|
//是否配置了排程日期的时间
|
|
boolean isPlanConfig = false;
|
|
for(WaterPlanWeekEntity.DetailsBean bean : list){
|
|
if(bean.getStatus().equals("1")){
|
|
if((TextUtils.isEmpty(bean.getStartTime()) ||
|
|
bean.getDurationMin() == 0)){
|
|
ToastUtil.showShort(mContext,"请完成" + bean.getWeekName() + "的时间配置");
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public void saveConfigSuccess(WaterPlanWeekEntity entity) {
|
|
ToastUtil.showShort(mContext, "排程新增成功");
|
|
isConfigSave = true;
|
|
}
|
|
|
|
|
|
@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) {
|
|
|
|
}
|
|
|
|
|
|
}
|