排程编辑更新
This commit is contained in:
@@ -28,12 +28,14 @@ import java.util.List;
|
||||
import de.greenrobot.event.EventBus;
|
||||
|
||||
/**
|
||||
* 添加浇水排程
|
||||
* 添加/编辑浇水排程
|
||||
*/
|
||||
public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding, WaterPlanPresenter>
|
||||
implements WaterPlanContract.WaterPlanView {
|
||||
|
||||
private List<Fragment> mFragmentList = new ArrayList<>();
|
||||
private boolean mIsEditMode = false;
|
||||
private WaterPlanWeekEntity mEditEntity;
|
||||
// private List<WaterPlanWeekEntity.DeviceEntity> mSelectedDevices = new ArrayList<>();
|
||||
//
|
||||
// public List<WaterPlanWeekEntity.DeviceEntity> getSelectedDevices() {
|
||||
@@ -59,7 +61,20 @@ public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding
|
||||
.statusBarDarkFont(true) // 设置状态栏字体为黑色
|
||||
.titleBar(viewBinding.rlTitle)
|
||||
.init();
|
||||
viewBinding.includedTitle.tvTitle.setText(R.string.add_water_plan_title);
|
||||
|
||||
Bundle bundle = getIntent().getExtras();
|
||||
if (bundle != null) {
|
||||
mIsEditMode = bundle.getBoolean("is_edit", false);
|
||||
mEditEntity = (WaterPlanWeekEntity) bundle.getSerializable("plan_entity");
|
||||
}
|
||||
|
||||
// 根据模式设置标题
|
||||
if (mIsEditMode) {
|
||||
viewBinding.includedTitle.tvTitle.setText(R.string.edit_water_plan_title);
|
||||
} else {
|
||||
viewBinding.includedTitle.tvTitle.setText(R.string.add_water_plan_title);
|
||||
}
|
||||
|
||||
mFragmentList.add(new WaterConfigFragment());
|
||||
mFragmentList.add(new BindDeviceFragment());
|
||||
ViewPagerAdapter adapter = new ViewPagerAdapter(mContext, mFragmentList);
|
||||
@@ -71,6 +86,14 @@ public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding
|
||||
viewBinding.tvConfig.setSelected(true);
|
||||
viewBinding.tvBind.setSelected(false);
|
||||
initListener();
|
||||
|
||||
// 编辑模式下,延迟传递数据给 WaterConfigFragment,等 viewBinding 初始化完成后调用
|
||||
if (mIsEditMode && mEditEntity != null) {
|
||||
viewBinding.viewpage.post(() -> {
|
||||
WaterConfigFragment configFragment = (WaterConfigFragment) mFragmentList.get(0);
|
||||
configFragment.setEditEntity(mEditEntity);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void initListener() {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.ckkj.water.plan;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
@@ -76,7 +77,9 @@ public class PlanDetailActivity extends BaseActivity<WaterPlanDetailLayoutBindin
|
||||
case R.id.btn_edit:
|
||||
if(mDetailEntity != null){
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putSerializable("plan_entity",mPlanEntity);
|
||||
bundle.putSerializable("plan_entity", mDetailEntity);
|
||||
bundle.putBoolean("is_edit", true);
|
||||
goTo(mContext, AddWaterPlanActivity.class,bundle);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
@@ -42,6 +42,8 @@ public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutB
|
||||
private WaterPlanWeekAdapter mWeekAdapter;
|
||||
private String mPlanName = "";
|
||||
public static boolean isConfigSave;
|
||||
//当下是否编辑模式
|
||||
private boolean mIsEditMode = false;
|
||||
|
||||
|
||||
@Override
|
||||
@@ -61,6 +63,65 @@ public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutB
|
||||
initListener();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置编辑模式的排程数据
|
||||
* @param entity 从详情页传来的排程数据
|
||||
*/
|
||||
public void setEditEntity(WaterPlanWeekEntity entity) {
|
||||
if (entity == null) {
|
||||
return;
|
||||
}
|
||||
mIsEditMode = true;
|
||||
// 深拷贝数据到 mConfigEntity,用于本地编辑
|
||||
mConfigEntity = cloneEntity(entity);
|
||||
// 保存远程原始数据,用于后续变化检测
|
||||
mRemoteConfigEntity = entity;
|
||||
isConfigSave = true;
|
||||
|
||||
// 初始化 UI
|
||||
viewBinding.etPlanName.setText(entity.getName());
|
||||
mPlanName = entity.getName();
|
||||
|
||||
// 更新周配置列表的显示
|
||||
if (entity.getDetails() != null) {
|
||||
for(WaterPlanWeekEntity.DetailsBean bean : entity.getDetails()){
|
||||
bean.setWeekName(ZYTimeUtils.getWeekName(bean.getWeekday() - 1));
|
||||
bean.setStartTime(ZYTimeUtils.formatHHmm(bean.getStartTime()));
|
||||
}
|
||||
mWeekAdapter.setNewData(entity.getDetails());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 深拷贝 WaterPlanWeekEntity
|
||||
*/
|
||||
private WaterPlanWeekEntity cloneEntity(WaterPlanWeekEntity source) {
|
||||
if (source == null) {
|
||||
return null;
|
||||
}
|
||||
WaterPlanWeekEntity target = new WaterPlanWeekEntity();
|
||||
target.setId(source.getId());
|
||||
target.setName(source.getName());
|
||||
target.setStatus(source.getStatus());
|
||||
|
||||
if (source.getDetails() != null) {
|
||||
List<WaterPlanWeekEntity.DetailsBean> detailsList = new ArrayList<>();
|
||||
for (WaterPlanWeekEntity.DetailsBean bean : source.getDetails()) {
|
||||
WaterPlanWeekEntity.DetailsBean newBean = new WaterPlanWeekEntity.DetailsBean();
|
||||
newBean.setId(bean.getId());
|
||||
newBean.setWeekday(bean.getWeekday());
|
||||
newBean.setWeekName(ZYTimeUtils.getWeekName(bean.getWeekday() - 1));
|
||||
newBean.setStatus(bean.getStatus());
|
||||
newBean.setStartTime(ZYTimeUtils.formatHHmm(bean.getStartTime()));
|
||||
newBean.setDurationMin(bean.getDurationMin());
|
||||
detailsList.add(newBean);
|
||||
}
|
||||
target.setDetails(detailsList);
|
||||
}
|
||||
|
||||
return target;
|
||||
}
|
||||
|
||||
private void initListener() {
|
||||
setClick(viewBinding.tvCommit);
|
||||
mWeekAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
|
||||
|
||||
@@ -91,6 +91,7 @@
|
||||
<string name="water_device_config">浇水配置</string>
|
||||
<string name="water_device_bind">关联设备</string>
|
||||
<string name="add_water_plan_title">新增排程</string>
|
||||
<string name="edit_water_plan_title">Edit Plan</string>
|
||||
<string name="plan_name_text">排程名称</string>
|
||||
<string name="plan_period">浇水周期</string>
|
||||
<string name="plan_time">浇水时长</string>
|
||||
|
||||
@@ -92,6 +92,7 @@
|
||||
<string name="water_device_config">浇水配置</string>
|
||||
<string name="water_device_bind">关联设备</string>
|
||||
<string name="add_water_plan_title">新增排程</string>
|
||||
<string name="edit_water_plan_title">编辑排程</string>
|
||||
<string name="plan_name_text">排程名称</string>
|
||||
<string name="plan_name_text_empty_hint">排程名称不能为空</string>
|
||||
<string name="plan_week_empty_hint">请选择排程日期</string>
|
||||
|
||||
Reference in New Issue
Block a user