首页设备列表,添加设备
This commit is contained in:
@@ -10,6 +10,7 @@ import androidx.annotation.Nullable;
|
||||
|
||||
import com.ckkj.water.R;
|
||||
import com.ckkj.water.base.BaseFragment;
|
||||
import com.ckkj.water.custom.view.CustomRefreshHeader;
|
||||
import com.ckkj.water.databinding.IndexFragmentLayoutBinding;
|
||||
import com.ckkj.water.device.AddDeviceActivity;
|
||||
import com.ckkj.water.device.DeviceControlActivity;
|
||||
@@ -23,6 +24,8 @@ import com.ckkj.water.permission.PermissionActivity;
|
||||
import com.ckkj.water.utils.show.ToastUtil;
|
||||
import com.maning.mlkitscanner.scan.MNScanManager;
|
||||
import com.maning.mlkitscanner.scan.callback.act.MNScanCallback;
|
||||
import com.scwang.smart.refresh.footer.ClassicsFooter;
|
||||
import com.scwang.smart.refresh.layout.api.RefreshHeader;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -42,16 +45,21 @@ public class IndexFragment extends BaseFragment<IndexFragmentLayoutBinding, Inde
|
||||
|
||||
@Override
|
||||
public void initData(@Nullable Bundle savedInstanceState) {
|
||||
IndexDeviceEntity entity = new IndexDeviceEntity("智能浇水设备A1","YA226641000101","工作中",100);
|
||||
IndexDeviceEntity entity2 = new IndexDeviceEntity("智能浇水设备B1","YA22664100000","工作中",80);
|
||||
IndexDeviceEntity entity3 = new IndexDeviceEntity("智能浇水设备C5","YA234534000101","工作中",70);
|
||||
IndexDeviceEntity entity4 = new IndexDeviceEntity("智能浇水设备D6","YA2266678543101","工作中",50);
|
||||
devList.add(entity);
|
||||
devList.add(entity2);
|
||||
devList.add(entity3);
|
||||
devList.add(entity4);
|
||||
// 设置自定义刷新头
|
||||
RefreshHeader header = new CustomRefreshHeader(mContext);
|
||||
viewBinding.refresh.setRefreshHeader(header);
|
||||
viewBinding.refresh.setRefreshFooter(new ClassicsFooter(mContext));
|
||||
viewBinding.refresh.setOnRefreshListener(layout -> {
|
||||
mCurrentPage = 1;
|
||||
mPresenter.getDevicesList(mCurrentPage);
|
||||
});
|
||||
viewBinding.refresh.setOnLoadMoreListener(layout -> {
|
||||
mCurrentPage++;
|
||||
mPresenter.getDevicesList(mCurrentPage);
|
||||
});
|
||||
showLoadingDialog();
|
||||
mPresenter.getDevicesList();
|
||||
mPresenter.getDevicesList(mCurrentPage);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -136,8 +144,35 @@ public class IndexFragment extends BaseFragment<IndexFragmentLayoutBinding, Inde
|
||||
* 获取设备列表成功
|
||||
*/
|
||||
@Override
|
||||
public void getDeviceListSuccess() {
|
||||
public void getDeviceListSuccess(List<IndexDeviceEntity> list,int total) {
|
||||
hideDialogLoading();
|
||||
viewBinding.refresh.finishRefresh(300);
|
||||
viewBinding.refresh.finishLoadMore(300);
|
||||
if (mCurrentPage == 1) {
|
||||
devList.clear(); // 只在刷新时清除
|
||||
devList = list;
|
||||
} else {
|
||||
devList.addAll(list);
|
||||
}
|
||||
deviceAdapter.setNewData(devList);
|
||||
// 4. 判断是否还有更多数据
|
||||
if (total == deviceAdapter.getItemCount() || list == null || list.size() == 0) {
|
||||
// ✅ 告诉 SmartRefreshLayout 没有更多数据了
|
||||
viewBinding.refresh.setNoMoreData(true);
|
||||
viewBinding.relNoMore.setVisibility(View.VISIBLE); // 自定义底部提示“暂无更多数据”
|
||||
} else {
|
||||
viewBinding.refresh.setNoMoreData(false); // 重置状态
|
||||
viewBinding.relNoMore.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
// 5. 控制空布局和内容显示
|
||||
if (deviceAdapter.getItemCount() != 0) {
|
||||
viewBinding.refresh.setVisibility(View.VISIBLE);
|
||||
viewBinding.relNoresult.setVisibility(View.GONE);
|
||||
} else {
|
||||
viewBinding.refresh.setVisibility(View.GONE);
|
||||
viewBinding.relNoresult.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -27,10 +27,10 @@ public class DeviceAdapter extends BaseQuickAdapter<IndexDeviceEntity, BaseViewH
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder holder, IndexDeviceEntity item) {
|
||||
holder.setText(R.id.tv_device_name,item.getDeviceNames());
|
||||
holder.setText(R.id.tv_device_serial,item.getDeviceSerials());
|
||||
holder.setText(R.id.tv_device_status,item.getDeviceStatuses());
|
||||
holder.setText(R.id.tv_battery_level,item.getBatteryLevels() + "");
|
||||
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,"工作中");
|
||||
holder.setText(R.id.tv_battery_level,"80");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2,48 +2,44 @@ package com.ckkj.water.index.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class IndexDeviceEntity implements Serializable {
|
||||
private String deviceNames;
|
||||
private String deviceSerials;
|
||||
private String deviceStatuses;
|
||||
private int batteryLevels;
|
||||
|
||||
public IndexDeviceEntity(String deviceNames, String deviceSerials, String deviceStatuses, int batteryLevels) {
|
||||
this.deviceNames = deviceNames;
|
||||
this.deviceSerials = deviceSerials;
|
||||
this.deviceStatuses = deviceStatuses;
|
||||
this.batteryLevels = batteryLevels;
|
||||
}
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
|
||||
public String getDeviceNames() {
|
||||
return deviceNames;
|
||||
}
|
||||
|
||||
public void setDeviceNames(String deviceNames) {
|
||||
this.deviceNames = deviceNames;
|
||||
}
|
||||
|
||||
public String getDeviceSerials() {
|
||||
return deviceSerials;
|
||||
}
|
||||
|
||||
public void setDeviceSerials(String deviceSerials) {
|
||||
this.deviceSerials = deviceSerials;
|
||||
}
|
||||
|
||||
public String getDeviceStatuses() {
|
||||
return deviceStatuses;
|
||||
}
|
||||
|
||||
public void setDeviceStatuses(String deviceStatuses) {
|
||||
this.deviceStatuses = deviceStatuses;
|
||||
}
|
||||
|
||||
public int getBatteryLevels() {
|
||||
return batteryLevels;
|
||||
}
|
||||
|
||||
public void setBatteryLevels(int batteryLevels) {
|
||||
this.batteryLevels = batteryLevels;
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
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 java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -16,7 +18,7 @@ import java.util.Map;
|
||||
|
||||
public class IndexContract {
|
||||
public interface CallBack<T> {
|
||||
void success(T msg);
|
||||
void success(T msg,int total);
|
||||
void fail(String msg);
|
||||
}
|
||||
public interface DataModel{
|
||||
@@ -24,22 +26,9 @@ public class IndexContract {
|
||||
//获取设备列表
|
||||
void getDeviceList(Map<String,String> map,CallBack callBack);
|
||||
|
||||
//查询设备信息
|
||||
void getDeviceInfomation(Map<String,String> map,CallBack callBack);
|
||||
//添加设备
|
||||
void addDevice(JSONObject json,CallBack callBack);
|
||||
|
||||
//修改设备信息
|
||||
void editDeviceInfo(JSONObject json,CallBack callBack);
|
||||
|
||||
//修改设备信息
|
||||
void deleteDevice(JSONObject json,CallBack callBack);
|
||||
|
||||
//手动开启关闭设备
|
||||
void turnOnOffDevice(JSONObject json,CallBack callBack);
|
||||
}
|
||||
|
||||
public interface IndexView extends IView{
|
||||
void getDeviceListSuccess();
|
||||
void getDeviceListSuccess(List<IndexDeviceEntity> list,int total);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package com.ckkj.water.index.mvp;
|
||||
|
||||
import com.ckkj.water.index.entity.IndexDeviceEntity;
|
||||
import com.ckkj.water.network.BaseBean;
|
||||
import com.ckkj.water.network.NetWorkManager;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import io.reactivex.Observer;
|
||||
@@ -26,15 +28,15 @@ public class IndexImpl implements IndexContract.DataModel{
|
||||
.subscribeOn(Schedulers.io())
|
||||
.unsubscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Observer<BaseBean>() {
|
||||
.subscribe(new Observer<BaseBean<List<IndexDeviceEntity>>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseBean bean) {
|
||||
public void onNext(@NonNull BaseBean<List<IndexDeviceEntity>> bean) {
|
||||
if (bean.getCode() == 200) {
|
||||
callBack.success(bean.getData());
|
||||
callBack.success(bean.getRows(),bean.getTotal());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,28 +51,4 @@ public class IndexImpl implements IndexContract.DataModel{
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getDeviceInfomation(Map<String, String> map, IndexContract.CallBack callBack) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addDevice(JSONObject json, IndexContract.CallBack callBack) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editDeviceInfo(JSONObject json, IndexContract.CallBack callBack) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteDevice(JSONObject json, IndexContract.CallBack callBack) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void turnOnOffDevice(JSONObject json, IndexContract.CallBack callBack) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.ckkj.water.index.mvp;
|
||||
|
||||
import com.ckkj.water.base.BasePresenter;
|
||||
import com.ckkj.water.login.mvp.LoginImpl;
|
||||
import com.ckkj.water.network.BaseBean;
|
||||
import com.ckkj.water.index.entity.IndexDeviceEntity;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class IndexPresenter extends BasePresenter<IndexContract.IndexView>{
|
||||
|
||||
@@ -17,12 +17,13 @@ public class IndexPresenter extends BasePresenter<IndexContract.IndexView>{
|
||||
/**
|
||||
* 查询设备列表
|
||||
*/
|
||||
public void getDevicesList() {
|
||||
mImpl.getDeviceList(new HashMap<>(), new IndexContract.CallBack<BaseBean>() {
|
||||
public void getDevicesList(int mCurrentPage) {
|
||||
mImpl.getDeviceList(new HashMap<>(), new IndexContract.CallBack<List<IndexDeviceEntity>>() {
|
||||
|
||||
@Override
|
||||
public void success(BaseBean bean) {
|
||||
public void success(List<IndexDeviceEntity> list, int total) {
|
||||
if(IndexPresenter.this.getView() != null){
|
||||
IndexPresenter.this.getView().getDeviceListSuccess();
|
||||
IndexPresenter.this.getView().getDeviceListSuccess(list,total);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user