From 9ccd59974993aa9914daf045aa6f2bbb5152047c Mon Sep 17 00:00:00 2001
From: weimingfei <fei_gaming@sina.com>
Date: 星期二, 28 十月 2025 09:49:08 +0800
Subject: [PATCH] 钥匙柜
---
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java | 206 ++++++++++++++++++++++++++++-----------------------
1 files changed, 113 insertions(+), 93 deletions(-)
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 c248eb2..0a253eb 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,7 @@
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.hardware.Camera;
+import android.opengl.Visibility;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -30,6 +31,7 @@
import com.alibaba.fastjson.JSON;
import com.baidu.idl.main.facesdk.model.BDFaceSDKCommon;
+import com.baidu.idl.main.facesdk.utils.StreamUtil;
import com.bigkoo.convenientbanner.holder.CBViewHolderCreator;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.DataSource;
@@ -39,11 +41,9 @@
import com.bumptech.glide.request.target.Target;
import com.bumptech.glide.request.transition.Transition;
import com.doumee.keyCabinet.BuildConfig;
-import com.doumee.keyCabinet.base.BannerPicResponsePara;
import com.doumee.keyCabinet.bean.CabinetConfigDataBean;
import com.doumee.keyCabinet.bean.DevConfigBean;
import com.doumee.keyCabinet.bean.FaceUserBean;
-import com.doumee.keyCabinet.bean.LoginBean;
import com.doumee.keyCabinet.dao.CabinetGridDo;
import com.doumee.keyCabinet.dao.DaoManager;
import com.doumee.keyCabinet.databinding.MainActivityBinding;
@@ -54,15 +54,17 @@
import com.doumee.keyCabinet.event.GetKeyStatusEvent;
import com.doumee.keyCabinet.event.HeartEvent;
import com.doumee.keyCabinet.event.HttpEvent;
+import com.doumee.keyCabinet.event.JiujinBeginEvent;
+import com.doumee.keyCabinet.event.JiujinResultEvent;
import com.doumee.keyCabinet.event.KeyResultEvent;
import com.doumee.keyCabinet.event.ManageOpenGridResultEvent;
import com.doumee.keyCabinet.event.OpenAllGridEvent;
import com.doumee.keyCabinet.event.OpenGridEvent;
import com.doumee.keyCabinet.event.OpenGridListEvent;
import com.doumee.keyCabinet.event.OpenGridOneResultEvent;
-import com.doumee.keyCabinet.event.ReLoginEvent;
import com.doumee.keyCabinet.event.TimeClockEvent;
import com.doumee.keyCabinet.ui.face.ActivationActivity;
+import com.doumee.keyCabinet.ui.face.FaceActivity;
import com.doumee.keyCabinet.ui.keyCabinet.ChangeUrlActivity;
import com.doumee.keyCabinet.ui.keyCabinet.KeyCabinetActivity;
import com.doumee.keyCabinet.ui.keyCabinet.ManageLoginActivity;
@@ -109,6 +111,7 @@
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -117,6 +120,8 @@
import java.util.TimerTask;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import dagger.hilt.android.AndroidEntryPoint;
import timber.log.Timber;
@@ -153,7 +158,7 @@
if(!isFinishing()){
switch (msg.what) {
case 0:
- //initM();
+ initM();
TimeUtils.updateTimeUi(getVM().dayObs, getVM().timeObs);
handler.sendEmptyMessageDelayed(0, 1000);
EventBus.getDefault().post(new TimeClockEvent());
@@ -182,7 +187,7 @@
SpUtil.initWH(this);
normalConfig();
getDB().setModel(getVM());
- //initRGBCheck();
+ initRGBCheck();
handler.sendEmptyMessageDelayed(0, 1000);
//鍚姩蹇冭烦
Intent intent = new Intent(MainActivity.this, HeartbeatService.class);
@@ -192,7 +197,6 @@
startService(intent2);
getPermission();
Timber.tag("====>").d(LMobileInfo.getDeviceUniqueId());
- initPort();
}
private void initM(){
@@ -207,7 +211,7 @@
if((availableMemory<400&&showTime!=null&&(System.currentTimeMillis()-showTime>5000))||
("02:00:00".equals(StringUtil.getHM()))){
//鍙敤鍐呭瓨灏忎簬400M,鎴栬�呮瘡澶╁噷鏅�2鐐癸紝閲嶅惎app
- restartApp();
+ //restartApp();
}
}
@@ -273,6 +277,7 @@
getDB().tvId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ startActivity(ManageLoginActivity.class);
//鏇存敼url
if(lastDownTime2!=null){
if(System.currentTimeMillis()-lastDownTime2>1000){
@@ -288,6 +293,26 @@
}
}
});
+ getDB().tvVersion.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ //todo 涓存椂浠g爜
+ //setJiuConfig();
+ SpUtil.saveString("rbgCameraId","0");
+ }
+ });
+ getDB().imgLeft.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ //todo 涓存椂浠g爜
+ if (getDB().nsv.getVisibility()== View.VISIBLE) {
+ getDB().nsv.setVisibility(View.GONE);
+ }else {
+ getDB().nsv.setVisibility(View.VISIBLE);
+ }
+
+ }
+ });
upErrInfo();
getVM().devLogin();
getVM().devHeart();
@@ -299,12 +324,15 @@
setBanner(devConfigBean.getBannerList());
}
setJiuConfig();
+ initPort();
}
}
});
}
private void setJiuConfig(){
+ getVM().addInfo("閰掔簿閰嶇疆锛�"+(MApplication.getConfigBean().getCabinetConfigDataVO()!=null)+
+ ",涓插彛寮�鍚細"+(jiuPort!=null));
if(MApplication.getConfigBean().getCabinetConfigDataVO()!=null&&
jiuPort!=null){
setJiuConfig(0);
@@ -355,50 +383,20 @@
case 2:
case 3: {
//鏍¢獙鏄惁鐧诲綍
- /*if(MApplication.getConfigBean().getId()==null){
+ if(MApplication.getConfigBean().getId()==null){
Toast.makeText(mContext, "璁惧鏈坊鍔狅紝鏃犳硶鎿嶄綔", Toast.LENGTH_SHORT).show();
getVM().devLogin();
return;
}
- MApplication.getLoginBean().setFlag(type==2?0:1);
- startActivity(FaceActivity.class);*/
- /*if(type==2){
- send485(1,"A002010000000003");
- }else {
- send485(1,"A001010000000002");
- }*/
- //send485(1,"A001010000000002");
- //send485(1,"A002010000000003");
- //startActivity(KeyCabinetActivity.class,b);
checkGridStatus(0);
List<CabinetGridDo> gridDos = getVM().getOpenGrids();
if (gridDos.size() > 0) {
- tipDownCount = 10;
- isShowTip = true;
- getDB().tvDjs.setText(tipDownCount + "s");
- StringBuilder sb = new StringBuilder();
- for(CabinetGridDo d:gridDos){
- if (sb.length()>0) {
- sb.append("銆�");
- }
- String name = d.getCabinetName();
- if (TextUtils.isEmpty(name)) {
- name = gridDos.get(0).getGridKey();
- }
- sb.append(name);
- }
-
- getDB().tvTip22.setText(getTipText(sb.toString()), TextView.BufferType.SPANNABLE);
- getDB().clTip.setVisibility(View.VISIBLE);
+ showUnCloseTip(gridDos);
return;
}
MApplication.setLoginBean(null);
MApplication.getLoginBean().setFlag(type == 2 ? 0 : 1);
- if(type==3){
- startActivity(ManageLoginActivity.class);
- return;
- }
- startActivity(KeyCabinetActivity.class);
+ startActivity(FaceActivity.class);
}
break;
case 4:
@@ -408,22 +406,7 @@
case 5: {
List<CabinetGridDo> gridDos = getVM().getOpenGrids();
if (gridDos.size() > 0) {
- tipDownCount = 10;
- isShowTip = true;
- getDB().tvDjs.setText(tipDownCount + "s");
- StringBuilder sb = new StringBuilder();
- for(CabinetGridDo d:gridDos){
- if (sb.length()>0) {
- sb.append("銆�");
- }
- String name = d.getCabinetName();
- if (TextUtils.isEmpty(name)) {
- name = gridDos.get(0).getGridKey();
- }
- sb.append(name);
- }
- getDB().tvTip22.setText(getTipText(sb.toString()), TextView.BufferType.SPANNABLE);
- getDB().clTip.setVisibility(View.VISIBLE);
+ showUnCloseTip(gridDos);
}else {
isShowTip = false;
getDB().clTip.setVisibility(View.GONE);
@@ -438,6 +421,35 @@
}
}
+ private void showUnCloseTip(List<CabinetGridDo> gridDos){
+ tipDownCount = 10;
+ isShowTip = true;
+ getDB().tvDjs.setText(tipDownCount + "s");
+ StringBuilder sb = new StringBuilder();
+ for(CabinetGridDo d:gridDos){
+ if (sb.length()>0) {
+ sb.append("銆�");
+ }
+ String name = d.getCabinetName();
+ if (TextUtils.isEmpty(name)) {
+ name = gridDos.get(0).getGridKey();
+ }
+ sb.append(name);
+ }
+ getDB().tvTip22.setText(getTipText(sb.toString()), TextView.BufferType.SPANNABLE);
+ getDB().tvTip23.setText(getErrPhoneText(), TextView.BufferType.SPANNABLE);
+ getDB().clTip.setVisibility(View.VISIBLE);
+ }
+
+ private SpannableString getErrPhoneText(){
+ String phone = MApplication.getConfigBean().getLinkPhone();
+ String text = "濡傛湁闂璇疯仈绯荤鐞嗗憳"+phone;
+ SpannableString styledText = new SpannableString(text);
+ styledText.setSpan(new TextAppearanceSpan(this, R.style.style_tip3), 0, text.length()-phone.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+ styledText.setSpan(new TextAppearanceSpan(this,R.style.style_tip1), text.length()-phone.length()+1, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+ return styledText;
+ }
+
private boolean isShowing = false;
@Override
protected void onResume() {
@@ -445,7 +457,7 @@
isShowing = true;
showTime = System.currentTimeMillis();
if(!isFaceOk) {
- //initLicense();
+ initLicense();
}
if(isHavePermission) {
checkUpdate();
@@ -816,7 +828,7 @@
if (ret == 128) {
Timber.d("==UpdatingFace==>鍥剧墖鐗瑰緛鎶藉彇鎴愬姛: %s", JSON.toJSONString(bean));
User user = new User();
- user.setUserId(bean.getMemberId());
+ user.setUserId(bean.getMemberId().toString());
user.setGroupId(bean.getGroupId());
user.setUserName(bean.getMemberName());
user.setImageName(bean.getFaceImg());
@@ -904,7 +916,6 @@
popupWindow.showAtLocation(getDB().clRoot, Gravity.CENTER, 0, 0);
RelativeLayout relativeRegister = contentView.findViewById(R.id.relative_register);
RelativeLayout mPopRelativeManager = contentView.findViewById(R.id.relative_manager);
- RelativeLayout mPopRelativeCamra = contentView.findViewById(R.id.relative_camra);
RelativeLayout mRlErr = contentView.findViewById(R.id.rl_err);
relativeRegister.setOnClickListener(new View.OnClickListener() {
@Override
@@ -916,12 +927,6 @@
@Override
public void onClick(View v) {
startActivity(UserManagerActivity.class);
- }
- });
- mPopRelativeCamra.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- //startActivity();
}
});
mRlErr.setOnClickListener(new View.OnClickListener() {
@@ -946,15 +951,13 @@
}
private void initRGBCheck(){
- if(true){
- return;
- }
String index = SpUtil.getString("rbgCameraId");
- if(index==null){
+ if(!"1".equals(index)){
index = "0";
}
setRgbCameraId(Integer.parseInt(index));
/*if (isSetCameraId()){
+ setRgbCameraId(SingleBaseConfig.getBaseConfig().getRBGCameraId());
return;
}
int mCameraNum = Camera.getNumberOfCameras();
@@ -1005,6 +1008,7 @@
}
private void setRgbCameraId(int index){
+ getVM().addInfo("璁剧疆鐩告満锛�"+index);
//Toast.makeText(mContext, "璁剧疆鐩告満"+index, Toast.LENGTH_SHORT).show();
SpUtil.saveString("rbgCameraId",index+"");
BraceletLogUtils.saveLog("璁剧疆鐩告満("+index+")");
@@ -1152,6 +1156,14 @@
}
}
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void JiujinBeginEvent(JiujinBeginEvent e){
+ if(!isFinishing()){
+ //寮�鍚厭绮炬娴�
+ sendPortHandlerMsg(3,"go_wnd:0",0);
+ }
+ }
+
@Subscribe
public void CloseGridOneResultEvent(CloseGridOneResultEvent e){
@@ -1171,7 +1183,6 @@
EventBus.getDefault().post(new OpenGridEvent(Integer.parseInt(e.getKey().substring(2,4), 16)+"",
Integer.parseInt(e.getKey().substring(0,2), 16)+""));
}else {
- //todo 鍏抽棬鎴愬姛
if(isShowTip){
doRegister(5,null);
}
@@ -1203,6 +1214,9 @@
@Override
public void onResultBytes(byte[] bytes) {
+ if(isFinishing()){
+ return;
+ }
if(bytes.length==0){
return;
}
@@ -1293,7 +1307,6 @@
runOnUiThread(() -> {
getVM().addInfo("鎵归噺寮�闂ㄦ洿鏂板簱鏁版嵁:鐗堝彿锛�" +bh+","+ addList.size()+","+updateList.size());
});
- getVM().insertGrids(addList);
getVM().updateGrids(updateList);
if(!portHandler.hasMessages(1)){
EventBus.getDefault().post(new ManageOpenGridResultEvent());
@@ -1365,18 +1378,11 @@
gridDo.setIsOpen("1".equals(dm.substring(i-1,i))?0:1);
gridDo.setUpdateTime(StringUtil.DateToStr(new Date()));
updateList.add(gridDo);
- }else {
- CabinetGridDo gridDo = new CabinetGridDo();
- gridDo.setGridKey(key);
- gridDo.setIsOpen("1".equals(dm.substring(i-1,i))?0:1);
- gridDo.setUpdateTime(StringUtil.DateToStr(new Date()));
- addList.add(gridDo);
}
}
runOnUiThread(() -> {
getVM().addInfo("鏇存柊搴撴暟鎹�:鐗堝彿锛�" +bh+","+ addList.size()+","+updateList.size());
});
- getVM().insertGrids(addList);
getVM().updateGrids(updateList);
}catch (Exception exception){
runOnUiThread(() -> {
@@ -1404,6 +1410,9 @@
@Override
public void onResultBytes(byte[] bytes) {
+ if(isFinishing()){
+ return;
+ }
if(bytes.length==0){
return;
}
@@ -1476,21 +1485,9 @@
}
gridDo.setUpdateTime(StringUtil.DateToStr(new Date()));
updateList.add(gridDo);
- }else {
- //鏂板
- CabinetGridDo gridDo = new CabinetGridDo();
- gridDo.setGridKey(key);
- if("01".equals(isHaveKey)) {
- gridDo.setCurKeyCode(keyCode);
- }else {
- gridDo.setCurKeyCode("");
- }
- gridDo.setUpdateTime(StringUtil.DateToStr(new Date()));
- addList.add(gridDo);
}
}
}
- getVM().insertGrids(addList);
getVM().updateGrids(updateList);
EventBus.getDefault().post(new KeyResultEvent());
}
@@ -1508,12 +1505,33 @@
@Override
public void onResultBytes(byte[] bytes) {
+ if(isFinishing()){
+ return;
+ }
if(bytes.length==0){
return;
}
- runOnUiThread(() -> {
- getVM().addInfo("鑾峰彇鍒伴厭绮炬娴嬫暟鎹�:" + new String(bytes));
- });
+ try {
+ runOnUiThread(() -> {
+ getVM().addInfo("鑾峰彇鍒伴厭绮炬娴嬫暟鎹�:"+StringUtil.DateToStrSS(new Date())+" " + new String(bytes));
+ });
+ String data = new String(bytes);
+ runOnUiThread(() -> {
+ getVM().addInfo("鑾峰彇鍒伴厭绮炬娴嬫槸鍚︽娴嬪け璐�:" + (data.contains("blow fail")));
+ });
+ if(data.contains("blow fail")){
+ //妫�娴嬪け璐�
+ EventBus.getDefault().post(new JiujinResultEvent(false,null));
+ }else if(data.startsWith("Result:")){
+ Pattern pattern = Pattern.compile("([0-9]+\\.[0-9]+)");
+ Matcher matcher = pattern.matcher(data);
+ if (matcher.find()) {
+ EventBus.getDefault().post(new JiujinResultEvent(true,new BigDecimal(matcher.group(1))));
+ }
+ }
+ }catch (Exception e){
+ getVM().addInfo("鑾峰彇鍒伴厭绮炬娴嬫姤閿�:" + e.getMessage());
+ }
}
};
private SerialPortModel chosePort;
@@ -1637,6 +1655,8 @@
sendPortHandlerMsg(3,"alarm:"+config.getConcentration(),time+600);
//娴撳害闃堝�煎崟浣� (1=mg/100ml;2=mg/L;3=%BAC)
sendPortHandlerMsg(3,"unit:"+config.getThreshold(),time+900);
+
+ sendPortHandlerMsg(3,"read"+config.getThreshold(),time+1200);
}
private void sendPortHandlerMsg(int what,String obj,long time){
--
Gitblit v1.9.3