package com.ckkj.water.plan; import android.os.Bundle; import android.os.Handler; import android.view.View; import com.ckkj.water.R; import com.ckkj.water.base.BaseActivity; import com.ckkj.water.base.BaseFragment; import com.ckkj.water.databinding.WaterPlanDetailLayoutBinding; import com.ckkj.water.index.entity.WaterDeviceEntity; import com.ckkj.water.network.BaseBean; //import com.ckkj.water.plan.adapter.PlanDetailDeviceAdapter; //import com.ckkj.water.plan.adapter.PlanDetailTimeAdapter; import com.ckkj.water.plan.adapter.PlanDetailDeviceAdapter; import com.ckkj.water.plan.adapter.PlanDetailTimeAdapter; 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.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; import java.util.List; /** * 排程详情页面 */ public class PlanDetailActivity extends BaseActivity implements WaterPlanContract.WaterPlanView { //列表页面传的的,用于获取详情 private WaterPlanWeekEntity mPlanEntity; //查询到的排程详情 private WaterPlanWeekEntity mDetailEntity; private PlanDetailTimeAdapter mAdapter; private PlanDetailDeviceAdapter deviceAdapter; private List mList = new ArrayList<>(); @Override protected void onResume() { super.onResume(); showLoadingDialog(); mPresenter.getPlanDetailInfo(mPlanEntity); } @Override public void initData(Bundle savedInstanceState) { super.initData(savedInstanceState); Bundle bundle = getIntent().getExtras(); if(bundle != null){ mPlanEntity = (WaterPlanWeekEntity) bundle.getSerializable("plan_entity"); } String jsonContent = getString(R.string.plan_water_entity_json); WaterPlanWeekEntity entity = new Gson().fromJson(jsonContent, WaterPlanWeekEntity.class); ImmersionBar.with(this) .statusBarColor(R.color.color_F9F9F9) // 设置状态栏颜色 .statusBarDarkFont(true) // 设置状态栏字体为黑色 .titleBar(viewBinding.rlTitle) .init(); viewBinding.includedTitle.tvTitle.setText(R.string.plan_detail_title); initListener(); mAdapter = new PlanDetailTimeAdapter(R.layout.plan_detail_time_item,mList); viewBinding.rvPlanTime.setAdapter(mAdapter); List deviceList = new ArrayList<>(); deviceAdapter = new PlanDetailDeviceAdapter(R.layout.plan_detail_bind_device_item,deviceList); viewBinding.rvBindDevices.setAdapter(deviceAdapter); } private void initListener() { setClick(viewBinding.includedTitle.imgBack); setClick(viewBinding.btnEdit); setClick(viewBinding.btnDelete); setClick(viewBinding.switchButton); } 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.btn_edit://编辑 if(mDetailEntity != null){ Bundle bundle = new Bundle(); bundle.putSerializable("plan_entity", mDetailEntity); bundle.putBoolean("is_edit", true); goTo(mContext, AddWaterPlanActivity.class,bundle); } break; case R.id.btn_delete://删除 showDialogtext(null, false, false, true, getString(R.string.tip_text), getString(R.string.delete_plan_tip), getString(R.string.cancel_text), getString(R.string.confirm_text), new BaseFragment.OnDialogClick() { @Override public void onCancelClick() { } @Override public void onConfirmClick() { mPresenter.deletePlan(mDetailEntity); } }); break; case R.id.switch_button://切换状态 // 先恢复 Switch 到原始状态,避免点击时立即改变 viewBinding.switchButton.setChecked(mDetailEntity.getStatus().equals("1")); if(mDetailEntity.getStatus().equals("1")){ showDialogtext(null, false, false, true, getString(R.string.tip_text), getString(R.string.close_plan_dialog_tip), getString(R.string.cancel_text), getString(R.string.confirm_text), new BaseFragment.OnDialogClick() { @Override public void onCancelClick() { // 取消操作,恢复 Switch 状态 viewBinding.switchButton.setChecked(true); } @Override public void onConfirmClick() { // 确认关闭任务,调用接口后再更新 Switch showLoadingDialog(); mPresenter.updatePlanStatus(mDetailEntity, "0"); } }); }else{ // 开启任务,调用接口后再更新 Switch mPresenter.updatePlanStatus(mDetailEntity, "1"); } break; } } /** * 获取配成详情成功 * @param entity */ @Override public void getPlanDetailInfo(WaterPlanWeekEntity entity) { hideDialogLoading(); mDetailEntity = entity; viewBinding.tvPlanName.setText(entity.getName()); if(entity.getStatus().equals("1")){ viewBinding.switchButton.setChecked(true); }else{ viewBinding.switchButton.setChecked(false); } //针对周一 --- 周日的日期,只显示勾选的日期 List list = new ArrayList<>(); for(WaterPlanWeekEntity.DetailsBean bean : entity.getDetails()){ if(bean.getStatus().equals("1")){ list.add(bean); } } //日期显示 if(mAdapter != null){ mAdapter.setNewData(list); } //设备显示 if(deviceAdapter != null){ deviceAdapter.setNewData(entity.getDeviceIds()); } } /** * 删除排程成功 * @param bean */ @Override public void deletePlanSuccess(BaseBean bean) { hideDialogLoading(); ToastUtil.showShort(mContext,getString(R.string.delete_plan_success)); new Handler().postDelayed(new Runnable() { @Override public void run() { finish(); } },500); } /** * 更新排程状态成功 * * @param bean * @param status */ @Override public void updatePlanStatusSuccess(BaseBean bean, String status) { hideDialogLoading(); mDetailEntity.setStatus(status); if(status.equals("1")){ showCenterTipDialog(R.mipmap.icon_dialog_success,"任务已开启"); viewBinding.switchButton.setChecked(true); }else{ viewBinding.switchButton.setChecked(false); } } @Override public void getPlanBindDeviceList(WaterDeviceEntity bean) { } @Override public void planBindDeviceSuccess(BaseBean bean) { } @Override public WaterPlanPresenter createPresenter() { return new WaterPlanPresenter(new WaterPlanImpl()); } @Override public int getLayoutResId(Bundle savedInstanceState) { return 0; } @Override public void showError(String message) { hideDialogLoading(); ToastUtil.showShort(mContext,message); } @Override public void logOut(BaseBean bean) { } @Override public void getWaterConfigListSuccess(List list,int total) { } @Override public void saveConfigSuccess(WaterPlanWeekEntity entity) { } @Override public void updateConfigSuccess(WaterPlanWeekEntity entity) { } }