diff --git a/app/src/main/java/com/ckkj/water/base/BaseActivity.java b/app/src/main/java/com/ckkj/water/base/BaseActivity.java index 4c06be5..5c418b7 100644 --- a/app/src/main/java/com/ckkj/water/base/BaseActivity.java +++ b/app/src/main/java/com/ckkj/water/base/BaseActivity.java @@ -478,16 +478,21 @@ public abstract class BaseActivity * * @param title 标题 * @param hint 提示内容2 + * @param content 内容 * @param touchOutsideCancel 弹窗类型 * @param cancelText 取消 文案 * @param confirmText 确定 文案 * @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) { View view = getLayoutInflater().inflate(R.layout.public_dialog_input_text, null); 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); if (!TextUtils.isEmpty(confirmText) && !TextUtils.isEmpty(cancelText)) { ((TextView) view.findViewById(R.id.btnLeft)).setText(cancelText); 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 4122a72..c0c247f 100644 --- a/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java +++ b/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java @@ -20,6 +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.network.BaseBean; import com.ckkj.water.utils.manager.ActivityManager; import com.ckkj.water.utils.manager.ThemeManager; @@ -193,6 +194,11 @@ public class AddDeviceActivity extends BaseActivity mTimeList = new ArrayList<>(); + private IndexDeviceEntity mDeviceEntity; private DeviceTimeSelectAdapter mAdapter; @Override public DevicePresenter createPresenter() { @@ -38,6 +44,15 @@ public class DeviceControlActivity extends BaseActivity implements DeviceContract.DeviceView { + + private IndexDeviceEntity mDeviceEntity; @Override public DevicePresenter createPresenter() { return new DevicePresenter(new DeviceImpl()); @@ -31,7 +34,13 @@ public class DeviceSettingsActivity extends BaseActivity 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>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + } + @Override + public void onNext(@NonNull BaseBean 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 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() { + @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 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() { + @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 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 f5572e6..aed9cc6 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,12 +1,15 @@ package com.ckkj.water.device.mvp; import com.ckkj.water.base.BasePresenter; +import com.ckkj.water.index.entity.IndexDeviceEntity; import com.ckkj.water.index.mvp.IndexContract; import com.ckkj.water.network.BaseBean; import org.json.JSONException; import org.json.JSONObject; +import java.util.HashMap; +import java.util.Map; import java.util.Random; public class DevicePresenter extends BasePresenter { @@ -16,6 +19,9 @@ public class DevicePresenter extends BasePresenter { this.impl = impl; } + /** + * 添加设备 + */ public void addDevice() { try { JSONObject json = new JSONObject(); @@ -37,11 +43,76 @@ public class DevicePresenter extends BasePresenter { @Override public void fail(String msg) { - + if(DevicePresenter.this.getView() != null){ + DevicePresenter.this.getView().showError( msg); + } } }); } catch (JSONException e) { throw new RuntimeException(e); } } + + /** + * 获取设备详情信息 + * @param deviceID + */ + public void getDeviceDetailInfo(String deviceID) { + Map map = new HashMap<>(); + map.put("id",deviceID); + impl.getDeviceInfomation(map, new IndexContract.CallBack() { + @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() { + @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 + } } 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 bcfbf5a..d753684 100644 --- a/app/src/main/java/com/ckkj/water/index/IndexFragment.java +++ b/app/src/main/java/com/ckkj/water/index/IndexFragment.java @@ -8,6 +8,7 @@ import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.ckkj.water.AppConfig; import com.ckkj.water.R; import com.ckkj.water.base.BaseFragment; import com.ckkj.water.custom.view.CustomRefreshHeader; @@ -43,6 +44,15 @@ public class IndexFragment extends BaseFragment { - goTo(mContext, DeviceControlActivity.class,null); + Bundle bundle = new Bundle(); + bundle.putSerializable("device_info",devList.get(position)); + goTo(mContext, DeviceControlActivity.class,bundle); }); } 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 85ee3f3..3017e2b 100644 --- a/app/src/main/java/com/ckkj/water/network/Request.java +++ b/app/src/main/java/com/ckkj/water/network/Request.java @@ -16,9 +16,12 @@ import java.util.Map; import io.reactivex.Observable; import okhttp3.RequestBody; import retrofit2.http.Body; +import retrofit2.http.DELETE; import retrofit2.http.GET; import retrofit2.http.HeaderMap; import retrofit2.http.POST; +import retrofit2.http.PUT; +import retrofit2.http.Path; import retrofit2.http.QueryMap; /** @@ -46,6 +49,19 @@ public interface Request { //添加设备 @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); + //修改更新设备信息 + @PUT("app/v1/updateDeviceInfo") + Observable updateDeviceInfo(@HeaderMap Map headMap, @Body RequestBody requestBody); + + //解绑信息 + // 示例:ids array[string] + //["2052921001527869441"] + @DELETE("/app/v1/deleteDevice") + Observable unBindDevice(@HeaderMap Map headMap, @Body RequestBody requestBody); + diff --git a/app/src/main/res/layout/device_settings_layout.xml b/app/src/main/res/layout/device_settings_layout.xml index 8d6d02f..5f9285c 100644 --- a/app/src/main/res/layout/device_settings_layout.xml +++ b/app/src/main/res/layout/device_settings_layout.xml @@ -102,6 +102,7 @@ android:layout_marginRight="@dimen/dp_23" android:layout_alignParentRight="true"/>