diff --git a/app/src/main/java/com/ckkj/water/device/DeviceConnectActivity.java b/app/src/main/java/com/ckkj/water/device/DeviceConnectActivity.java index a41b62b..333ab48 100644 --- a/app/src/main/java/com/ckkj/water/device/DeviceConnectActivity.java +++ b/app/src/main/java/com/ckkj/water/device/DeviceConnectActivity.java @@ -34,6 +34,7 @@ public class DeviceConnectActivity extends BaseActivity { + if (provisionTimeoutHandled || isFinishing()) return; + provisionTimeoutHandled = true; + if (espProvisionManager != null) { + espProvisionManager.setCallback(null); + espProvisionManager.disconnect(); + } + ToastUtil.showShort(mContext, getString(R.string.device_provision_timeout)); + finish(); + }; @Override protected void onCreate(Bundle savedInstanceState) { @@ -101,6 +113,9 @@ public class DeviceConnectActivity extends BaseActivity bean) { if (bean.getCode() == 200) { callBack.success(bean.getData(),0); + } else { + callBack.fail(bean.getCode() == 501 ? "DEVICE_ACCESS_LOST" : bean.getMessage()); } } @@ -268,6 +270,8 @@ public class DeviceImpl implements DeviceContract.DataModel{ public void onNext(@NonNull BaseBean bean) { if (bean.getCode() == 200) { callBack.success(bean.getData(),0); + } else { + callBack.fail(bean.getCode() == 501 ? "DEVICE_ACCESS_LOST" : bean.getMessage()); } } @@ -282,3 +286,4 @@ public class DeviceImpl implements DeviceContract.DataModel{ }); } } + 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 ff8aaec..2c1cc5d 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 @@ -49,7 +49,11 @@ public class DevicePresenter extends BasePresenter { @Override public void fail(String msg) { if(DevicePresenter.this.getView() != null){ - DevicePresenter.this.getView().showError( msg); + if ("DEVICE_ACCESS_LOST".equals(msg)) { + DevicePresenter.this.getView().deviceAccessLost(); + } else { + DevicePresenter.this.getView().showError(msg); + } } } }); @@ -76,7 +80,11 @@ public class DevicePresenter extends BasePresenter { @Override public void fail(String msg) { if(DevicePresenter.this.getView() != null){ - DevicePresenter.this.getView().showError( msg); + if ("DEVICE_ACCESS_LOST".equals(msg)) { + DevicePresenter.this.getView().deviceAccessLost(); + } else { + DevicePresenter.this.getView().showError(msg); + } } } }); @@ -104,7 +112,11 @@ public class DevicePresenter extends BasePresenter { @Override public void fail(String msg) { if(DevicePresenter.this.getView() != null){ - DevicePresenter.this.getView().showError( msg); + if ("DEVICE_ACCESS_LOST".equals(msg)) { + DevicePresenter.this.getView().deviceAccessLost(); + } else { + DevicePresenter.this.getView().showError(msg); + } } } }); @@ -181,7 +193,11 @@ public class DevicePresenter extends BasePresenter { @Override public void fail(String msg) { if(DevicePresenter.this.getView() != null){ - DevicePresenter.this.getView().showError( msg); + if ("DEVICE_ACCESS_LOST".equals(msg)) { + DevicePresenter.this.getView().deviceAccessLost(); + } else { + DevicePresenter.this.getView().showError(msg); + } } } }); @@ -240,9 +256,14 @@ public class DevicePresenter extends BasePresenter { @Override public void fail(String msg) { if(DevicePresenter.this.getView() != null){ - DevicePresenter.this.getView().showError( msg); + if ("DEVICE_ACCESS_LOST".equals(msg)) { + DevicePresenter.this.getView().deviceAccessLost(); + } else { + DevicePresenter.this.getView().showError(msg); + } } } }); } } + diff --git a/app/src/main/java/com/ckkj/water/index/IndexFragment.java b/app/src/main/java/com/ckkj/water/index/IndexFragment.java index ab4534a..4dff125 100644 --- a/app/src/main/java/com/ckkj/water/index/IndexFragment.java +++ b/app/src/main/java/com/ckkj/water/index/IndexFragment.java @@ -210,6 +210,21 @@ public class IndexFragment extends BaseFragment { + if(!devList.get(position).getBindingStatus().equals("ACTIVE")){ + showDialogtext(null, false, false, + getString(R.string.tip_text), getString(R.string.device_no_permission_delete_message), + getString(R.string.cancel_text), getString(R.string.confirm_text), new BaseFragment.OnDialogClick() { + @Override + public void onCancelClick() { + } + + @Override + public void onConfirmClick() { + mPresenter.removeDeviceEntry(devList.get(position).getDeviceNo()); + } + }); + return; + } Bundle bundle = new Bundle(); bundle.putSerializable("device_info",devList.get(position)); goTo(mContext, DeviceControlActivity.class,bundle); @@ -253,6 +268,12 @@ public class IndexFragment extends BaseFragment map,CallBack callBack); //查询二维码当前设备绑定状态 void queryDeviceBindStatus(JSONObject json, CallBack callBack); + //从设备列表中移除设备 + void removeDeviceEntry(String deviceNo, CallBack callBack); } @@ -32,5 +35,8 @@ public class IndexContract { void getDeviceListSuccess(List list, int total); //查询二维码当前设备绑定状态 void queryDeviceBindStatusSuccess(WaterDeviceEntity entity); + //从设备列表中移除设备成功 + void removeDeviceEntrySuccess(BaseBean bean); } } + 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 18be734..aabdad7 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 @@ -91,4 +91,35 @@ public class IndexImpl implements IndexContract.DataModel{ } } -} + + @Override + public void removeDeviceEntry(String deviceNo, IndexContract.CallBack callBack) { + NetWorkManager.getRequest().removeDeviceEntry(NetWorkManager.getToken(), deviceNo) + .subscribeOn(Schedulers.io()) + .unsubscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @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() { + } + }); + }} + 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 0246ea7..a6ca0e0 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 @@ -71,4 +71,22 @@ public class IndexPresenter extends BasePresenter{ } } -} + + public void removeDeviceEntry(String deviceNo) { + mImpl.removeDeviceEntry(deviceNo, new IndexContract.CallBack() { + @Override + public void success(BaseBean bean, int total) { + if (IndexPresenter.this.getView() != null) { + IndexPresenter.this.getView().removeDeviceEntrySuccess(bean); + } + } + + @Override + public void fail(String msg) { + if (IndexPresenter.this.getView() != null) { + IndexPresenter.this.getView().showError(msg); + } + } + }); + }} + 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 f06c43d..a701686 100644 --- a/app/src/main/java/com/ckkj/water/network/Request.java +++ b/app/src/main/java/com/ckkj/water/network/Request.java @@ -147,6 +147,13 @@ public interface Request { @DELETE("app/v1/deleteDevice/{deviceNo}") Observable unBindDevice(@HeaderMap Map headMap, @Path("deviceNo") String id); + + //设备列表中,移除该设备 + @DELETE("app/v1/removeDeviceEntry/{deviceNo}") + Observable removeDeviceEntry(@HeaderMap Map headMap, @Path("deviceNo") String id); + + + //设备恢复出厂设置 @DELETE("app/v1/factoryReset/{deviceNo}") Observable deviceFactoryReset(@HeaderMap Map headMap, @Path("deviceNo") String id); diff --git a/app/src/main/res/layout/device_settings_layout.xml b/app/src/main/res/layout/device_settings_layout.xml index 6401d95..2e23469 100644 --- a/app/src/main/res/layout/device_settings_layout.xml +++ b/app/src/main/res/layout/device_settings_layout.xml @@ -137,7 +137,8 @@ + android:layout_height="@dimen/dp_45" + android:visibility="gone"> + android:paddingVertical="@dimen/dp_10" + android:paddingHorizontal="@dimen/dp_15"> Device is offline Restore Factory Settings This operation will restore the device to factory settings. + This device has been reset or bound to a new user. You no longer have permission to operate this device. Do you want to delete it now? + Removed successfully Enter schedule name @@ -335,4 +337,8 @@ + You have lost control of this device + Network configuration timed out. Please try again. + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c44689e..b139084 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -100,6 +100,8 @@ 该设备已被其他用户绑定,您可以登录该账号尝试解绑,或重置设备进入配网模式 恢复出厂设置 该操作将会使设备恢复出厂设置 + 当前设备已被重置或被新用户绑定,您已无权限继续操作该设备,是否立即删除? + 输入排程名称 @@ -133,7 +135,7 @@ 已关联 开启 关闭 - + 移除成功 历史 @@ -613,4 +615,8 @@ 书法艺术体现了中华文化的深厚底蕴,学习书法有助于增强文化自信和民族认同感。 + 已失去对该设备的控制权 + 配网超时,请重试 + +