238 lines
7.7 KiB
Java
238 lines
7.7 KiB
Java
package com.ckkj.water.plan;
|
||
|
||
import android.os.Bundle;
|
||
import android.view.View;
|
||
|
||
import androidx.fragment.app.Fragment;
|
||
|
||
import com.ckkj.water.R;
|
||
import com.ckkj.water.base.BaseActivity;
|
||
import com.ckkj.water.base.BaseFragment;
|
||
import com.ckkj.water.databinding.AddWaterPlanLayoutBinding;
|
||
import com.ckkj.water.index.entity.WaterDeviceEntity;
|
||
import com.ckkj.water.network.BaseBean;
|
||
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.plate.adapter.ViewPagerAdapter;
|
||
import com.ckkj.water.utils.show.ToastUtil;
|
||
import com.gyf.immersionbar.ImmersionBar;
|
||
|
||
import java.util.ArrayList;
|
||
import java.util.List;
|
||
|
||
/**
|
||
* 添加/编辑浇水排程
|
||
*/
|
||
public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding, WaterPlanPresenter>
|
||
implements WaterPlanContract.WaterPlanView {
|
||
|
||
private List<Fragment> mFragmentList = new ArrayList<>();
|
||
private boolean mIsEditMode = false;
|
||
private WaterPlanWeekEntity mEditEntity;
|
||
private WaterPlanWeekEntity mNewAddEntity;
|
||
// private List<WaterPlanWeekEntity.DeviceEntity> mSelectedDevices = new ArrayList<>();
|
||
//
|
||
// public List<WaterPlanWeekEntity.DeviceEntity> getSelectedDevices() {
|
||
// return mSelectedDevices;
|
||
// }
|
||
//
|
||
// public void setSelectedDevices(List<WaterPlanWeekEntity.DeviceEntity> selectedDevices) {
|
||
// this.mSelectedDevices = selectedDevices;
|
||
// }
|
||
|
||
@Override
|
||
public WaterPlanPresenter createPresenter() {
|
||
return new WaterPlanPresenter(new WaterPlanImpl());
|
||
}
|
||
|
||
|
||
@Override
|
||
public void initData(Bundle savedInstanceState) {
|
||
super.initData(savedInstanceState);
|
||
|
||
ImmersionBar.with(this)
|
||
.statusBarColor(R.color.color_F9F9F9) // 设置状态栏颜色
|
||
.statusBarDarkFont(true) // 设置状态栏字体为黑色
|
||
.titleBar(viewBinding.rlTitle)
|
||
.init();
|
||
|
||
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);
|
||
viewBinding.viewpage.setAdapter(adapter);
|
||
viewBinding.viewpage.setCurrentItem(0);
|
||
//viewpage2 特有的 api,禁止滑动
|
||
viewBinding.viewpage.setUserInputEnabled(false);
|
||
|
||
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() {
|
||
setClick(viewBinding.includedTitle.imgBack);
|
||
setClick(viewBinding.tvConfig);
|
||
setClick(viewBinding.tvBind);
|
||
}
|
||
|
||
private void setClick(View view) {
|
||
view.setOnClickListener(this::onClick);
|
||
}
|
||
|
||
public void onClick(View v){
|
||
switch (v.getId()){
|
||
case R.id.img_back:
|
||
finish();
|
||
break;
|
||
|
||
case R.id.tv_config:
|
||
viewBinding.tvConfig.setSelected(true);
|
||
viewBinding.tvBind.setSelected(false);
|
||
viewBinding.viewpage.setCurrentItem(0);
|
||
break;
|
||
|
||
case R.id.tv_bind:
|
||
WaterConfigFragment configFragment = (WaterConfigFragment) mFragmentList.get(0);
|
||
if (!configFragment.checkConfigFinish()) {
|
||
ToastUtil.showShort(mContext, "请完成配置");
|
||
return;
|
||
}
|
||
|
||
// 编辑模式下,检查配置是否有变化
|
||
if (mIsEditMode) {
|
||
if (configFragment.isConfigChanged()) {
|
||
showDialogtext(mContext.getResources().getDrawable(R.mipmap.img_location), false, false, true,
|
||
"提示", "配置已修改,是否保存?",
|
||
"取消", "保存", new BaseFragment.OnDialogClick() {
|
||
@Override
|
||
public void onCancelClick() {
|
||
selectTabBind(mEditEntity);
|
||
}
|
||
|
||
@Override
|
||
public void onConfirmClick() {
|
||
configFragment.commitConfig();
|
||
}
|
||
});
|
||
} else {
|
||
selectTabBind(mEditEntity);
|
||
}
|
||
} else {
|
||
// 新增模式,检查配置是否已保存
|
||
if (!configFragment.isConfigSave || configFragment.isConfigChanged()) {
|
||
showDialogtext(mContext.getResources().getDrawable(R.mipmap.img_location), false, false, true,
|
||
"提示", "关联设备需要保存排程配置,是否继续?",
|
||
"取消", "继续", new BaseFragment.OnDialogClick() {
|
||
@Override
|
||
public void onCancelClick() {
|
||
}
|
||
|
||
@Override
|
||
public void onConfirmClick() {
|
||
configFragment.commitConfig();
|
||
}
|
||
});
|
||
} else {
|
||
selectTabBind(null);
|
||
}
|
||
}
|
||
break;
|
||
|
||
|
||
}
|
||
}
|
||
|
||
private void selectTabBind(WaterPlanWeekEntity entity) {
|
||
viewBinding.tvConfig.setSelected(false);
|
||
viewBinding.tvBind.setSelected(true);
|
||
viewBinding.viewpage.setCurrentItem(1);
|
||
|
||
// 传递排程数据给 BindDeviceFragment
|
||
BindDeviceFragment bindDeviceFragment = (BindDeviceFragment) mFragmentList.get(1);
|
||
bindDeviceFragment.setPlanEntity(entity);
|
||
}
|
||
|
||
public void onConfigSaved(WaterPlanWeekEntity entity) {
|
||
selectTabBind(entity);
|
||
}
|
||
|
||
@Override
|
||
public int getLayoutResId(Bundle savedInstanceState) {
|
||
return 0;
|
||
}
|
||
|
||
@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) {
|
||
|
||
}
|
||
|
||
|
||
}
|