From 9ab6d134abc32aef7b42a63987f7c892a98ed39c Mon Sep 17 00:00:00 2001 From: fengjignqi <15192412330@163.com> Date: Tue, 26 May 2026 17:35:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E7=A8=8B=E7=BC=96=E8=BE=91=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ckkj/water/device/AddDeviceActivity.java | 4 +- .../water/device/DeviceConnectActivity.java | 5 +- .../water/device/DeviceControlActivity.java | 12 +- .../ckkj/water/device/DeviceInfoActivity.java | 4 +- .../water/device/DeviceReNameActivity.java | 4 +- .../water/device/DeviceSettingsActivity.java | 10 +- .../ckkj/water/device/SelectWifiActivity.java | 7 +- .../ckkj/water/device/mvp/DeviceContract.java | 4 +- .../com/ckkj/water/device/mvp/DeviceImpl.java | 7 +- .../water/device/mvp/DevicePresenter.java | 11 +- .../ckkj/water/history/StatisticFragment.java | 6 + .../com/ckkj/water/index/IndexFragment.java | 6 +- .../water/index/adapter/DeviceAdapter.java | 14 +-- .../water/index/entity/IndexDeviceEntity.java | 45 ------- .../water/index/entity/WaterDeviceEntity.java | 87 ++++++++++++++ .../ckkj/water/index/mvp/IndexContract.java | 8 +- .../com/ckkj/water/index/mvp/IndexImpl.java | 8 +- .../ckkj/water/index/mvp/IndexPresenter.java | 6 +- .../java/com/ckkj/water/network/Request.java | 9 +- .../ckkj/water/plan/AddWaterPlanActivity.java | 12 +- .../ckkj/water/plan/BindDeviceFragment.java | 53 ++++++--- .../ckkj/water/plan/PlanDetailActivity.java | 7 +- .../ckkj/water/plan/WaterConfigFragment.java | 18 +-- .../ckkj/water/plan/WaterPlanFragment.java | 7 +- .../water/plan/adapter/BindDeviceAdapter.java | 111 +++++++++--------- .../plan/entity/WaterPlanWeekEntity.java | 2 +- .../water/plan/mvp/WaterPlanContract.java | 3 + .../ckkj/water/plan/mvp/WaterPlanImpl.java | 8 +- .../water/plan/mvp/WaterPlanPresenter.java | 18 +-- 29 files changed, 271 insertions(+), 225 deletions(-) delete mode 100644 app/src/main/java/com/ckkj/water/index/entity/IndexDeviceEntity.java create mode 100644 app/src/main/java/com/ckkj/water/index/entity/WaterDeviceEntity.java diff --git a/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java b/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java index c0c247f..aaf3425 100644 --- a/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java +++ b/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java @@ -20,7 +20,7 @@ import com.ckkj.water.databinding.AddDeviceLayoutBinding; import com.ckkj.water.device.mvp.DeviceContract; import com.ckkj.water.device.mvp.DeviceImpl; import com.ckkj.water.device.mvp.DevicePresenter; -import com.ckkj.water.index.entity.IndexDeviceEntity; +import com.ckkj.water.index.entity.WaterDeviceEntity; import com.ckkj.water.network.BaseBean; import com.ckkj.water.utils.manager.ActivityManager; import com.ckkj.water.utils.manager.ThemeManager; @@ -195,7 +195,7 @@ public class AddDeviceActivity extends BaseActivity mTimeList = new ArrayList<>(); - private IndexDeviceEntity mDeviceEntity; + private WaterDeviceEntity mDeviceEntity; private DeviceTimeSelectAdapter mAdapter; @Override public DevicePresenter createPresenter() { @@ -50,7 +48,7 @@ public class DeviceControlActivity extends BaseActivity implements DeviceContract.DeviceView { - private IndexDeviceEntity mDeviceEntity; + private WaterDeviceEntity mDeviceEntity; @Override public DevicePresenter createPresenter() { return new DevicePresenter(new DeviceImpl()); @@ -42,7 +40,7 @@ public class DeviceSettingsActivity extends BaseActivity>() { + .subscribe(new Observer>() { @Override public void onSubscribe(@NonNull Disposable d) { } @Override - public void onNext(@NonNull BaseBean bean) { + public void onNext(@NonNull BaseBean bean) { if (bean.getCode() == 200) { callBack.success(bean.getData(),0); } diff --git a/app/src/main/java/com/ckkj/water/device/mvp/DevicePresenter.java b/app/src/main/java/com/ckkj/water/device/mvp/DevicePresenter.java index 81f42e7..d271344 100644 --- a/app/src/main/java/com/ckkj/water/device/mvp/DevicePresenter.java +++ b/app/src/main/java/com/ckkj/water/device/mvp/DevicePresenter.java @@ -1,11 +1,10 @@ package com.ckkj.water.device.mvp; import com.ckkj.water.base.BasePresenter; -import com.ckkj.water.index.entity.IndexDeviceEntity; +import com.ckkj.water.index.entity.WaterDeviceEntity; import com.ckkj.water.index.mvp.IndexContract; import com.ckkj.water.network.BaseBean; -import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -61,9 +60,9 @@ public class DevicePresenter extends BasePresenter { public void getDeviceDetailInfo(String deviceID) { Map map = new HashMap<>(); map.put("id",deviceID); - impl.getDeviceInfomation(map, new IndexContract.CallBack() { + impl.getDeviceInfomation(map, new IndexContract.CallBack() { @Override - public void success(IndexDeviceEntity bean,int total) { + public void success(WaterDeviceEntity bean, int total) { if(DevicePresenter.this.getView() != null){ DevicePresenter.this.getView().getDeviceDetailInfo(bean); } @@ -82,7 +81,7 @@ public class DevicePresenter extends BasePresenter { * 修改设备信息 * @param mDeviceEntity */ - public void updateDeviceInfo(IndexDeviceEntity mDeviceEntity) { + public void updateDeviceInfo(WaterDeviceEntity mDeviceEntity) { try { JSONObject json = new JSONObject(); json.put("id",mDeviceEntity.getId()); @@ -113,7 +112,7 @@ public class DevicePresenter extends BasePresenter { * 解绑设备 * @param deviceEntity */ - public void unBindDevice(IndexDeviceEntity deviceEntity) { + public void unBindDevice(WaterDeviceEntity deviceEntity) { impl.deleteDevice(deviceEntity.getId(), new IndexContract.CallBack() { @Override public void success(BaseBean bean, int total) { diff --git a/app/src/main/java/com/ckkj/water/history/StatisticFragment.java b/app/src/main/java/com/ckkj/water/history/StatisticFragment.java index 867631e..b88ecfa 100644 --- a/app/src/main/java/com/ckkj/water/history/StatisticFragment.java +++ b/app/src/main/java/com/ckkj/water/history/StatisticFragment.java @@ -4,6 +4,7 @@ import android.os.Bundle; import com.ckkj.water.base.BaseFragment; import com.ckkj.water.databinding.WaterCountFragmentLayoutBinding; +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; @@ -62,4 +63,9 @@ public class StatisticFragment extends BaseFragment devList = new ArrayList<>(); + private List devList = new ArrayList<>(); private int mCurrentPage = 1; @Override @@ -153,7 +153,7 @@ public class IndexFragment extends BaseFragment list,int total) { + public void getDeviceListSuccess(List list, int total) { hideDialogLoading(); viewBinding.refresh.finishRefresh(300); viewBinding.refresh.finishLoadMore(300); diff --git a/app/src/main/java/com/ckkj/water/index/adapter/DeviceAdapter.java b/app/src/main/java/com/ckkj/water/index/adapter/DeviceAdapter.java index 2566266..653914d 100644 --- a/app/src/main/java/com/ckkj/water/index/adapter/DeviceAdapter.java +++ b/app/src/main/java/com/ckkj/water/index/adapter/DeviceAdapter.java @@ -1,32 +1,26 @@ package com.ckkj.water.index.adapter; import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.recyclerview.widget.RecyclerView; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.ckkj.water.R; -import com.ckkj.water.index.entity.IndexDeviceEntity; +import com.ckkj.water.index.entity.WaterDeviceEntity; import java.util.List; -public class DeviceAdapter extends BaseQuickAdapter { +public class DeviceAdapter extends BaseQuickAdapter { - public DeviceAdapter(Context context, int layoutResId, @Nullable List data) { + public DeviceAdapter(Context context, int layoutResId, @Nullable List data) { super(layoutResId, data); this.mContext = context; this.mData = data; } @Override - protected void convert(BaseViewHolder holder, IndexDeviceEntity item) { + protected void convert(BaseViewHolder holder, WaterDeviceEntity item) { holder.setText(R.id.tv_device_name,item.getDeviceName()); holder.setText(R.id.tv_device_serial,item.getDeviceSn()); holder.setText(R.id.tv_device_status,"工作中"); diff --git a/app/src/main/java/com/ckkj/water/index/entity/IndexDeviceEntity.java b/app/src/main/java/com/ckkj/water/index/entity/IndexDeviceEntity.java deleted file mode 100644 index 7966078..0000000 --- a/app/src/main/java/com/ckkj/water/index/entity/IndexDeviceEntity.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.ckkj.water.index.entity; - -import java.io.Serializable; - -import lombok.Data; -import lombok.NoArgsConstructor; - -@NoArgsConstructor -@Data -public class IndexDeviceEntity implements Serializable { - - /** - * id : 2056638783822123010 - * deviceNo : 1779175872972 - * userId : 2056543507514097665 - * deviceName : 50号设备 - * deviceImg : null - * status : 0 - * powerLevel : null - * powerLevelUpdatatime : null - * wifiName : 橙空科技WiFi - * wifiPassword : 12321212 - * deviceEm : 213123123123 - * deviceSn : sdfsd32423gdfgdf3 - * fwVer : fwVer-56565644 - * macAddress : 2E:8H:00:KK:N7 - * expirationTime : null - */ - - private String id; - private String deviceNo; - private String userId; - private String deviceName; - private Object deviceImg; - private String status; - private Object powerLevel; - private Object powerLevelUpdatatime; - private String wifiName; - private String wifiPassword; - private String deviceEm; - private String deviceSn; - private String fwVer; - private String macAddress; - private Object expirationTime; -} diff --git a/app/src/main/java/com/ckkj/water/index/entity/WaterDeviceEntity.java b/app/src/main/java/com/ckkj/water/index/entity/WaterDeviceEntity.java new file mode 100644 index 0000000..c9e69bc --- /dev/null +++ b/app/src/main/java/com/ckkj/water/index/entity/WaterDeviceEntity.java @@ -0,0 +1,87 @@ +package com.ckkj.water.index.entity; + +import java.io.Serializable; +import java.util.List; + +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +public class WaterDeviceEntity implements Serializable { + + /** + * id : 2056638783822123010 + * deviceNo : 1779175872972 + * userId : 2056543507514097665 + * deviceName : 50号设备 + * deviceImg : null + * status : 0 + * powerLevel : null + * powerLevelUpdatatime : null + * wifiName : 橙空科技WiFi + * wifiPassword : 12321212 + * deviceEm : 213123123123 + * deviceSn : sdfsd32423gdfgdf3 + * fwVer : fwVer-56565644 + * macAddress : 2E:8H:00:KK:N7 + * expirationTime : null + */ + + private String id; + private String deviceNo; + private String userId; + private String deviceName; + private Object deviceImg; + private String status; + private Object powerLevel; + private Object powerLevelUpdatatime; + private String wifiName; + private String wifiPassword; + private String deviceEm; + private String deviceSn; + private String fwVer; + private String macAddress; + private Object expirationTime; + private List deviceList; + + @NoArgsConstructor + @Data + public static class DeviceListBean implements Serializable{ + /** + * id : 2056641699765178369 + * deviceNo : 1779176568237 + * userId : 2056543507514097665 + * deviceName : 40号设备 + * deviceImg : null + * status : 0 + * workStatus : 0 + * powerLevel : null + * powerLevelUpdatatime : null + * wifiName : 橙空科技WiFi + * wifiPassword : 12321212 + * deviceEm : 213123123123 + * deviceSn : sdfsd32423gdfgdf3 + * fwVer : fwVer-56565644 + * macAddress : 2E:8H:00:KK:N7 + * expirationTime : null + */ + + private String idX; + private String deviceNoX; + private String userIdX; + private String deviceNameX; + private Object deviceImgX; + private String statusX; + private String workStatus; + private Object powerLevelX; + private Object powerLevelUpdatatimeX; + private String wifiNameX; + private String wifiPasswordX; + private String deviceEmX; + private String deviceSnX; + private String fwVerX; + private String macAddressX; + private Object expirationTimeX; + } +} diff --git a/app/src/main/java/com/ckkj/water/index/mvp/IndexContract.java b/app/src/main/java/com/ckkj/water/index/mvp/IndexContract.java index 0a2585f..777fd1f 100644 --- a/app/src/main/java/com/ckkj/water/index/mvp/IndexContract.java +++ b/app/src/main/java/com/ckkj/water/index/mvp/IndexContract.java @@ -1,11 +1,7 @@ package com.ckkj.water.index.mvp; import com.ckkj.water.base.IView; -import com.ckkj.water.index.entity.IndexDeviceEntity; -import com.ckkj.water.login.entity.LoginEntity; -import com.ckkj.water.network.BaseBean; - -import org.json.JSONObject; +import com.ckkj.water.index.entity.WaterDeviceEntity; import java.util.List; import java.util.Map; @@ -29,6 +25,6 @@ public class IndexContract { } public interface IndexView extends IView{ - void getDeviceListSuccess(List list,int total); + void getDeviceListSuccess(List list, int total); } } diff --git a/app/src/main/java/com/ckkj/water/index/mvp/IndexImpl.java b/app/src/main/java/com/ckkj/water/index/mvp/IndexImpl.java index e61089b..e507528 100644 --- a/app/src/main/java/com/ckkj/water/index/mvp/IndexImpl.java +++ b/app/src/main/java/com/ckkj/water/index/mvp/IndexImpl.java @@ -1,11 +1,9 @@ package com.ckkj.water.index.mvp; -import com.ckkj.water.index.entity.IndexDeviceEntity; +import com.ckkj.water.index.entity.WaterDeviceEntity; import com.ckkj.water.network.BaseBean; import com.ckkj.water.network.NetWorkManager; -import org.json.JSONObject; - import java.util.List; import java.util.Map; @@ -28,13 +26,13 @@ public class IndexImpl implements IndexContract.DataModel{ .subscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>>() { + .subscribe(new Observer>>() { @Override public void onSubscribe(@NonNull Disposable d) { } @Override - public void onNext(@NonNull BaseBean> bean) { + public void onNext(@NonNull BaseBean> bean) { if (bean.getCode() == 200) { callBack.success(bean.getRows(),bean.getTotal()); } diff --git a/app/src/main/java/com/ckkj/water/index/mvp/IndexPresenter.java b/app/src/main/java/com/ckkj/water/index/mvp/IndexPresenter.java index 554c043..a306cd7 100644 --- a/app/src/main/java/com/ckkj/water/index/mvp/IndexPresenter.java +++ b/app/src/main/java/com/ckkj/water/index/mvp/IndexPresenter.java @@ -1,7 +1,7 @@ package com.ckkj.water.index.mvp; import com.ckkj.water.base.BasePresenter; -import com.ckkj.water.index.entity.IndexDeviceEntity; +import com.ckkj.water.index.entity.WaterDeviceEntity; import java.util.HashMap; import java.util.List; @@ -18,10 +18,10 @@ public class IndexPresenter extends BasePresenter{ * 查询设备列表 */ public void getDevicesList(int mCurrentPage) { - mImpl.getDeviceList(new HashMap<>(), new IndexContract.CallBack>() { + mImpl.getDeviceList(new HashMap<>(), new IndexContract.CallBack>() { @Override - public void success(List list, int total) { + public void success(List list, int total) { if(IndexPresenter.this.getView() != null){ IndexPresenter.this.getView().getDeviceListSuccess(list,total); } diff --git a/app/src/main/java/com/ckkj/water/network/Request.java b/app/src/main/java/com/ckkj/water/network/Request.java index e8f5bee..f32915a 100644 --- a/app/src/main/java/com/ckkj/water/network/Request.java +++ b/app/src/main/java/com/ckkj/water/network/Request.java @@ -3,7 +3,7 @@ package com.ckkj.water.network; import com.ckkj.water.base.entity.MineUserInfoBean; -import com.ckkj.water.index.entity.IndexDeviceEntity; +import com.ckkj.water.index.entity.WaterDeviceEntity; import com.ckkj.water.login.entity.LoginEntity; import com.ckkj.water.main.entity.CheckVersionEntity; import com.ckkj.water.plan.entity.WaterPlanWeekEntity; @@ -19,7 +19,6 @@ import okhttp3.RequestBody; import retrofit2.http.Body; import retrofit2.http.DELETE; import retrofit2.http.GET; -import retrofit2.http.HTTP; import retrofit2.http.HeaderMap; import retrofit2.http.POST; import retrofit2.http.PUT; @@ -50,13 +49,13 @@ public interface Request { //首页设备列表 @GET("app/v1/deviceList") - Observable>> getIndexDeviceList(@HeaderMap Map headMap); + Observable>> getIndexDeviceList(@HeaderMap Map headMap); //添加设备 @POST("app/v1/addDevice") Observable addDevice(@HeaderMap Map headMap, @Body RequestBody requestBody); //获取设备详细信息 @GET("app/v1/device/{id}") - Observable> getDeviceDetailInfo(@HeaderMap Map headMap, @Path("id") String id); + Observable> getDeviceDetailInfo(@HeaderMap Map headMap, @Path("id") String id); //修改更新设备信息 @PUT("app/v1/updateDeviceInfo") Observable updateDeviceInfo(@HeaderMap Map headMap, @Body RequestBody requestBody); @@ -84,7 +83,7 @@ public interface Request { //查询排程可绑定设备列表 @GET("app/v1/scheduleDeviceList/{id}") - Observable getPlanBindDeviceList(@HeaderMap Map headMap, @Path("id") String id); + Observable> getPlanBindDeviceList(@HeaderMap Map headMap, @Path("id") String id); //查询排程详情 @GET("app/v1/schedule/{id}") diff --git a/app/src/main/java/com/ckkj/water/plan/AddWaterPlanActivity.java b/app/src/main/java/com/ckkj/water/plan/AddWaterPlanActivity.java index e7d06c8..a31df0a 100644 --- a/app/src/main/java/com/ckkj/water/plan/AddWaterPlanActivity.java +++ b/app/src/main/java/com/ckkj/water/plan/AddWaterPlanActivity.java @@ -5,28 +5,23 @@ import android.view.View; import androidx.fragment.app.Fragment; -import com.ckkj.water.EventMessage; 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.login.LoginActivity; +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.manager.ActivityManager; -import com.ckkj.water.utils.manager.WaterUserInfoManager; import com.ckkj.water.utils.show.ToastUtil; import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; import java.util.List; -import de.greenrobot.event.EventBus; - /** * 添加/编辑浇水排程 */ @@ -197,5 +192,10 @@ public class AddWaterPlanActivity extends BaseActivity weekList = new ArrayList<>(); + + private List mDeviceList = new ArrayList<>(); private WaterPlanWeekEntity mPlanEntity; -// private BindDeviceAdapter mAdapter; + private BindDeviceAdapter mAdapter; @Override public void initData(Bundle state) { String jsonContent = getString(R.string.plan_water_entity_json); // WaterPlanWeekEntity entity = new Gson().fromJson(jsonContent, WaterPlanWeekEntity.class); // weekList.add(entity); -// mAdapter = new BindDeviceAdapter(mContext,R.layout.plan_bind_device_item,weekList.get(0).getDeviceList()); -// viewBinding.rvDevices.setAdapter(mAdapter); -// mAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { - // @Override - // public void onItemClick(BaseQuickAdapter adapter, View view, int position) { - // mAdapter.toggleSelection(position); - // syncSelectedDevices(); - // } - // }); + mAdapter = new BindDeviceAdapter(mContext,R.layout.plan_bind_device_item,mDeviceList); + viewBinding.rvDevices.setAdapter(mAdapter); + mAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { + @Override + public void onItemClick(BaseQuickAdapter adapter, View view, int position) { + mAdapter.toggleSelection(position); + if(mDeviceList.get(position).getStatusX().equals("0")){ + mDeviceList.get(position).setStatusX("1"); + }else{ + mDeviceList.get(position).setStatusX("0"); + } +// syncSelectedDevices(); + } + }); // 接收来自AddWaterPlanActivity的WaterPlanWeekEntity对象,并使用传参。 } @@ -71,7 +75,20 @@ public class BindDeviceFragment extends BaseFragment selectedPositions = mAdapter.getSelectedPositions(); // List selected = new ArrayList<>(); // for (int pos : selectedPositions) { @@ -82,7 +99,7 @@ public class BindDeviceFragment extends BaseFragment { -// private Context mContext; -// private Set mSelectedPositions = new HashSet<>(); -// -// public BindDeviceAdapter(Context context, int layoutResId, @Nullable List data) { -// super(layoutResId, data); -// this.mContext = context; -// } -// -// @Override -// protected void convert(BaseViewHolder helper, WaterPlanWeekEntity.DeviceEntity item) { -// CheckBox checkBox = helper.getView(R.id.radio); -// helper.setText(R.id.tv_device_name, item.getDeviceName()); -// helper.setText(R.id.tv_device_serial, item.getDeviceCode()); -// checkBox.setChecked(mSelectedPositions.contains(helper.getLayoutPosition())); -// } -// -// public void toggleSelection(int position) { -// if (mSelectedPositions.contains(position)) { -// mSelectedPositions.remove(position); -// } else { -// mSelectedPositions.add(position); -// } -// notifyDataSetChanged(); -// } -// -// public void clearSelection() { -// mSelectedPositions.clear(); -// notifyDataSetChanged(); -// } -// -// public Set getSelectedPositions() { -// return new HashSet<>(mSelectedPositions); -// } -// -// public int getSelectedCount() { -// return mSelectedPositions.size(); -// } -//} +package com.ckkj.water.plan.adapter; + +import android.content.Context; +import android.widget.CheckBox; + +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.index.entity.WaterDeviceEntity; +import com.ckkj.water.plan.entity.WaterPlanWeekEntity; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class BindDeviceAdapter extends BaseQuickAdapter { + private Context mContext; + private Set mSelectedPositions = new HashSet<>(); + + public BindDeviceAdapter(Context context, int layoutResId, @Nullable List data) { + super(layoutResId, data); + this.mContext = context; + } + + @Override + protected void convert(BaseViewHolder helper, WaterDeviceEntity.DeviceListBean item) { + CheckBox checkBox = helper.getView(R.id.radio); + helper.setText(R.id.tv_device_name, item.getDeviceNameX()); + helper.setText(R.id.tv_device_serial, item.getDeviceSnX()); + checkBox.setChecked(mSelectedPositions.contains(helper.getLayoutPosition())); + } + + public void toggleSelection(int position) { + if (mSelectedPositions.contains(position)) { + mSelectedPositions.remove(position); + } else { + mSelectedPositions.add(position); + } + notifyDataSetChanged(); + } + + public void clearSelection() { + mSelectedPositions.clear(); + notifyDataSetChanged(); + } + + public Set getSelectedPositions() { + return new HashSet<>(mSelectedPositions); + } + + public int getSelectedCount() { + return mSelectedPositions.size(); + } +} diff --git a/app/src/main/java/com/ckkj/water/plan/entity/WaterPlanWeekEntity.java b/app/src/main/java/com/ckkj/water/plan/entity/WaterPlanWeekEntity.java index fd3452d..652f5b1 100644 --- a/app/src/main/java/com/ckkj/water/plan/entity/WaterPlanWeekEntity.java +++ b/app/src/main/java/com/ckkj/water/plan/entity/WaterPlanWeekEntity.java @@ -55,7 +55,7 @@ public class WaterPlanWeekEntity implements Serializable { private String scheduleId; private int weekday = 1; private String weekName; - private String startTime; + private String startTime = ""; private int durationMin = 0; private Object zones; private String triggerType = "0"; diff --git a/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanContract.java b/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanContract.java index 76a6c22..a619843 100644 --- a/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanContract.java +++ b/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanContract.java @@ -1,6 +1,7 @@ package com.ckkj.water.plan.mvp; import com.ckkj.water.base.IView; +import com.ckkj.water.index.entity.WaterDeviceEntity; import com.ckkj.water.plan.entity.WaterPlanWeekEntity; import org.json.JSONObject; @@ -35,5 +36,7 @@ public class WaterPlanContract { void updateConfigSuccess(WaterPlanWeekEntity entity); //获取排程详情 void getPlanDetailInfo(WaterPlanWeekEntity entity); + //查询到可绑定设备列表 + void getPlanBindDeviceList(WaterDeviceEntity bean); } } diff --git a/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanImpl.java b/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanImpl.java index 2019627..a43b402 100644 --- a/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanImpl.java +++ b/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanImpl.java @@ -1,9 +1,7 @@ package com.ckkj.water.plan.mvp; -import com.ckkj.water.device.mvp.DeviceContract; -import com.ckkj.water.index.entity.IndexDeviceEntity; +import com.ckkj.water.index.entity.WaterDeviceEntity; import com.ckkj.water.network.BaseBean; -import com.ckkj.water.network.LoginStateManager; import com.ckkj.water.network.NetWorkManager; import com.ckkj.water.plan.entity.WaterPlanWeekEntity; @@ -146,13 +144,13 @@ public class WaterPlanImpl implements WaterPlanContract.DataModel{ .subscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { + .subscribe(new Observer>() { @Override public void onSubscribe(@NonNull Disposable d) { } @Override - public void onNext(@NonNull BaseBean bean) { + public void onNext(@NonNull BaseBean bean) { if (bean.getCode() == 200) { callBack.success(bean.getData(),0); } diff --git a/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanPresenter.java b/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanPresenter.java index 9ae4e2c..dfa66f1 100644 --- a/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanPresenter.java +++ b/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanPresenter.java @@ -1,17 +1,7 @@ package com.ckkj.water.plan.mvp; -import com.ckkj.water.AppConfig; import com.ckkj.water.base.BasePresenter; -import com.ckkj.water.base.entity.MineUserInfoBean; -import com.ckkj.water.device.mvp.DeviceContract; -import com.ckkj.water.device.mvp.DeviceImpl; -import com.ckkj.water.device.mvp.DevicePresenter; -import com.ckkj.water.index.entity.IndexDeviceEntity; -import com.ckkj.water.index.mvp.IndexContract; -import com.ckkj.water.login.mvp.LoginContract; -import com.ckkj.water.login.mvp.LoginPresenter; -import com.ckkj.water.mine.mvp.MineContract; -import com.ckkj.water.mine.mvp.MinePresenter; +import com.ckkj.water.index.entity.WaterDeviceEntity; import com.ckkj.water.network.BaseBean; import com.ckkj.water.plan.entity.WaterPlanWeekEntity; @@ -147,11 +137,11 @@ public class WaterPlanPresenter extends BasePresenter map = new HashMap<>(); map.put("id",entity.getId()); - impl.getPlanBindDeviceList(map, new WaterPlanContract.CallBack() { + impl.getPlanBindDeviceList(map, new WaterPlanContract.CallBack() { @Override - public void success(BaseBean bean, int total) { + public void success(WaterDeviceEntity bean, int total) { if(WaterPlanPresenter.this.getView() != null){ -// WaterPlanPresenter.this.getView().getDeviceDetailInfo(bean); + WaterPlanPresenter.this.getView().getPlanBindDeviceList(bean); } }