修改设备信息

This commit is contained in:
fengjignqi
2026-05-20 14:50:35 +08:00
parent 50912b10c9
commit dcce26edf2
14 changed files with 322 additions and 13 deletions

View File

@@ -478,16 +478,21 @@ public abstract class BaseActivity<T extends ViewBinding, P extends IPresenter>
* *
* @param title 标题 * @param title 标题
* @param hint 提示内容2 * @param hint 提示内容2
* @param content 内容
* @param touchOutsideCancel 弹窗类型 * @param touchOutsideCancel 弹窗类型
* @param cancelText 取消 文案 * @param cancelText 取消 文案
* @param confirmText 确定 文案 * @param confirmText 确定 文案
* @param click * @param click
*/ */
public void showEditDialog(String title, String hint, boolean touchOutsideCancel, String cancelText, String confirmText, public void showEditDialog(String title, String hint,String content, boolean touchOutsideCancel, String cancelText, String confirmText,
final OnDialogClick click) { final OnDialogClick click) {
View view = getLayoutInflater().inflate(R.layout.public_dialog_input_text, null); View view = getLayoutInflater().inflate(R.layout.public_dialog_input_text, null);
EditText editText = view.findViewById(R.id.et_input); EditText editText = view.findViewById(R.id.et_input);
editText.setHint(hint); if(TextUtils.isEmpty(content)){
editText.setHint(hint);
}else{
editText.setText(content);
}
setTextView(R.id.tv_title, title, view); setTextView(R.id.tv_title, title, view);
if (!TextUtils.isEmpty(confirmText) && !TextUtils.isEmpty(cancelText)) { if (!TextUtils.isEmpty(confirmText) && !TextUtils.isEmpty(cancelText)) {
((TextView) view.findViewById(R.id.btnLeft)).setText(cancelText); ((TextView) view.findViewById(R.id.btnLeft)).setText(cancelText);

View File

@@ -20,6 +20,7 @@ import com.ckkj.water.databinding.AddDeviceLayoutBinding;
import com.ckkj.water.device.mvp.DeviceContract; import com.ckkj.water.device.mvp.DeviceContract;
import com.ckkj.water.device.mvp.DeviceImpl; import com.ckkj.water.device.mvp.DeviceImpl;
import com.ckkj.water.device.mvp.DevicePresenter; import com.ckkj.water.device.mvp.DevicePresenter;
import com.ckkj.water.index.entity.IndexDeviceEntity;
import com.ckkj.water.network.BaseBean; import com.ckkj.water.network.BaseBean;
import com.ckkj.water.utils.manager.ActivityManager; import com.ckkj.water.utils.manager.ActivityManager;
import com.ckkj.water.utils.manager.ThemeManager; import com.ckkj.water.utils.manager.ThemeManager;
@@ -193,6 +194,11 @@ public class AddDeviceActivity extends BaseActivity<AddDeviceLayoutBinding, Devi
} }
@Override
public void getDeviceDetailInfo(IndexDeviceEntity bean) {
}
@Override @Override
public void editDeviceInfoSuccess(BaseBean bean) { public void editDeviceInfoSuccess(BaseBean bean) {

View File

@@ -15,6 +15,7 @@ import com.ckkj.water.databinding.DeviceConnectLayoutBinding;
import com.ckkj.water.device.mvp.DeviceContract; import com.ckkj.water.device.mvp.DeviceContract;
import com.ckkj.water.device.mvp.DeviceImpl; import com.ckkj.water.device.mvp.DeviceImpl;
import com.ckkj.water.device.mvp.DevicePresenter; import com.ckkj.water.device.mvp.DevicePresenter;
import com.ckkj.water.index.entity.IndexDeviceEntity;
import com.ckkj.water.network.BaseBean; import com.ckkj.water.network.BaseBean;
import com.ckkj.water.utils.manager.ActivityManager; import com.ckkj.water.utils.manager.ActivityManager;
import com.ckkj.water.utils.show.ToastUtil; import com.ckkj.water.utils.show.ToastUtil;
@@ -103,6 +104,11 @@ public class DeviceConnectActivity extends BaseActivity<DeviceConnectLayoutBindi
} }
@Override
public void getDeviceDetailInfo(IndexDeviceEntity bean) {
}
@Override @Override
public void editDeviceInfoSuccess(BaseBean bean) { public void editDeviceInfoSuccess(BaseBean bean) {

View File

@@ -1,8 +1,11 @@
package com.ckkj.water.device; package com.ckkj.water.device;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
import androidx.annotation.Nullable;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.ckkj.water.R; import com.ckkj.water.R;
import com.ckkj.water.base.BaseActivity; import com.ckkj.water.base.BaseActivity;
@@ -14,7 +17,9 @@ import com.ckkj.water.device.adapter.DeviceTimeSelectAdapter;
import com.ckkj.water.device.mvp.DeviceContract; import com.ckkj.water.device.mvp.DeviceContract;
import com.ckkj.water.device.mvp.DeviceImpl; import com.ckkj.water.device.mvp.DeviceImpl;
import com.ckkj.water.device.mvp.DevicePresenter; import com.ckkj.water.device.mvp.DevicePresenter;
import com.ckkj.water.index.entity.IndexDeviceEntity;
import com.ckkj.water.network.BaseBean; import com.ckkj.water.network.BaseBean;
import com.ckkj.water.utils.show.ToastUtil;
import com.gyf.immersionbar.ImmersionBar; import com.gyf.immersionbar.ImmersionBar;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.core.BasePopupView; import com.lxj.xpopup.core.BasePopupView;
@@ -29,6 +34,7 @@ public class DeviceControlActivity extends BaseActivity<DeviceControlLayoutBindi
implements DeviceContract.DeviceView { implements DeviceContract.DeviceView {
private List<String> mTimeList = new ArrayList<>(); private List<String> mTimeList = new ArrayList<>();
private IndexDeviceEntity mDeviceEntity;
private DeviceTimeSelectAdapter mAdapter; private DeviceTimeSelectAdapter mAdapter;
@Override @Override
public DevicePresenter createPresenter() { public DevicePresenter createPresenter() {
@@ -38,6 +44,15 @@ public class DeviceControlActivity extends BaseActivity<DeviceControlLayoutBindi
@Override @Override
public void initData(Bundle savedInstanceState) { public void initData(Bundle savedInstanceState) {
super.initData(savedInstanceState); super.initData(savedInstanceState);
Bundle bundle = getIntent().getExtras();
if(bundle != null){
mDeviceEntity = (IndexDeviceEntity) bundle.getSerializable("device_info");
if(mDeviceEntity != null){
showLoadingDialog();
mPresenter.getDeviceDetailInfo(mDeviceEntity.getId());
viewBinding.includedTitle.tvTitle.setText(mDeviceEntity.getDeviceName());
}
}
mTimeList.add("1min"); mTimeList.add("1min");
mTimeList.add("2min"); mTimeList.add("2min");
mTimeList.add("3min"); mTimeList.add("3min");
@@ -55,8 +70,8 @@ public class DeviceControlActivity extends BaseActivity<DeviceControlLayoutBindi
.statusBarDarkFont(true) // 设置状态栏字体为黑色 .statusBarDarkFont(true) // 设置状态栏字体为黑色
.titleBar(viewBinding.rlTitle) .titleBar(viewBinding.rlTitle)
.init(); .init();
viewBinding.includedTitle.tvTitle.setText("设备名称");
viewBinding.includedTitle.imgSetting.setVisibility(View.VISIBLE); viewBinding.includedTitle.imgSetting.setVisibility(View.VISIBLE);
viewBinding.includedTitle.imgSetting.setImageDrawable(getDrawable(R.mipmap.device_ctrl_setting));
mAdapter = new DeviceTimeSelectAdapter(mContext,R.layout.device_work_time_item,mTimeList); mAdapter = new DeviceTimeSelectAdapter(mContext,R.layout.device_work_time_item,mTimeList);
viewBinding.rvTimeList.setAdapter(mAdapter); viewBinding.rvTimeList.setAdapter(mAdapter);
viewBinding.rvTimeList.addItemDecoration(new GridSpacingItemDecoration(4, 10, true)); viewBinding.rvTimeList.addItemDecoration(new GridSpacingItemDecoration(4, 10, true));
@@ -90,7 +105,9 @@ public class DeviceControlActivity extends BaseActivity<DeviceControlLayoutBindi
break; break;
case R.id.img_setting: case R.id.img_setting:
goTo(mContext, DeviceSettingsActivity.class,null); Bundle bundle = new Bundle();
bundle.putSerializable("device_entity",mDeviceEntity);
goToForResult(mContext, DeviceSettingsActivity.class,REQUEST_EVENT_CODE_10002,bundle);
break; break;
case R.id.linear_bt: case R.id.linear_bt:
@@ -117,6 +134,29 @@ public class DeviceControlActivity extends BaseActivity<DeviceControlLayoutBindi
} }
} }
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK){
switch (requestCode){
case REQUEST_EVENT_CODE_10002:
mDeviceEntity = (IndexDeviceEntity) data.getSerializableExtra("device_entity");
viewBinding.includedTitle.tvTitle.setText(mDeviceEntity.getDeviceName());
break;
}
}
}
/**
* 获取设备详情成功
* @param bean
*/
@Override
public void getDeviceDetailInfo(IndexDeviceEntity bean) {
hideDialogLoading();
}
@Override @Override
public int getLayoutResId(Bundle savedInstanceState) { public int getLayoutResId(Bundle savedInstanceState) {
return 0; return 0;
@@ -124,7 +164,8 @@ public class DeviceControlActivity extends BaseActivity<DeviceControlLayoutBindi
@Override @Override
public void showError(String message) { public void showError(String message) {
hideDialogLoading();
ToastUtil.showShort(mContext,message);
} }
@Override @Override
@@ -137,6 +178,8 @@ public class DeviceControlActivity extends BaseActivity<DeviceControlLayoutBindi
} }
@Override @Override
public void editDeviceInfoSuccess(BaseBean bean) { public void editDeviceInfoSuccess(BaseBean bean) {

View File

@@ -9,6 +9,7 @@ import com.ckkj.water.databinding.DeviceInfoLayoutBinding;
import com.ckkj.water.device.mvp.DeviceContract; import com.ckkj.water.device.mvp.DeviceContract;
import com.ckkj.water.device.mvp.DeviceImpl; import com.ckkj.water.device.mvp.DeviceImpl;
import com.ckkj.water.device.mvp.DevicePresenter; import com.ckkj.water.device.mvp.DevicePresenter;
import com.ckkj.water.index.entity.IndexDeviceEntity;
import com.ckkj.water.network.BaseBean; import com.ckkj.water.network.BaseBean;
import com.gyf.immersionbar.ImmersionBar; import com.gyf.immersionbar.ImmersionBar;
@@ -71,6 +72,11 @@ public class DeviceInfoActivity extends BaseActivity<DeviceInfoLayoutBinding, De
} }
@Override
public void getDeviceDetailInfo(IndexDeviceEntity bean) {
}
@Override @Override
public void editDeviceInfoSuccess(BaseBean bean) { public void editDeviceInfoSuccess(BaseBean bean) {

View File

@@ -12,6 +12,7 @@ import com.ckkj.water.databinding.SetDeviceNameLayoutBinding;
import com.ckkj.water.device.mvp.DeviceContract; import com.ckkj.water.device.mvp.DeviceContract;
import com.ckkj.water.device.mvp.DeviceImpl; import com.ckkj.water.device.mvp.DeviceImpl;
import com.ckkj.water.device.mvp.DevicePresenter; import com.ckkj.water.device.mvp.DevicePresenter;
import com.ckkj.water.index.entity.IndexDeviceEntity;
import com.ckkj.water.network.BaseBean; import com.ckkj.water.network.BaseBean;
import com.ckkj.water.utils.manager.ActivityManager; import com.ckkj.water.utils.manager.ActivityManager;
import com.ckkj.water.utils.show.ToastUtil; import com.ckkj.water.utils.show.ToastUtil;
@@ -85,6 +86,11 @@ public class DeviceReNameActivity extends BaseActivity<SetDeviceNameLayoutBindin
},800); },800);
} }
@Override
public void getDeviceDetailInfo(IndexDeviceEntity bean) {
}
@Override @Override
public int getLayoutResId(Bundle savedInstanceState) { public int getLayoutResId(Bundle savedInstanceState) {

View File

@@ -14,6 +14,7 @@ import com.ckkj.water.databinding.DeviceSettingsLayoutBinding;
import com.ckkj.water.device.mvp.DeviceContract; import com.ckkj.water.device.mvp.DeviceContract;
import com.ckkj.water.device.mvp.DeviceImpl; import com.ckkj.water.device.mvp.DeviceImpl;
import com.ckkj.water.device.mvp.DevicePresenter; import com.ckkj.water.device.mvp.DevicePresenter;
import com.ckkj.water.index.entity.IndexDeviceEntity;
import com.ckkj.water.network.BaseBean; import com.ckkj.water.network.BaseBean;
import com.ckkj.water.utils.show.ToastUtil; import com.ckkj.water.utils.show.ToastUtil;
import com.gyf.immersionbar.ImmersionBar; import com.gyf.immersionbar.ImmersionBar;
@@ -23,6 +24,8 @@ import com.gyf.immersionbar.ImmersionBar;
*/ */
public class DeviceSettingsActivity extends BaseActivity<DeviceSettingsLayoutBinding, DevicePresenter> public class DeviceSettingsActivity extends BaseActivity<DeviceSettingsLayoutBinding, DevicePresenter>
implements DeviceContract.DeviceView { implements DeviceContract.DeviceView {
private IndexDeviceEntity mDeviceEntity;
@Override @Override
public DevicePresenter createPresenter() { public DevicePresenter createPresenter() {
return new DevicePresenter(new DeviceImpl()); return new DevicePresenter(new DeviceImpl());
@@ -31,7 +34,13 @@ public class DeviceSettingsActivity extends BaseActivity<DeviceSettingsLayoutBin
@Override @Override
public void initData(Bundle savedInstanceState) { public void initData(Bundle savedInstanceState) {
super.initData(savedInstanceState); super.initData(savedInstanceState);
Bundle bundle = getIntent().getExtras();
if(bundle != null){
mDeviceEntity = (IndexDeviceEntity) bundle.getSerializable("device_entity");
viewBinding.tvDeviceName.setText(mDeviceEntity.getDeviceName());
viewBinding.tvWifiName.setText(mDeviceEntity.getWifiName());
}
ImmersionBar.with(this) ImmersionBar.with(this)
.statusBarColor(R.color.white) // 设置状态栏颜色 .statusBarColor(R.color.white) // 设置状态栏颜色
.statusBarDarkFont(true) // 设置状态栏字体为黑色 .statusBarDarkFont(true) // 设置状态栏字体为黑色
@@ -62,6 +71,7 @@ public class DeviceSettingsActivity extends BaseActivity<DeviceSettingsLayoutBin
case R.id.rl_dev_name: case R.id.rl_dev_name:
showEditDialog(getString(R.string.device_setting_name), showEditDialog(getString(R.string.device_setting_name),
getString(R.string.input_device_name_hint), getString(R.string.input_device_name_hint),
mDeviceEntity.getDeviceName(),
true, true,
getString(R.string.cancel_text), getString(R.string.cancel_text),
getString(R.string.confirm_text), new OnDialogClick() { getString(R.string.confirm_text), new OnDialogClick() {
@@ -76,6 +86,8 @@ public class DeviceSettingsActivity extends BaseActivity<DeviceSettingsLayoutBin
@Override @Override
public void onConfirmClisk(String content) { public void onConfirmClisk(String content) {
viewBinding.tvDeviceName.setText(content); viewBinding.tvDeviceName.setText(content);
mDeviceEntity.setDeviceName(content);
mPresenter.updateDeviceInfo(mDeviceEntity);
} }
@Override @Override
@@ -104,7 +116,7 @@ public class DeviceSettingsActivity extends BaseActivity<DeviceSettingsLayoutBin
@Override @Override
public void onConfirmClick() { public void onConfirmClick() {
ToastUtil.showShort(mContext,"确定"); mPresenter.unBindDevice(mDeviceEntity);
} }
}); });
break; break;
@@ -119,13 +131,34 @@ public class DeviceSettingsActivity extends BaseActivity<DeviceSettingsLayoutBin
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
switch (requestCode) { switch (requestCode) {
case REQUEST_EVENT_CODE_10001: case REQUEST_EVENT_CODE_10001:
ToastUtil.showShort(mContext,data.getStringExtra("wifi_name")); viewBinding.tvWifiName.setText(data.getStringExtra("wifi_name"));
mDeviceEntity.setWifiName(data.getStringExtra("wifi_name"));
mDeviceEntity.setWifiPassword(data.getStringExtra("wifi_psd"));
mPresenter.updateDeviceInfo(mDeviceEntity);
break; break;
} }
} }
} }
} }
/**
* 修改设备信息成功
* @param bean
*/
@Override
public void editDeviceInfoSuccess(BaseBean bean) {
hideDialogLoading();
}
@Override
public void finish() {
Intent intent = new Intent();
intent.putExtra("device_entity",mDeviceEntity);
setResult(RESULT_OK,intent);
super.finish();
}
@Override @Override
public int getLayoutResId(Bundle savedInstanceState) { public int getLayoutResId(Bundle savedInstanceState) {
return 0; return 0;
@@ -147,10 +180,12 @@ public class DeviceSettingsActivity extends BaseActivity<DeviceSettingsLayoutBin
} }
@Override @Override
public void editDeviceInfoSuccess(BaseBean bean) { public void getDeviceDetailInfo(IndexDeviceEntity bean) {
} }
@Override @Override
public void deleteDeviceSuccess(BaseBean bean) { public void deleteDeviceSuccess(BaseBean bean) {

View File

@@ -23,6 +23,7 @@ import com.ckkj.water.databinding.DeviceResetWifiBinding;
import com.ckkj.water.device.mvp.DeviceContract; import com.ckkj.water.device.mvp.DeviceContract;
import com.ckkj.water.device.mvp.DeviceImpl; import com.ckkj.water.device.mvp.DeviceImpl;
import com.ckkj.water.device.mvp.DevicePresenter; import com.ckkj.water.device.mvp.DevicePresenter;
import com.ckkj.water.index.entity.IndexDeviceEntity;
import com.ckkj.water.network.BaseBean; import com.ckkj.water.network.BaseBean;
import com.ckkj.water.permission.PermissionActivity; import com.ckkj.water.permission.PermissionActivity;
import com.ckkj.water.utils.manager.ActivityManager; import com.ckkj.water.utils.manager.ActivityManager;
@@ -196,6 +197,11 @@ public class SelectWifiActivity extends BaseActivity<DeviceResetWifiBinding, Dev
} }
@Override
public void getDeviceDetailInfo(IndexDeviceEntity bean) {
}
@Override @Override
public void editDeviceInfoSuccess(BaseBean bean) { public void editDeviceInfoSuccess(BaseBean bean) {

View File

@@ -1,6 +1,7 @@
package com.ckkj.water.device.mvp; package com.ckkj.water.device.mvp;
import com.ckkj.water.base.IView; import com.ckkj.water.base.IView;
import com.ckkj.water.index.entity.IndexDeviceEntity;
import com.ckkj.water.index.mvp.IndexContract; import com.ckkj.water.index.mvp.IndexContract;
import com.ckkj.water.network.BaseBean; import com.ckkj.water.network.BaseBean;
@@ -33,6 +34,7 @@ public class DeviceContract {
public interface DeviceView extends IView { public interface DeviceView extends IView {
//添加设备成功g //添加设备成功g
void addDeviceSuccess(BaseBean bean); void addDeviceSuccess(BaseBean bean);
void getDeviceDetailInfo(IndexDeviceEntity bean);
void editDeviceInfoSuccess(BaseBean bean); void editDeviceInfoSuccess(BaseBean bean);
void deleteDeviceSuccess(BaseBean bean); void deleteDeviceSuccess(BaseBean bean);
void turnOnOffDeviceSuccess(BaseBean bean); void turnOnOffDeviceSuccess(BaseBean bean);

View File

@@ -1,5 +1,7 @@
package com.ckkj.water.device.mvp; package com.ckkj.water.device.mvp;
import com.ckkj.water.base.entity.MineUserInfoBean;
import com.ckkj.water.index.entity.IndexDeviceEntity;
import com.ckkj.water.index.mvp.IndexContract; import com.ckkj.water.index.mvp.IndexContract;
import com.ckkj.water.network.BaseBean; import com.ckkj.water.network.BaseBean;
import com.ckkj.water.network.NetWorkManager; import com.ckkj.water.network.NetWorkManager;
@@ -18,7 +20,32 @@ public class DeviceImpl implements DeviceContract.DataModel{
@Override @Override
public void getDeviceInfomation(Map<String, String> map, IndexContract.CallBack callBack) { public void getDeviceInfomation(Map<String, String> map, IndexContract.CallBack callBack) {
String deviceID = map.get("id");
NetWorkManager.getRequest().getDeviceDetailInfo(NetWorkManager.getToken(), deviceID)
.subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseBean<IndexDeviceEntity>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull BaseBean<IndexDeviceEntity> bean) {
if (bean.getCode() == 200) {
callBack.success(bean.getData(),0);
}
}
@Override
public void onError(@NonNull Throwable e) {
callBack.fail(e.getMessage());
}
@Override
public void onComplete() {
}
});
} }
/** /**
@@ -61,14 +88,84 @@ public class DeviceImpl implements DeviceContract.DataModel{
} }
} }
/**
* 修改设备信息
* @param json
* @param callBack
*/
@Override @Override
public void editDeviceInfo(JSONObject json, IndexContract.CallBack callBack) { public void editDeviceInfo(JSONObject json, IndexContract.CallBack callBack) {
try {
NetWorkManager.getRequest().updateDeviceInfo(NetWorkManager.getToken(), NetWorkManager.toRequestBody(json))
.subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull BaseBean bean) {
if (bean.getCode() == 200) {
callBack.success(bean,0);
} else {
callBack.fail(bean.getMessage());
}
}
@Override
public void onError(@NonNull Throwable e) {
callBack.fail(e.getMessage());
}
@Override
public void onComplete() {
}
});
} catch (Exception e) {
e.printStackTrace();
}
} }
/**
* 删除设备
* @param json
* @param callBack
*/
@Override @Override
public void deleteDevice(JSONObject json, IndexContract.CallBack callBack) { public void deleteDevice(JSONObject json, IndexContract.CallBack callBack) {
try {
NetWorkManager.getRequest().unBindDevice(NetWorkManager.getToken(), NetWorkManager.toRequestBodyJSONArray(json))
.subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull BaseBean bean) {
if (bean.getCode() == 200) {
callBack.success(bean,0);
} else {
callBack.fail(bean.getMessage());
}
}
@Override
public void onError(@NonNull Throwable e) {
callBack.fail(e.getMessage());
}
@Override
public void onComplete() {
}
});
} catch (Exception e) {
e.printStackTrace();
}
} }
@Override @Override

View File

@@ -1,12 +1,15 @@
package com.ckkj.water.device.mvp; package com.ckkj.water.device.mvp;
import com.ckkj.water.base.BasePresenter; import com.ckkj.water.base.BasePresenter;
import com.ckkj.water.index.entity.IndexDeviceEntity;
import com.ckkj.water.index.mvp.IndexContract; import com.ckkj.water.index.mvp.IndexContract;
import com.ckkj.water.network.BaseBean; import com.ckkj.water.network.BaseBean;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
import java.util.Random; import java.util.Random;
public class DevicePresenter extends BasePresenter<DeviceContract.DeviceView> { public class DevicePresenter extends BasePresenter<DeviceContract.DeviceView> {
@@ -16,6 +19,9 @@ public class DevicePresenter extends BasePresenter<DeviceContract.DeviceView> {
this.impl = impl; this.impl = impl;
} }
/**
* 添加设备
*/
public void addDevice() { public void addDevice() {
try { try {
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
@@ -37,11 +43,76 @@ public class DevicePresenter extends BasePresenter<DeviceContract.DeviceView> {
@Override @Override
public void fail(String msg) { public void fail(String msg) {
if(DevicePresenter.this.getView() != null){
DevicePresenter.this.getView().showError( msg);
}
} }
}); });
} catch (JSONException e) { } catch (JSONException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
/**
* 获取设备详情信息
* @param deviceID
*/
public void getDeviceDetailInfo(String deviceID) {
Map<String,String> map = new HashMap<>();
map.put("id",deviceID);
impl.getDeviceInfomation(map, new IndexContract.CallBack<IndexDeviceEntity>() {
@Override
public void success(IndexDeviceEntity bean,int total) {
if(DevicePresenter.this.getView() != null){
DevicePresenter.this.getView().getDeviceDetailInfo(bean);
}
}
@Override
public void fail(String msg) {
if(DevicePresenter.this.getView() != null){
DevicePresenter.this.getView().showError( msg);
}
}
});
}
/**
* 修改设备信息
* @param mDeviceEntity
*/
public void updateDeviceInfo(IndexDeviceEntity mDeviceEntity) {
try {
JSONObject json = new JSONObject();
json.put("id",mDeviceEntity.getId());
json.put("deviceName",mDeviceEntity.getDeviceName());
json.put("wifiName",mDeviceEntity.getWifiName());
json.put("wifiPassword",mDeviceEntity.getWifiPassword());
impl.editDeviceInfo(json, new IndexContract.CallBack<BaseBean>() {
@Override
public void success(BaseBean bean,int total) {
if(DevicePresenter.this.getView() != null){
DevicePresenter.this.getView().editDeviceInfoSuccess(bean);
}
}
@Override
public void fail(String msg) {
if(DevicePresenter.this.getView() != null){
DevicePresenter.this.getView().showError( msg);
}
}
});
} catch (JSONException e) {
throw new RuntimeException(e);
}
}
/**
* 解绑设备
* @param deviceEntity
*/
public void unBindDevice(IndexDeviceEntity deviceEntity) {
//Todo
}
} }

View File

@@ -8,6 +8,7 @@ import android.view.View;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.ckkj.water.AppConfig;
import com.ckkj.water.R; import com.ckkj.water.R;
import com.ckkj.water.base.BaseFragment; import com.ckkj.water.base.BaseFragment;
import com.ckkj.water.custom.view.CustomRefreshHeader; import com.ckkj.water.custom.view.CustomRefreshHeader;
@@ -43,6 +44,15 @@ public class IndexFragment extends BaseFragment<IndexFragmentLayoutBinding, Inde
protected void initArgs(Bundle bundle) { protected void initArgs(Bundle bundle) {
} }
@Override
protected void onResumeInitData() {
super.onResumeInitData();
if(AppConfig.USER_LOGIN){
showLoadingDialog();
mPresenter.getDevicesList(mCurrentPage);
}
}
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
// 设置自定义刷新头 // 设置自定义刷新头
@@ -57,9 +67,6 @@ public class IndexFragment extends BaseFragment<IndexFragmentLayoutBinding, Inde
mCurrentPage++; mCurrentPage++;
mPresenter.getDevicesList(mCurrentPage); mPresenter.getDevicesList(mCurrentPage);
}); });
showLoadingDialog();
mPresenter.getDevicesList(mCurrentPage);
} }
@Override @Override
@@ -136,7 +143,9 @@ public class IndexFragment extends BaseFragment<IndexFragmentLayoutBinding, Inde
deviceAdapter = new DeviceAdapter(mContext,R.layout.index_device_list_item,devList); deviceAdapter = new DeviceAdapter(mContext,R.layout.index_device_list_item,devList);
viewBinding.rvDevices.setAdapter(deviceAdapter); viewBinding.rvDevices.setAdapter(deviceAdapter);
deviceAdapter.setOnItemClickListener((adapter, view, position) -> { deviceAdapter.setOnItemClickListener((adapter, view, position) -> {
goTo(mContext, DeviceControlActivity.class,null); Bundle bundle = new Bundle();
bundle.putSerializable("device_info",devList.get(position));
goTo(mContext, DeviceControlActivity.class,bundle);
}); });
} }

View File

@@ -16,9 +16,12 @@ import java.util.Map;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import retrofit2.http.Body; import retrofit2.http.Body;
import retrofit2.http.DELETE;
import retrofit2.http.GET; import retrofit2.http.GET;
import retrofit2.http.HeaderMap; import retrofit2.http.HeaderMap;
import retrofit2.http.POST; import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.QueryMap; import retrofit2.http.QueryMap;
/** /**
@@ -46,6 +49,19 @@ public interface Request {
//添加设备 //添加设备
@POST("app/v1/addDevice") @POST("app/v1/addDevice")
Observable<BaseBean> addDevice(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody); Observable<BaseBean> addDevice(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
//获取设备详细信息
@GET("app/v1/device/{id}")
Observable<BaseBean<IndexDeviceEntity>> getDeviceDetailInfo(@HeaderMap Map<String, String> headMap, @Path("id") String id);
//修改更新设备信息
@PUT("app/v1/updateDeviceInfo")
Observable<BaseBean> updateDeviceInfo(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
//解绑信息
// 示例:ids array[string]
//["2052921001527869441"]
@DELETE("/app/v1/deleteDevice")
Observable<BaseBean> unBindDevice(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);

View File

@@ -102,6 +102,7 @@
android:layout_marginRight="@dimen/dp_23" android:layout_marginRight="@dimen/dp_23"
android:layout_alignParentRight="true"/> android:layout_alignParentRight="true"/>
<TextView <TextView
android:id="@+id/tv_wifi_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:layout_centerVertical="true"