排程重做
This commit is contained in:
@@ -129,7 +129,6 @@ public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding
|
||||
"取消", "保存", new BaseFragment.OnDialogClick() {
|
||||
@Override
|
||||
public void onCancelClick() {
|
||||
selectTabBind(mEditEntity);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -156,7 +155,7 @@ public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding
|
||||
}
|
||||
});
|
||||
} else {
|
||||
selectTabBind(null);
|
||||
selectTabBind(mNewAddEntity);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -166,6 +165,13 @@ public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding
|
||||
}
|
||||
|
||||
private void selectTabBind(WaterPlanWeekEntity entity) {
|
||||
if (entity == null) {
|
||||
entity = mIsEditMode ? mEditEntity : mNewAddEntity;
|
||||
}
|
||||
if (entity == null) {
|
||||
ToastUtil.showShort(mContext, "请先保存排程");
|
||||
return;
|
||||
}
|
||||
viewBinding.tvConfig.setSelected(false);
|
||||
viewBinding.tvBind.setSelected(true);
|
||||
viewBinding.viewpage.setCurrentItem(1);
|
||||
@@ -176,6 +182,7 @@ public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding
|
||||
}
|
||||
|
||||
public void onConfigSaved(WaterPlanWeekEntity entity) {
|
||||
mNewAddEntity = entity;
|
||||
selectTabBind(entity);
|
||||
}
|
||||
|
||||
|
||||
@@ -64,6 +64,10 @@ public class BindDeviceFragment extends BaseFragment<PlanBindDeviceLayoutBinding
|
||||
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){
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.ckkj.water.plan;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
|
||||
import com.ckkj.water.R;
|
||||
@@ -73,6 +74,22 @@ public class PlanDetailActivity extends BaseActivity<WaterPlanDetailLayoutBindin
|
||||
setClick(viewBinding.btnEdit);
|
||||
setClick(viewBinding.btnDelete);
|
||||
setClick(viewBinding.switchButton);
|
||||
// viewBinding.switchButton.setOnTouchListener(new View.OnTouchListener() {
|
||||
// @Override
|
||||
// public boolean onTouch(View v, MotionEvent event) {
|
||||
// if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
||||
// if (viewBinding.switchButton.isChecked()) {
|
||||
// // 当前是开启状态,下一步将是关闭 -> 屏蔽动画(时长设为0)
|
||||
// viewBinding.switchButton.setAnimationDuration(0);
|
||||
// } else {
|
||||
// // 当前是关闭状态,下一步将是开启 -> 开启动画(恢复默认的 250ms 或你想要的时长)
|
||||
// viewBinding.switchButton.setAnimationDuration(250);
|
||||
// }
|
||||
// }
|
||||
// // 返回 false 以便将触摸事件继续传递给 SwitchButton 内部的点击/滑动逻辑
|
||||
// return false;
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
private void setClick(View view) {
|
||||
@@ -136,6 +153,8 @@ public class PlanDetailActivity extends BaseActivity<WaterPlanDetailLayoutBindin
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取配成详情成功
|
||||
* @param entity
|
||||
|
||||
@@ -0,0 +1,195 @@
|
||||
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.BaseFragment;
|
||||
import com.ckkj.water.databinding.WaterConfigFragmentLayoutBinding;
|
||||
import com.ckkj.water.databinding.WaterConfigFragmentLayoutCopyBinding;
|
||||
import com.ckkj.water.index.entity.WaterDeviceEntity;
|
||||
import com.ckkj.water.network.BaseBean;
|
||||
import com.ckkj.water.plan.adapter.WaterPlanTimeDataAdapter;
|
||||
import com.ckkj.water.plan.adapter.WaterPlanWeekAdapter;
|
||||
import com.ckkj.water.plan.adapter.WaterPlanWeekAdapter_copy;
|
||||
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.time.ZYTimeUtils;
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public class WaterConfigFragment_copy extends BaseFragment<WaterConfigFragmentLayoutCopyBinding, WaterPlanPresenter>
|
||||
implements WaterPlanContract.WaterPlanView {
|
||||
private List<WaterPlanWeekEntity.DetailsBean> weekList = new ArrayList<>();
|
||||
private List<WaterPlanWeekEntity.TimeDataBean> timeList = new ArrayList<>();
|
||||
private WaterPlanWeekAdapter_copy mWeekAdapter;
|
||||
private WaterPlanTimeDataAdapter mTimeAdapter;
|
||||
|
||||
|
||||
@Override
|
||||
public void initData(Bundle state) {
|
||||
List<WaterPlanWeekEntity.DetailsBean> list = new ArrayList<>();
|
||||
for(int i = 0; i < 7; i++){
|
||||
WaterPlanWeekEntity.DetailsBean bean = new WaterPlanWeekEntity.DetailsBean();
|
||||
WaterPlanWeekEntity.TimeDataBean timeData = new WaterPlanWeekEntity.TimeDataBean();
|
||||
List<WaterPlanWeekEntity.TimeDataBean> timeDataList = new ArrayList<>();
|
||||
timeDataList.add(timeData);
|
||||
bean.setTimeData(timeDataList);
|
||||
bean.setWeekday(i + 1);
|
||||
bean.setStatus("0");
|
||||
bean.setWeekName(ZYTimeUtils.getWeekName(i));
|
||||
list.add(bean);
|
||||
}
|
||||
weekList = list;
|
||||
//顶部周一、周二。。。。。
|
||||
mWeekAdapter = new WaterPlanWeekAdapter_copy(mContext, R.layout.plan_period_item,list);
|
||||
viewBinding.rvWeek.setAdapter(mWeekAdapter);
|
||||
//周期对应的 时间配置
|
||||
mTimeAdapter = new WaterPlanTimeDataAdapter(mContext,R.layout.include_plan_time_item_layout,timeList);
|
||||
viewBinding.rvTimes.setAdapter(mTimeAdapter);
|
||||
initListener();
|
||||
}
|
||||
|
||||
private void initListener() {
|
||||
setClick(viewBinding.tvCommit);
|
||||
// viewBinding.etPlanTime.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(weekList != null){
|
||||
// String time = s.toString();
|
||||
// if(TextUtils.isEmpty(time)){
|
||||
// weekList.get(0).getWashCycleList().get(mWeekAdapter.getmPos()).setDuration("");
|
||||
// }else{
|
||||
// weekList.get(0).getWashCycleList().get(mWeekAdapter.getmPos()).setDuration(time);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
|
||||
mWeekAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
mWeekAdapter.setSelPos(position);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setClick(View view) {
|
||||
view.setOnClickListener(this::onClick);
|
||||
}
|
||||
|
||||
public void onClick(View v){
|
||||
switch (v.getId()){
|
||||
case R.id.tv_select_time:
|
||||
boolean times[] = {false, false, false, true, true, false};
|
||||
//时间选择器
|
||||
// TimePickerView pvTime = new TimePickerBuilder(mContext, new OnTimeSelectListener() {
|
||||
// @Override
|
||||
// public void onTimeSelect(Date date, View v) {
|
||||
// viewBinding.tvSelectTime.setText(ZYTimeUtils.getStrTimeData_H_M(date));
|
||||
// if(weekList != null){
|
||||
// String startTime = ZYTimeUtils.getStrTimeData_H_M(date).trim();
|
||||
// weekList.get(0).getWashCycleList().get(mWeekAdapter.getmPos()).setTime(startTime);
|
||||
// }
|
||||
// }
|
||||
// }).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();
|
||||
break;
|
||||
|
||||
case R.id.tv_commit:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// private List<WaterPlanWeekEntity.DeviceEntity> getSelectedDevices() {
|
||||
// if (getActivity() instanceof AddWaterPlanActivity) {
|
||||
// return ((AddWaterPlanActivity) getActivity()).getSelectedDevices();
|
||||
// }
|
||||
// return new ArrayList<>();
|
||||
// }
|
||||
|
||||
@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) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getPlanBindDeviceList(WaterDeviceEntity bean) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void planBindDeviceSuccess(BaseBean bean) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deletePlanSuccess(BaseBean bean) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.ckkj.water.plan.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.ckkj.water.R;
|
||||
import com.ckkj.water.plan.entity.WaterPlanWeekEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author fengxiaoyang
|
||||
* @date 2026/5/28
|
||||
* @description TODO: 描述该类的作用
|
||||
*/
|
||||
public class WaterPlanTimeDataAdapter extends BaseQuickAdapter<WaterPlanWeekEntity.TimeDataBean, BaseViewHolder> {
|
||||
private Context mContext;
|
||||
public WaterPlanTimeDataAdapter(Context context,int layoutResId, @Nullable List<WaterPlanWeekEntity.TimeDataBean> data) {
|
||||
super(layoutResId, data);
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, WaterPlanWeekEntity.TimeDataBean item) {
|
||||
TextView tvStartTime = helper.getView(R.id.tv_select_time);
|
||||
TextView tvPlanDuration = helper.getView(R.id.tv_plan_duration);
|
||||
|
||||
if(!TextUtils.isEmpty(item.getStartTime())){
|
||||
helper.setText(R.id.tv_select_time, item.getStartTime());
|
||||
}else{
|
||||
helper.setText(R.id.tv_select_time,"");
|
||||
tvStartTime.setHint(mContext.getString(R.string.select_water_time));
|
||||
}
|
||||
if(item.getDurationMin() != 0){
|
||||
helper.setText(R.id.tv_plan_duration,item.getDurationMin() + "");
|
||||
}else{
|
||||
helper.setText(R.id.tv_plan_duration,"");
|
||||
tvPlanDuration.setHint(mContext.getString(R.string.input_water_plan_time));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package com.ckkj.water.plan.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.ckkj.water.R;
|
||||
import com.ckkj.water.plan.entity.WaterPlanWeekEntity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class WaterPlanWeekAdapter_copy extends BaseQuickAdapter<WaterPlanWeekEntity.DetailsBean, BaseViewHolder> {
|
||||
private List<WaterPlanWeekEntity.DetailsBean> mList = new ArrayList<>();
|
||||
private Context mContext;
|
||||
|
||||
private int mPos = 0;
|
||||
public WaterPlanWeekAdapter_copy(Context context, int layoutResId, @Nullable List<WaterPlanWeekEntity.DetailsBean> data) {
|
||||
super(layoutResId, data);
|
||||
this.mContext = context;
|
||||
this.mList = data;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, WaterPlanWeekEntity.DetailsBean item) {
|
||||
TextView tvStartTime = helper.getView(R.id.tv_select_time);
|
||||
CheckBox checkBox = helper.getView(R.id.checkbox);
|
||||
TextView tvPlanDuration = helper.getView(R.id.tv_plan_duration);
|
||||
|
||||
|
||||
helper.setText(R.id.tv_week_name,item.getWeekName());
|
||||
|
||||
if(!TextUtils.isEmpty(item.getStartTime())){
|
||||
helper.setText(R.id.tv_select_time, item.getStartTime());
|
||||
}else{
|
||||
helper.setText(R.id.tv_select_time,"");
|
||||
tvStartTime.setHint(mContext.getString(R.string.select_water_time));
|
||||
}
|
||||
if(item.getDurationMin() != 0){
|
||||
helper.setText(R.id.tv_plan_duration,item.getDurationMin() + "");
|
||||
}else{
|
||||
helper.setText(R.id.tv_plan_duration,"");
|
||||
tvPlanDuration.setHint(mContext.getString(R.string.input_water_plan_time));
|
||||
}
|
||||
|
||||
if(item.getStatus().equals("1")){
|
||||
checkBox.setChecked(true);
|
||||
}else{
|
||||
checkBox.setChecked(false);
|
||||
}
|
||||
|
||||
helper.addOnClickListener(R.id.linear_week);
|
||||
helper.addOnClickListener(R.id.checkbox);
|
||||
helper.addOnClickListener(R.id.tv_select_time);
|
||||
helper.addOnClickListener(R.id.tv_plan_duration);
|
||||
|
||||
// LinearLayout linearItem = helper.getView(R.id.linear_item);
|
||||
// View viewStatus = helper.getView(R.id.view_status);
|
||||
// if(helper.getLayoutPosition() == mPos){
|
||||
// linearItem.setBackground(mContext.getResources().getDrawable(R.drawable.shape_water_period_sel_bg));
|
||||
// viewStatus.setVisibility(VISIBLE);
|
||||
// viewStatus.setBackground(mContext.getResources().getDrawable(R.drawable.shape_green_circle));
|
||||
// }else{
|
||||
// linearItem.setBackground(null);
|
||||
// if(!TextUtils.isEmpty(item.getTime()) && !TextUtils.isEmpty(item.getDuration())){
|
||||
// viewStatus.setVisibility(VISIBLE);
|
||||
// viewStatus.setBackground(mContext.getResources().getDrawable(R.drawable.shape_yellow_circle));
|
||||
// }else{
|
||||
// viewStatus.setVisibility(INVISIBLE);
|
||||
// viewStatus.setBackground(null);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
public void setSelPos(int position) {
|
||||
this.mPos = position;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public int getmPos() {
|
||||
return mPos;
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,8 @@ public class WaterPlanWeekEntity implements Serializable {
|
||||
private String status = "1";
|
||||
private List<DetailsBean> details;
|
||||
|
||||
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class DetailsBean implements Serializable{
|
||||
@@ -62,5 +64,13 @@ public class WaterPlanWeekEntity implements Serializable {
|
||||
private Object zones;
|
||||
private String triggerType = "0";
|
||||
private String status = "1";
|
||||
private List<TimeDataBean> timeData;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class TimeDataBean implements Serializable{
|
||||
private String startTime = "";
|
||||
private int durationMin = 0;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user