From 221c873ee48ed5f44680578d32b0bbf19fd9e4c1 Mon Sep 17 00:00:00 2001
From: weimingfei <fei_gaming@sina.com>
Date: 星期六, 18 十月 2025 15:23:59 +0800
Subject: [PATCH] 钥匙柜
---
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/LoginBean.java | 9
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetVM.java | 180 ++++++++++
keyCabinet-android/app/src/main/res/drawable/shape_c05_6_bg.xml | 2
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/CabinetDetailBean.java | 100 -----
keyCabinet-android/app/src/main/res/layout/manage_cabinet_rcv_item.xml | 22
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/adapter/ManageCabinetRcvAdapter.java | 47 ++
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/ManageKeyCabinetBean.java | 98 +++++
keyCabinet-android/app/src/main/res/layout/manage_cabinet_activity.xml | 14
keyCabinet-android/app/src/main/res/layout/manage_login_activity.xml | 2
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/param/LoginCabinetParam.java | 22 +
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/i485/SerialPortModel.java | 122 +++++++
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java | 101 +++++
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/Apis.java | 7
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/i485/SerialPortReadObserver.java | 7
keyCabinet-android/app/src/main/res/mipmap-xxhdpi/login_eyeopen.png | 0
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginActivity.java | 36 ++
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/i485/SportUtils.java | 29 +
keyCabinet-android/app/build.gradle | 2
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginVM.java | 39 ++
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java | 141 ++++++++
20 files changed, 855 insertions(+), 125 deletions(-)
diff --git a/keyCabinet-android/app/build.gradle b/keyCabinet-android/app/build.gradle
index 3932ece..903c1df 100644
--- a/keyCabinet-android/app/build.gradle
+++ b/keyCabinet-android/app/build.gradle
@@ -126,6 +126,8 @@
//implementation 'com.github.Shouheng88:compressor:latest-version'
//鍘嬬缉鍥剧墖
implementation "id.zelory:compressor:1.0.3"
+ //涓插彛
+ implementation 'com.licheedev:android-serialport:2.1.3'
//浜岀淮鐮佺敓鎴�
implementation 'com.journeyapps:zxing-android-embedded:3.4.0'
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/CabinetDetailBean.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/CabinetDetailBean.java
index a43b7f2..52187a7 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/CabinetDetailBean.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/CabinetDetailBean.java
@@ -5,7 +5,6 @@
import lombok.Data;
-@Data
public class CabinetDetailBean implements Serializable {
//璁惧缂栧彿
private String code;
@@ -29,101 +28,8 @@
private Integer unBindGridNum;
//鏌滄牸淇℃伅
- private List<CabinetGridInfoVOListBean> cabinetGridInfoVOList;
+ private List<ManageKeyCabinetBean> cabinetGridInfoVOList;
- @Data
- public static class CabinetGridInfoVOListBean implements Serializable {
- //缁戝畾鐘舵�� 0鏈粦瀹氾紱1宸茬粦瀹�
- private Integer bindStatus;
- //鏉垮彿
- private String boardCode;
- //杞︾墝鍙�
- private int carCode;
- //閫氶亾鍙�
- private String channelCode;
- //缂栫爜
- private String code;
- //涓婚敭
- private Integer id;
- //閽ュ寵缂栫爜
- private Integer keyId;
- //閽ュ寵鐘舵�� 0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭 3缁翠慨淇濆吇
- private Integer keyStatus;
- //鏌滀綋杩愯鐘舵�� 0姝e父 1鏁呴殰
- private Integer workingStatus;
-
- public Integer getBindStatus() {
- return bindStatus;
- }
-
- public void setBindStatus(Integer bindStatus) {
- this.bindStatus = bindStatus;
- }
-
- public String getBoardCode() {
- return boardCode;
- }
-
- public void setBoardCode(String boardCode) {
- this.boardCode = boardCode;
- }
-
- public int getCarCode() {
- return carCode;
- }
-
- public void setCarCode(int carCode) {
- this.carCode = carCode;
- }
-
- public String getChannelCode() {
- return channelCode;
- }
-
- public void setChannelCode(String channelCode) {
- this.channelCode = channelCode;
- }
-
- public String getCode() {
- return code;
- }
-
- public void setCode(String code) {
- this.code = code;
- }
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public Integer getKeyId() {
- return keyId;
- }
-
- public void setKeyId(Integer keyId) {
- this.keyId = keyId;
- }
-
- public Integer getKeyStatus() {
- return keyStatus;
- }
-
- public void setKeyStatus(Integer keyStatus) {
- this.keyStatus = keyStatus;
- }
-
- public Integer getWorkingStatus() {
- return workingStatus;
- }
-
- public void setWorkingStatus(Integer workingStatus) {
- this.workingStatus = workingStatus;
- }
- }
public String getCode() {
return code;
@@ -205,11 +111,11 @@
this.unBindGridNum = unBindGridNum;
}
- public List<CabinetGridInfoVOListBean> getCabinetGridInfoVOList() {
+ public List<ManageKeyCabinetBean> getCabinetGridInfoVOList() {
return cabinetGridInfoVOList;
}
- public void setCabinetGridInfoVOList(List<CabinetGridInfoVOListBean> cabinetGridInfoVOList) {
+ public void setCabinetGridInfoVOList(List<ManageKeyCabinetBean> cabinetGridInfoVOList) {
this.cabinetGridInfoVOList = cabinetGridInfoVOList;
}
}
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/LoginBean.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/LoginBean.java
index 11b3255..8563de9 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/LoginBean.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/LoginBean.java
@@ -10,6 +10,7 @@
//0锛氬彇锛�1锛氳繕
private int flag ;
+ private String token;
public Integer getAutoMemberId() {
return autoMemberId;
@@ -42,4 +43,12 @@
public void setFlag(int flag) {
this.flag = flag;
}
+
+ public String getToken() {
+ return token;
+ }
+
+ public void setToken(String token) {
+ this.token = token;
+ }
}
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/ManageKeyCabinetBean.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/ManageKeyCabinetBean.java
index cc4b451..f7e1ae4 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/ManageKeyCabinetBean.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/ManageKeyCabinetBean.java
@@ -1,5 +1,101 @@
package com.doumee.keyCabinet.bean;
-public class ManageKeyCabinetBean {
+import androidx.databinding.ObservableField;
+public class ManageKeyCabinetBean {
+ //缁戝畾鐘舵�� 0鏈粦瀹氾紱1宸茬粦瀹�
+ private Integer bindStatus;
+ //鏉垮彿
+ private String boardCode;
+ //杞︾墝鍙�
+ private int carCode;
+ //閫氶亾鍙�
+ private String channelCode;
+ //缂栫爜
+ private String code;
+ //涓婚敭
+ private Integer id;
+ //閽ュ寵缂栫爜
+ private Integer keyId;
+ //閽ュ寵鐘舵�� 0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭 3缁翠慨淇濆吇
+ private Integer keyStatus;
+ //鏌滀綋杩愯鐘舵�� 0姝e父 1鏁呴殰
+ private Integer workingStatus;
+ private ObservableField<Boolean> isSelected = new ObservableField<>(false);
+
+ public ObservableField<Boolean> getIsSelected() {
+ return isSelected;
+ }
+
+ public Integer getBindStatus() {
+ return bindStatus;
+ }
+
+ public void setBindStatus(Integer bindStatus) {
+ this.bindStatus = bindStatus;
+ }
+
+ public String getBoardCode() {
+ return boardCode;
+ }
+
+ public void setBoardCode(String boardCode) {
+ this.boardCode = boardCode;
+ }
+
+ public int getCarCode() {
+ return carCode;
+ }
+
+ public void setCarCode(int carCode) {
+ this.carCode = carCode;
+ }
+
+ public String getChannelCode() {
+ return channelCode;
+ }
+
+ public void setChannelCode(String channelCode) {
+ this.channelCode = channelCode;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Integer getKeyId() {
+ return keyId;
+ }
+
+ public void setKeyId(Integer keyId) {
+ this.keyId = keyId;
+ }
+
+ public Integer getKeyStatus() {
+ return keyStatus;
+ }
+
+ public void setKeyStatus(Integer keyStatus) {
+ this.keyStatus = keyStatus;
+ }
+
+ public Integer getWorkingStatus() {
+ return workingStatus;
+ }
+
+ public void setWorkingStatus(Integer workingStatus) {
+ this.workingStatus = workingStatus;
+ }
}
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/Apis.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/Apis.java
index f1cb425..641f088 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/Apis.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/Apis.java
@@ -83,7 +83,7 @@
* 鑾峰彇閽ュ寵鏌滆鎯� - 绠$悊鍛�
*/
@GET("/visitsAdmin/cloudService/web/cabinet/getCabinetDetail")
- Observable<BaseResponse<List<CabinetDetailBean>>> getCabinetDetail(@Header("dm_user_token") String token,@Query("cabinetId")Integer cabinetId);
+ Observable<BaseResponse<CabinetDetailBean>> getCabinetDetail(@Header("dm_user_token") String token,@Query("cabinetId")Integer cabinetId);
/**
* 鎵归噺寮�闂� - 绠$悊鍛�
@@ -109,6 +109,11 @@
@POST("/visitsAdmin/cloudService/web/cabinet/markRepair")
Observable<BaseResponse> markRepair(@Header("dm_user_token") String token,@Body RequestBody requestBody);
+ /**
+ * 鏍囪缁翠慨淇濆吇 - 绠$悊鍛�
+ */
+ @POST("/loginCabinet")
+ Observable<BaseResponse<String>> loginCabinet(@Body RequestBody requestBody);
}
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/param/LoginCabinetParam.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/param/LoginCabinetParam.java
new file mode 100644
index 0000000..4620fb1
--- /dev/null
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/param/LoginCabinetParam.java
@@ -0,0 +1,22 @@
+package com.doumee.keyCabinet.http.param;
+
+public class LoginCabinetParam {
+ private String password;
+ private String username;
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+}
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java
index 625a02f..8055157 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java
@@ -2,19 +2,30 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.lifecycle.Observer;
import android.os.Bundle;
+import android.view.View;
+import android.widget.Toast;
import com.doumee.keyCabinet.R;
import com.doumee.keyCabinet.base.MyBaseActivity;
+import com.doumee.keyCabinet.bean.CabinetDetailBean;
+import com.doumee.keyCabinet.bean.ManageKeyCabinetBean;
import com.doumee.keyCabinet.databinding.ManageCabinetActivityBinding;
import com.doumee.keyCabinet.ui.keyCabinet.adapter.ManageCabinetRcvAdapter;
+import com.doumee.lib_coremodel.bean.event.ActionEventData;
+
+import java.util.ArrayList;
+import java.util.List;
import dagger.hilt.android.AndroidEntryPoint;
@AndroidEntryPoint
public class ManageCabinetActivity extends MyBaseActivity<ManageCabinetVM, ManageCabinetActivityBinding> {
private ManageCabinetRcvAdapter adapter;
+ //1寰呭叏寮�锛�2寰呮壒閲忓紑
+ private int status;
@Override
public int getLayoutId() {
@@ -31,6 +42,96 @@
@Override
public void initData(@Nullable Bundle savedInstanceState) {
+ getVM().getDatasLD().observe(this, new Observer<List<ManageKeyCabinetBean>>() {
+ @Override
+ public void onChanged(List<ManageKeyCabinetBean> gridInfoBeans) {
+ }
+ });
+ getVM().getCabinetDetail();
+ }
+
+ private List<Integer> bjIds = new ArrayList<>();
+ private boolean isGz = true;
+ @Override
+ protected void doRegister(int type, ActionEventData data) {
+ switch (type){
+ case 1:
+ //todo wmf 鏍¢獙鏌滃瓙鏄惁閮藉凡鍏抽棴
+ finish();
+ break;
+ case 2:
+ //鍏ㄥ紑
+ status = 1;
+ //todo 鍏ㄥ紑
+ break;
+ case 3: {
+ //鎵归噺寮�闂紝鏍¢獙鏄惁鍙墦寮�
+ List<Integer> ids = new ArrayList<>();
+ List<ManageKeyCabinetBean> datas = adapter.getListData();
+ for (ManageKeyCabinetBean bean : datas) {
+ if (bean.getIsSelected().get()) {
+ ids.add(bean.getId());
+ }
+ }
+ if (ids.size() == 0) {
+ Toast.makeText(mContext, "璇烽�夋嫨鏌滄牸", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ getVM().batchOpenGridAdmin(ids);
+ }break;
+ case 8:
+ status = 2;
+ //todo 鎵归噺寮�
+ break;
+ case 4: {
+ //鏍囪
+ bjIds.clear();
+ isGz = true;
+ List<ManageKeyCabinetBean> datas = adapter.getListData();
+ for (ManageKeyCabinetBean bean : datas) {
+ if (bean.getIsSelected().get()) {
+ bjIds.add(bean.getId());
+ if(bean.getWorkingStatus()==0){
+ isGz = false;
+ }
+ }
+ }
+ if (bjIds.size() == 0) {
+ Toast.makeText(mContext, "璇烽�夋嫨鏌滄牸", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if(isGz){
+ //鍏ㄤ负鏁呴殰
+ getDB().tvBjgz.setText("鏍囪涓烘甯�");
+ getDB().tvBjgz.setTextColor(0xff279BAA);
+ getDB().tvBjgz.setBackgroundResource(R.drawable.shape_mb_cz_2_bg);
+ }else {
+ //鏍囪鏁呴殰
+ getDB().tvBjgz.setText("鏍囪涓烘晠闅�");
+ getDB().tvBjgz.setTextColor(0xffFF3600);
+ getDB().tvBjgz.setBackgroundResource(R.drawable.shape_mb_cz_1_bg);
+ }
+ getDB().clCz.setVisibility(View.VISIBLE);
+ }break;
+ case 5:
+ getDB().clCz.setVisibility(View.GONE);
+ break;
+ case 6:
+ //缁翠慨
+ getVM().markRepair(bjIds);
+ break;
+ case 7:
+ if(isGz) {
+ //姝e父
+ getVM().cancelFault(bjIds);
+ }else {
+ //鏁呴殰
+ getVM().markFault(bjIds);
+ }
+ break;
+ default:
+ break;
+ }
}
}
\ No newline at end of file
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetVM.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetVM.java
index 63968cc..e7c1ef5 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetVM.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetVM.java
@@ -3,12 +3,32 @@
import android.app.Application;
import androidx.annotation.NonNull;
+import androidx.databinding.ObservableField;
import androidx.hilt.lifecycle.ViewModelInject;
+import androidx.lifecycle.MutableLiveData;
+import com.doumee.keyCabinet.MApplication;
+import com.doumee.keyCabinet.bean.CabinetDetailBean;
+import com.doumee.keyCabinet.bean.ManageKeyCabinetBean;
+import com.doumee.keyCabinet.http.Apis;
+import com.doumee.keyCabinet.http.param.BaseResponse;
+import com.doumee.keyCabinet.http.param.BatchOpenGridAdminParam;
+import com.doumee.keyCabinet.http.param.CancelFaultParam;
+import com.doumee.keyCabinet.http.param.MarkFaultParam;
+import com.doumee.keyCabinet.http.param.MarkRepairParam;
+import com.doumee.keyCabinet.utils.ParamsUtil;
import com.doumee.lib_coremodel.base.BaseModel;
import com.doumee.lib_coremodel.base.DataViewModel;
+import com.doumee.lib_coremodel.http.rxJava.SimpleObserver;
+import com.doumee.lib_coremodel.http.utils.RxUtils;
+
+import java.util.ArrayList;
+import java.util.List;
public class ManageCabinetVM extends DataViewModel {
+ public ObservableField<CabinetDetailBean> dataOb = new ObservableField<>();
+ private MutableLiveData<List<ManageKeyCabinetBean>> datasLD = new MutableLiveData<>();
+
@ViewModelInject
public ManageCabinetVM(@NonNull Application application, BaseModel model) {
super(application, model);
@@ -18,4 +38,164 @@
protected void clickByTypeCommand(int type) {
doAction(type);
}
+
+ public void getCabinetDetail(){
+ showLoading(true);
+ getRetrofitService(Apis.class).getCabinetDetail(MApplication.getLoginBean().getToken(),
+ MApplication.getConfigBean().getId())
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new SimpleObserver<BaseResponse<CabinetDetailBean>>(rxJavaGcManager) {
+ @Override
+ public void onNext(@NonNull BaseResponse<CabinetDetailBean> response) {
+ if(200==response.getCode()){
+ dataOb.set(response.getData());
+ if(response.getData()!=null){
+ if(response.getData().getCabinetGridInfoVOList()!=null){
+ datasLD.setValue(response.getData().getCabinetGridInfoVOList());
+ }else {
+ datasLD.setValue(new ArrayList<>());
+ }
+ }else {
+ datasLD.setValue(new ArrayList<>());
+ }
+ }else {
+ toast(response.getMessage());
+ }
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ toast(e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+ hideLoading();
+ }
+ });
+ }
+
+ public void batchOpenGridAdmin(List<Integer> gridIdList){
+ showLoading(true);
+ BatchOpenGridAdminParam param = new BatchOpenGridAdminParam();
+ param.setCabinetId(MApplication.getConfigBean().getId());
+ param.setGridIdList(gridIdList);
+ getRetrofitService(Apis.class).batchOpenGridAdmin(MApplication.getLoginBean().getToken(),
+ ParamsUtil.encodeRequestBody(param))
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) {
+ @Override
+ public void onNext(@NonNull BaseResponse response) {
+ if(200==response.getCode()){
+ doAction(8);
+ }else {
+ toast(response.getMessage());
+ }
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ toast(e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+ hideLoading();
+ }
+ });
+ }
+
+ public void cancelFault(List<Integer> gridIdList){
+ showLoading(true);
+ CancelFaultParam param = new CancelFaultParam();
+ param.setCabinetId(MApplication.getConfigBean().getId());
+ param.setGridIdList(gridIdList);
+ getRetrofitService(Apis.class).cancelFault(MApplication.getLoginBean().getToken(),
+ ParamsUtil.encodeRequestBody(param))
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) {
+ @Override
+ public void onNext(@NonNull BaseResponse response) {
+ if(200==response.getCode()){
+ getCabinetDetail();
+ }else {
+ toast(response.getMessage());
+ }
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ toast(e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+ hideLoading();
+ }
+ });
+ }
+
+ public void markFault(List<Integer> gridIdList){
+ showLoading(true);
+ MarkFaultParam param = new MarkFaultParam();
+ param.setCabinetId(MApplication.getConfigBean().getId());
+ param.setGridIdList(gridIdList);
+ getRetrofitService(Apis.class).markFault(MApplication.getLoginBean().getToken(),
+ ParamsUtil.encodeRequestBody(param))
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) {
+ @Override
+ public void onNext(@NonNull BaseResponse response) {
+ if(200==response.getCode()){
+ getCabinetDetail();
+ }else {
+ toast(response.getMessage());
+ }
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ toast(e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+ hideLoading();
+ }
+ });
+ }
+
+ public void markRepair(List<Integer> gridIdList){
+ showLoading(true);
+ MarkRepairParam param = new MarkRepairParam();
+ param.setCabinetId(MApplication.getConfigBean().getId());
+ param.setGridIdList(gridIdList);
+ getRetrofitService(Apis.class).markRepair(MApplication.getLoginBean().getToken(),
+ ParamsUtil.encodeRequestBody(param))
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) {
+ @Override
+ public void onNext(@NonNull BaseResponse response) {
+ if(200==response.getCode()){
+ getCabinetDetail();
+ }else {
+ toast(response.getMessage());
+ }
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ toast(e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+ hideLoading();
+ }
+ });
+ }
+
+ public MutableLiveData<List<ManageKeyCabinetBean>> getDatasLD() {
+ return datasLD;
+ }
}
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginActivity.java
index cb5ea23..608e910 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginActivity.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginActivity.java
@@ -4,10 +4,14 @@
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.Toast;
import com.doumee.keyCabinet.R;
import com.doumee.keyCabinet.base.MyBaseActivity;
import com.doumee.keyCabinet.databinding.ManageLoginActivityBinding;
+import com.doumee.lib_coremodel.bean.event.ActionEventData;
import dagger.hilt.android.AndroidEntryPoint;
@@ -31,4 +35,36 @@
public void initData(@Nullable Bundle savedInstanceState) {
}
+
+ @Override
+ protected void doRegister(int type, ActionEventData data) {
+ switch (type){
+ case 1:
+ //鏄剧ず瀵嗙爜
+
+ break;
+ case 2:
+ if(TextUtils.isEmpty(getDB().etName.getText().toString())){
+ Toast.makeText(mContext, "璇疯緭鍏ョ櫥褰曡处鍙�", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if(TextUtils.isEmpty(getDB().etPw.getText().toString())){
+ Toast.makeText(mContext, "璇疯緭鍏ヨ处鍙峰瘑鐮�", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ getVM().loginCabinet(getDB().etName.getText().toString(),getDB().etPw.getText().toString());
+ break;
+ case 3:
+ //鏄剧ず鍔犺浇
+ getDB().clProgress.setVisibility(View.VISIBLE);
+ getDB().clTip.setVisibility(View.GONE);
+ break;
+ case 4:
+ getDB().clProgress.setVisibility(View.GONE);
+ getDB().clTip.setVisibility(View.VISIBLE);
+ break;
+ default:
+ break;
+ }
+ }
}
\ No newline at end of file
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginVM.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginVM.java
index cf9d90a..84d3a19 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginVM.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginVM.java
@@ -5,8 +5,17 @@
import androidx.annotation.NonNull;
import androidx.hilt.lifecycle.ViewModelInject;
+import com.doumee.keyCabinet.MApplication;
+import com.doumee.keyCabinet.bean.KeyCabinetBean;
+import com.doumee.keyCabinet.http.Apis;
+import com.doumee.keyCabinet.http.param.BaseResponse;
+import com.doumee.keyCabinet.http.param.LoginCabinetParam;
+import com.doumee.keyCabinet.http.param.OpenGridDriverParam;
+import com.doumee.keyCabinet.utils.ParamsUtil;
import com.doumee.lib_coremodel.base.BaseModel;
import com.doumee.lib_coremodel.base.DataViewModel;
+import com.doumee.lib_coremodel.http.rxJava.SimpleObserver;
+import com.doumee.lib_coremodel.http.utils.RxUtils;
public class ManageLoginVM extends DataViewModel {
@ViewModelInject
@@ -18,4 +27,34 @@
protected void clickByTypeCommand(int type) {
doAction(type);
}
+
+ public void loginCabinet(String userName,String pw){
+ LoginCabinetParam param = new LoginCabinetParam();
+ param.setUsername(userName);
+ param.setPassword(pw);
+ doAction(3);
+ getRetrofitService(Apis.class).loginCabinet(ParamsUtil.encodeRequestBody(param))
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new SimpleObserver<BaseResponse<String>>(rxJavaGcManager) {
+ @Override
+ public void onNext(@NonNull BaseResponse<String> response) {
+ if(200==response.getCode()){
+ MApplication.getLoginBean().setToken(response.getData());
+ startActivity(ManageCabinetActivity.class);
+ }else {
+ doAction(4);
+ }
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ doAction(4);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
}
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/adapter/ManageCabinetRcvAdapter.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/adapter/ManageCabinetRcvAdapter.java
index 4799845..7acc26b 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/adapter/ManageCabinetRcvAdapter.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/adapter/ManageCabinetRcvAdapter.java
@@ -3,6 +3,7 @@
import android.content.Context;
import android.view.View;
+import com.doumee.keyCabinet.R;
import com.doumee.keyCabinet.bean.KeyCabinetBean;
import com.doumee.keyCabinet.bean.ManageKeyCabinetBean;
import com.doumee.keyCabinet.databinding.CabinetRcvItemBinding;
@@ -11,25 +12,47 @@
import com.doumee.lib_coremodel.view.recyclerview.adapter.BindingHolder;
public class ManageCabinetRcvAdapter extends BindingAdapter<ManageKeyCabinetBean, ManageCabinetRcvItemBinding> {
- public static interface OnItemClick{
- void onItemClick(ManageKeyCabinetBean item);
- }
- private OnItemClick onItemClick;
- public ManageCabinetRcvAdapter(Context context, int layoutId, OnItemClick onItemClick) {
+
+ public ManageCabinetRcvAdapter(Context context, int layoutId) {
super(context, layoutId);
- this.onItemClick = onItemClick;
}
@Override
public void bindViewDatas(BindingHolder<ManageCabinetRcvItemBinding> holder, ManageKeyCabinetBean item, int position) {
holder.getBinding().setData(item);
- holder.getBinding().clRoot.setOnLongClickListener(new View.OnLongClickListener() {
+ if(item.getWorkingStatus()==1){
+ //鏁呴殰
+ holder.getBinding().clRoot.setBackgroundResource(R.drawable.shape_c04_6_bg);
+ }else {
+ //0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭 3缁翠慨淇濆吇
+ switch (item.getKeyStatus()){
+ case 0:
+ holder.getBinding().clRoot.setBackgroundResource(R.drawable.shape_c05_6_bg);
+ break;
+ case 1:
+ holder.getBinding().clRoot.setBackgroundResource(R.drawable.shape_c01_6_bg);
+ break;
+ case 2:
+ holder.getBinding().clRoot.setBackgroundResource(R.drawable.shape_c02_6_bg);
+ break;
+ default:
+ holder.getBinding().clRoot.setBackgroundResource(R.drawable.shape_c03_6_bg);
+ break;
+ }
+ }
+ if(item.getWorkingStatus()==0&&item.getKeyStatus()==3){
+ //缁翠慨
+ holder.getBinding().tv1.setTextColor(0xff279BAA);
+ holder.getBinding().tv2.setTextColor(0xff279BAA);
+ }else {
+ holder.getBinding().tv1.setTextColor(0xffffffff);
+ holder.getBinding().tv2.setTextColor(0xffffffff);
+ }
+
+ holder.getBinding().clRoot.setOnClickListener(new View.OnClickListener() {
@Override
- public boolean onLongClick(View v) {
- if(onItemClick!=null){
- onItemClick.onItemClick(item);
- }
- return true;
+ public void onClick(View v) {
+ item.getIsSelected().set(!item.getIsSelected().get());
}
});
}
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java
index 54fcdac..fcac3d4 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java
@@ -8,6 +8,8 @@
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.hardware.Camera;
+import android.hardware.usb.UsbDevice;
+import android.hardware.usb.UsbManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -75,6 +77,9 @@
import com.doumee.keyCabinet.utils.face.ImportFileManager;
import com.doumee.keyCabinet.utils.face.RegisterConfigUtils;
import com.doumee.keyCabinet.utils.face.model.SingleBaseConfig;
+import com.doumee.keyCabinet.utils.i485.SerialPortModel;
+import com.doumee.keyCabinet.utils.i485.SerialPortReadObserver;
+import com.doumee.keyCabinet.utils.i485.SportUtils;
import com.doumee.keyCabinet.utils.update.PermissionUtils;
import com.doumee.keyCabinet.utils.update.PermissiondDialog;
import com.doumee.keyCabinet.utils.update.UpdateUtil;
@@ -101,6 +106,7 @@
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
import java.util.Random;
import java.util.Timer;
@@ -182,6 +188,7 @@
startService(intent2);
getPermission();
Timber.tag("====>").d(LMobileInfo.getDeviceUniqueId());
+ initPort();
}
private void initM(){
@@ -388,6 +395,8 @@
handler = null;
faceHandler.removeCallbacksAndMessages(null);
faceHandler = null;
+ portHandler.removeCallbacksAndMessages(null);
+ portHandler = null;
}
private void restartApp(){
@@ -1042,4 +1051,136 @@
}
}
+ private SerialPortModel gridPort;
+ private SerialPortReadObserver gridReadObserver = new SerialPortReadObserver() {
+ @Override
+ public void onResult(String result) {
+
+ }
+
+ @Override
+ public void onResultBytes(byte[] bytes) {
+ if(gridPort!=null && !gridPort.isOk()){
+ gridPort.setOk(true);
+ }
+ }
+ };
+ private SerialPortModel keyPort;
+ private SerialPortReadObserver keyReadObserver = new SerialPortReadObserver() {
+ @Override
+ public void onResult(String result) {
+
+ }
+
+ @Override
+ public void onResultBytes(byte[] bytes) {
+ if(keyPort!=null && !keyPort.isOk()){
+ keyPort.setOk(true);
+ }
+ }
+ };
+ private SerialPortModel jiuPort;
+ private SerialPortReadObserver jiuReadObserver = new SerialPortReadObserver() {
+ @Override
+ public void onResult(String result) {
+
+ }
+
+ @Override
+ public void onResultBytes(byte[] bytes) {
+ if(jiuPort!=null && !jiuPort.isOk()){
+ jiuPort.setOk(true);
+ }
+ }
+ };
+
+ List<String> ports;
+ private int index = 0;
+ private Handler portHandler = new Handler(){
+ @Override
+ public void handleMessage(@NonNull Message msg) {
+ switch (msg.what){
+ case 0:
+ if(index>=1&&!checkEnd()){
+ index--;
+ chosePort(ports.get(index));
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ };
+ //鍒濆鍖栦覆鍙�
+ private void initPort(){
+ ports = SportUtils.getSerialPortPaths(this);
+ if(ports.size()>0){
+ index = ports.size()-1;
+ chosePort(ports.get(ports.size()-1));
+ }
+ }
+
+ private void chosePort(String path){
+ if(gridPort==null||!gridPort.isOk()){
+ closePort(gridPort);
+ gridPort = new SerialPortModel(path,9600 ,8
+ ,1 , 0);
+ boolean isSucc = gridPort.open();
+ if(isSucc) {
+ String msg = isSucc ? "鎴愬姛" : "澶辫触";
+ //getVM().append("涓插彛 "+ settingBean.getDevicePath() + " -杩炴帴"+msg);
+ gridPort.startRead(gridReadObserver);
+ //todo 鍙戦�佹煖鏍兼牎楠屼俊鎭�
+ }
+ }
+ if(keyPort==null||!keyPort.isOk()){
+ closePort(keyPort);
+ keyPort = new SerialPortModel(path,115200 ,8
+ ,1 , 0);
+ boolean isSucc = keyPort.open();
+ if(isSucc) {
+ String msg = isSucc ? "鎴愬姛" : "澶辫触";
+ //getVM().append("涓插彛 "+ settingBean.getDevicePath() + " -杩炴帴"+msg);
+ keyPort.startRead(keyReadObserver);
+ //todo 鍙戦�侀挜鍖欐牎楠屼俊鎭�
+ }
+ }
+ if(jiuPort==null||!jiuPort.isOk()){
+ closePort(jiuPort);
+ jiuPort = new SerialPortModel(path,9600 ,8
+ ,1 , 0);
+ boolean isSucc = jiuPort.open();
+ if(isSucc) {
+ String msg = isSucc ? "鎴愬姛" : "澶辫触";
+ //getVM().append("涓插彛 "+ settingBean.getDevicePath() + " -杩炴帴"+msg);
+ jiuPort.startRead(jiuReadObserver);
+ //todo 鍙戦�侀厭绮炬牎楠屼俊鎭�
+ }
+ }
+
+ portHandler.sendEmptyMessageDelayed(0,2000);
+ }
+
+ private void closePort(SerialPortModel port){
+ if(port==null){
+ return;
+ }
+ port.startRead(null);
+ port.stopRead();
+ port.close();
+ port = null;
+ }
+
+ private boolean checkEnd(){
+ if(gridPort==null||!gridPort.isOk()){
+ return false;
+ }
+ if(keyPort==null||!keyPort.isOk()){
+ return false;
+ }
+ if(jiuPort==null||!jiuPort.isOk()){
+ return false;
+ }
+ return true;
+ }
}
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/i485/SerialPortModel.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/i485/SerialPortModel.java
new file mode 100644
index 0000000..af40f4e
--- /dev/null
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/i485/SerialPortModel.java
@@ -0,0 +1,122 @@
+package com.doumee.keyCabinet.utils.i485;
+
+import android.serialport.SerialPort;
+import android.util.Log;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+
+public class SerialPortModel {
+
+ public static final String TAG = SerialPortModel.class.getSimpleName();
+
+ private void logI(String str) {
+ Log.i(TAG, str);
+ }
+
+ private String serialPortPath;
+ private int baudrate;
+ private int dataBits;
+ private int stopBits;
+ private int parity;
+ private SerialPort serialPort;
+ private ScheduledExecutorService scheduledExecutorService;
+ private ExecutorService singleThreadExecutor;
+ private ScheduledFuture scheduledFuture;
+ private boolean isOk = false;
+
+ private final Object writeLock = new Object();
+
+ public SerialPortModel(String serialPortPath, int baudrate, int dataBits, int stopBits, int parity) {
+ this.serialPortPath = serialPortPath;
+ this.baudrate = baudrate;
+ this.dataBits = dataBits;
+ this.stopBits = stopBits;
+ this.parity = parity;
+ }
+
+ public boolean open() {
+ try {
+ File device = new File(serialPortPath);
+ serialPort = SerialPort
+ .newBuilder(device, baudrate)
+ .dataBits(dataBits)
+ .stopBits(stopBits)
+ .parity(parity)
+ .build();
+ scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
+ singleThreadExecutor = Executors.newSingleThreadExecutor();
+ } catch (IOException e) {
+ e.printStackTrace();
+ return false;
+ }
+ return true;
+ }
+
+ public void close() {
+ try {
+ serialPort.getInputStream().close();
+ serialPort.getOutputStream().close();
+ serialPort.close();
+ serialPort = null;
+ scheduledExecutorService.shutdown();
+ singleThreadExecutor.shutdown();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void startRead(SerialPortReadObserver serialPortReadObserver) {
+ scheduledFuture = scheduledExecutorService.scheduleWithFixedDelay(() -> {
+ InputStream inputStream = serialPort.getInputStream();
+ byte[] bytes = new byte[2048];
+ int length = 0;
+ try {
+ length = inputStream.read(bytes);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+// logI("startRead - length: " + length);
+ if (length <= 0) return;
+ //String result = new String(bytes, 0, length);
+ byte[] bytes2 = new byte[length];
+ for(int i=0;i<length;i++){
+ bytes2[i] = bytes[i];
+ }
+ serialPortReadObserver.onResultBytes(bytes2);
+ }, 0, 50, TimeUnit.MILLISECONDS);
+ }
+
+ public void stopRead() {
+ scheduledFuture.cancel(true);
+ }
+
+ public void write(byte[] bytes,SerialPortReadObserver serialPortReadObserver) {
+ singleThreadExecutor.execute(() -> {
+ synchronized (writeLock) {
+ try {
+ serialPort.getOutputStream().write(bytes);
+ serialPortReadObserver.onResult(null);
+ } catch (IOException e) {
+ e.printStackTrace();
+ serialPortReadObserver.onResult(e.getMessage());
+ }
+ }
+ });
+ }
+
+ public boolean isOk() {
+ return isOk;
+ }
+
+ public void setOk(boolean ok) {
+ isOk = ok;
+ }
+}
+
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/i485/SerialPortReadObserver.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/i485/SerialPortReadObserver.java
new file mode 100644
index 0000000..56f9ca5
--- /dev/null
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/i485/SerialPortReadObserver.java
@@ -0,0 +1,7 @@
+package com.doumee.keyCabinet.utils.i485;
+
+public interface SerialPortReadObserver {
+ void onResult(String result);
+ void onResultBytes(byte[] bytes);
+}
+
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/i485/SportUtils.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/i485/SportUtils.java
new file mode 100644
index 0000000..1ce6dc4
--- /dev/null
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/i485/SportUtils.java
@@ -0,0 +1,29 @@
+package com.doumee.keyCabinet.utils.i485;
+
+import android.content.Context;
+import android.hardware.usb.UsbConstants;
+import android.hardware.usb.UsbDevice;
+import android.hardware.usb.UsbInterface;
+import android.hardware.usb.UsbManager;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class SportUtils {
+ public static List<String> getSerialPortPaths(Context context) {
+ UsbManager usbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE);
+ List<UsbDevice> devices = new ArrayList<>(usbManager.getDeviceList().values());
+ List<String> serialPaths = new ArrayList<>();
+
+ for (UsbDevice device : devices) {
+ for (int i = 0; i < device.getInterfaceCount(); i++) {
+ UsbInterface intf = device.getInterface(i);
+ if (intf.getInterfaceClass() == UsbConstants.USB_CLASS_CDC_DATA) {
+ serialPaths.add(device.getDeviceName());
+ break;
+ }
+ }
+ }
+ return serialPaths;
+ }
+}
diff --git a/keyCabinet-android/app/src/main/res/drawable/shape_c05_6_bg.xml b/keyCabinet-android/app/src/main/res/drawable/shape_c05_6_bg.xml
index 08d573d..b653bea 100644
--- a/keyCabinet-android/app/src/main/res/drawable/shape_c05_6_bg.xml
+++ b/keyCabinet-android/app/src/main/res/drawable/shape_c05_6_bg.xml
@@ -2,6 +2,6 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
- <solid android:color="#279BAA" />
+ <solid android:color="#26279BAA" />
<corners android:radius="6dp" />
</shape>
\ No newline at end of file
diff --git a/keyCabinet-android/app/src/main/res/layout/manage_cabinet_activity.xml b/keyCabinet-android/app/src/main/res/layout/manage_cabinet_activity.xml
index 4a5ca0a..b72f283 100644
--- a/keyCabinet-android/app/src/main/res/layout/manage_cabinet_activity.xml
+++ b/keyCabinet-android/app/src/main/res/layout/manage_cabinet_activity.xml
@@ -44,7 +44,7 @@
android:id="@+id/tv_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="0"
+ android:text='@{model.dataOb.gridNum+""}'
android:textColor="#111111"
android:textSize="22sp"
app:layout_constraintTop_toTopOf="@+id/tv1"
@@ -121,7 +121,7 @@
android:id="@+id/tv_zw_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="0"
+ android:text='@{model.dataOb.onlineKeyNum+""}'
android:textColor="#ff111111"
android:textSize="21sp"
android:paddingBottom="3dp"/>
@@ -156,7 +156,7 @@
android:id="@+id/tv_jc_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="0"
+ android:text='@{model.dataOb.outKeyNum+""}'
android:textColor="#ff111111"
android:textSize="21sp"
android:paddingBottom="3dp"/>
@@ -191,7 +191,7 @@
android:id="@+id/tv_wx_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="0"
+ android:text='@{model.dataOb.serviceKeyNum+""}'
android:textColor="#ff111111"
android:textSize="21sp"
android:paddingBottom="3dp"/>
@@ -250,7 +250,7 @@
android:id="@+id/tv_gz_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="0"
+ android:text='@{model.dataOb.errGridNum+""}'
android:textColor="#ff111111"
android:textSize="21sp"
android:paddingBottom="3dp"/>
@@ -285,7 +285,7 @@
android:id="@+id/tv_wbd_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="0"
+ android:text='@{model.dataOb.unBindGridNum+""}'
android:textColor="#ff111111"
android:textSize="21sp"
android:paddingBottom="3dp"/>
@@ -382,7 +382,7 @@
android:id="@+id/cl_cz"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:visibility="gone">
+ android:visibility="visible">
<View
android:layout_width="match_parent"
diff --git a/keyCabinet-android/app/src/main/res/layout/manage_cabinet_rcv_item.xml b/keyCabinet-android/app/src/main/res/layout/manage_cabinet_rcv_item.xml
index 9f48d71..20f9de2 100644
--- a/keyCabinet-android/app/src/main/res/layout/manage_cabinet_rcv_item.xml
+++ b/keyCabinet-android/app/src/main/res/layout/manage_cabinet_rcv_item.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
+ <import type="android.view.View"/>
<variable
name="data"
type="com.doumee.keyCabinet.bean.ManageKeyCabinetBean" />
@@ -10,31 +11,40 @@
android:id="@+id/cl_root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:padding="9dp"
- android:background="@drawable/shape_r6_cabinet_unsel_bg">
+ android:background="@drawable/shape_c01_6_bg">
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="A02"
+ android:text="@{data.code}"
android:textColor="#ff111111"
android:textSize="24sp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintEnd_toEndOf="parent"/>
+ android:layout_marginLeft="15dp"
+ android:layout_marginTop="9dp" />
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="鑻廇18812"
+ android:text="@{data.carCode}"
android:textColor="#ff279baa"
android:textSize="24sp"
app:layout_constraintTop_toBottomOf="@+id/tv1"
app:layout_constraintStart_toStartOf="parent"
+ android:layout_marginLeft="15dp"
+ android:layout_marginTop="10dp"
+ android:paddingBottom="9dp"/>
+
+ <ImageView
+ android:layout_width="45dp"
+ android:layout_height="45dp"
+ android:src="@mipmap/ic_sel"
app:layout_constraintEnd_toEndOf="parent"
- android:layout_marginTop="7dp"/>
+ app:layout_constraintBottom_toBottomOf="parent"
+ android:visibility="@{data.isSelected?View.VISIBLE:View.GONE}"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
diff --git a/keyCabinet-android/app/src/main/res/layout/manage_login_activity.xml b/keyCabinet-android/app/src/main/res/layout/manage_login_activity.xml
index ef21c77..f2f2c6e 100644
--- a/keyCabinet-android/app/src/main/res/layout/manage_login_activity.xml
+++ b/keyCabinet-android/app/src/main/res/layout/manage_login_activity.xml
@@ -72,6 +72,7 @@
android:layout_marginLeft="22dp"/>
<EditText
+ android:id="@+id/et_name"
android:layout_width="0dp"
android:layout_height="75dp"
android:background="@null"
@@ -121,6 +122,7 @@
android:layout_marginLeft="22dp"/>
<EditText
+ android:id="@+id/et_pw"
android:layout_width="0dp"
android:layout_height="75dp"
android:background="@null"
diff --git a/keyCabinet-android/app/src/main/res/mipmap-xxhdpi/login_eyeopen.png b/keyCabinet-android/app/src/main/res/mipmap-xxhdpi/login_eyeopen.png
new file mode 100644
index 0000000..2a76d6a
--- /dev/null
+++ b/keyCabinet-android/app/src/main/res/mipmap-xxhdpi/login_eyeopen.png
Binary files differ
--
Gitblit v1.9.3