From 22881a4d6409c7d17867e1d40bf81a13578208df Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 31 十月 2025 15:16:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wuhuyancao' into wuhuyancao
---
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 103 insertions(+), 14 deletions(-)
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 a38a64b..7ab3232 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
@@ -1,10 +1,13 @@
package com.doumee.keyCabinet.ui.keyCabinet;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.lifecycle.Observer;
import android.os.Build;
import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
@@ -14,6 +17,7 @@
import android.widget.TextView;
import android.widget.Toast;
+import com.doumee.keyCabinet.MApplication;
import com.doumee.keyCabinet.R;
import com.doumee.keyCabinet.base.MyBaseActivity;
import com.doumee.keyCabinet.bean.ManageKeyCabinetBean;
@@ -27,6 +31,7 @@
import com.doumee.keyCabinet.event.KeyResultEvent;
import com.doumee.keyCabinet.event.ManageOpenGridResultEvent;
import com.doumee.keyCabinet.event.OpenAllGridEvent;
+import com.doumee.keyCabinet.event.OpenErrEvent;
import com.doumee.keyCabinet.event.OpenGridEvent;
import com.doumee.keyCabinet.event.OpenGridListEvent;
import com.doumee.keyCabinet.event.OpenGridOneResultEvent;
@@ -37,6 +42,7 @@
import com.doumee.lib_coremodel.util.RecyclerHelp;
import com.doumee.lib_coremodel.util.StringUtil;
import com.example.datalibrary.db.DBManager;
+import com.innohi.YNHAPI;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -100,6 +106,15 @@
}
});
getVM().getCabinetDetail();
+ getDB().tvTitle.setOnLongClickListener(new View.OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View v) {
+ //鍙互涓嬫媺
+ YNHAPI mAPI = YNHAPI.getInstance();
+ mAPI.setNavigationBarVisibility(YNHAPI.NavigationBarVisibility.VISIBLE);
+ return true;
+ }
+ });
}
private void updateBtnStatus(){
@@ -168,11 +183,6 @@
CabinetGridDo[] upList = new CabinetGridDo[updateList.size()];
for(int i=0;i<updateList.size();i++){
upList[i] = updateList.get(i);
- }
- //todo 鍘绘帀
- CabinetGridDo gridDo = oldMap.get("0101");
- if(gridDo!=null){
- EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"=================>鏇存柊鏁版嵁褰撳墠閽ュ寵2锛�"+gridDo.getCurKeyCode()));
}
DaoManager.getCabinetGridDao().update(upList);
@@ -344,7 +354,7 @@
}
if(isShowOpenTip){
if(openTipDownCount==0){
- doRegister(9,null);
+ getVM().doAction(9);
}else {
openTipDownCount--;
getDB().tvClKmClose.setText(openTipDownCount+"s 鑷姩鍏抽棴");
@@ -526,15 +536,14 @@
}
}
- private String sygKey;
@Subscribe
public void OpenGridOneResultEvent(OpenGridOneResultEvent e){
if(!isFinishing()){
+ //寮�闂ㄦ垚鍔燂紝绉婚櫎寮�闂�
+ if(handler.hasMessages(1)){
+ handler.removeMessages(1);
+ }
if(e.getIsOpen()==0){
- if(e.getKey().equals(sygKey)){
- return;
- }
- sygKey = e.getKey();
//寮�闂ㄥけ璐�,閲嶆柊寮�闂�
EventBus.getDefault().post(new OpenGridEvent(Integer.parseInt(e.getKey().substring(2,4), 16)+"",
Integer.parseInt(e.getKey().substring(0,2), 16)+""));
@@ -542,6 +551,8 @@
}
}
+ private Long keyTime;
+ private HashMap<String,String> closeMap = new HashMap<>();
/**
* 鍏抽棬
* @param e
@@ -549,12 +560,23 @@
@Subscribe(threadMode= ThreadMode.MAIN)
public void CloseGridOneResultEvent(CloseGridOneResultEvent e){
if(!isFinishing()){
- //鑾峰彇鍗″彿
- EventBus.getDefault().post(new GetKeyStatusEvent());
if(isShowTip){
isShowTip = false;
getDB().clTip.setVisibility(View.GONE);
}
+ //鍏抽棬鎴愬姛锛岀Щ闄ゅ紑闂�
+ if(handler.hasMessages(1)){
+ handler.removeMessages(1);
+ }
+ //鍙戦�佹煡璇㈤挜鍖欏彿
+ EventBus.getDefault().post(new GetKeyStatusEvent());
+ keyTime = new Date().getTime()+500;
+ if(handler.hasMessages(0)){
+ handler.removeMessages(0);
+ }
+ handler.sendEmptyMessageDelayed(0,1200);
+ closeMap.put(e.getKey(),"");
+ /*111
//鏍¢獙鍗″彿
CabinetGridDo gridDo = DaoManager.getCabinetGridDao().getGridByKey(e.getKey());
if(gridDo!=null){
@@ -580,20 +602,51 @@
}
}
}
- EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"闂ㄥ叧闂垚鍔�==>鐩爣锛�"+gridDo.getKeyCode()+",褰撳墠锛�"+gridDo.getCurKeyCode()));
+ EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"闂ㄥ叧闂垚鍔�***************************>鐩爣锛�"+gridDo.getKeyCode()+",褰撳墠锛�"+gridDo.getCurKeyCode()));
getVM().closeGrid(gridDo);
+ }*/
+ }
+ }
+
+ @Subscribe(threadMode= ThreadMode.MAIN)
+ public void OpenErrEvent(OpenErrEvent e){
+ //寮�闂ㄥけ璐�
+ if(!isFinishing()){
+ //寮�闂�
+ if(handler.hasMessages(1)){
+ handler.removeMessages(1);
}
+ EventBus.getDefault().post(new OpenGridEvent(e.getKey()));
+ Message msg = Message.obtain();
+ msg.what=1;
+ msg.obj = e.getKey();
+ handler.sendMessageDelayed(msg,1000);
}
}
@Subscribe
public void KeyResultEvent(KeyResultEvent e){
if(!isFinishing()){
+ //鏍¢獙鏃堕棿
+ if(keyTime==null){
+ return;
+ }
+ if(keyTime!=null&&keyTime>System.currentTimeMillis()){
+ //鏍¢獙杩斿洖鏃堕棿<鍛戒护鏃堕棿
+ return;
+ }
+ if(handler.hasMessages(0)){
+ handler.removeMessages(0);
+ }
+ HashMap<String,String> copyMap = new HashMap<>();
+ copyMap.putAll(closeMap);
+ closeMap.clear();
//鏍¢獙鍗″彿涓嶅鐨勶紝鐩存帴寮瑰嚭
List<CabinetGridDo> gridDos = DaoManager.getCabinetGridDao().loadAll();
List<String> keys = new ArrayList<>();
StringBuilder sb = new StringBuilder();
for(CabinetGridDo gridDo:gridDos){
+ boolean isFail = false;
if(TextUtils.isEmpty(gridDo.getGridKey())){
if(!TextUtils.isEmpty(gridDo.getCurKeyCode())&&gridDo.getIsOpen()==0){
//鏈粦瀹氱殑瀛樻斁浜嗛挜鍖�
@@ -602,6 +655,7 @@
sb.append("銆�");
}
sb.append(gridDo.getCabinetName());
+ isFail = true;
}
}else {
if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){
@@ -612,7 +666,15 @@
sb.append("銆�");
}
sb.append(gridDo.getCabinetName());
+ isFail = true;
}
+ }
+ }
+ if(!isFail){
+ if(copyMap.containsKey(gridDo.getGridKey())){
+ //鍏抽棬鎴愬姛
+ EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"闂ㄥ叧闂垚鍔�***************************>鐩爣锛�"+gridDo.getKeyCode()+",褰撳墠锛�"+gridDo.getCurKeyCode()));
+ getVM().closeGrid(gridDo);
}
}
}
@@ -625,4 +687,31 @@
}
}
}
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ handler.removeCallbacksAndMessages(null);
+ handler = null;
+ }
+
+ private Handler handler = new Handler(){
+ @Override
+ public void handleMessage(@NonNull Message msg) {
+ switch (msg.what){
+ case 0:
+ //閲嶆柊鍙戦�侀挜鍖欐煡璇�
+ //鍙戦�佹煡璇㈤挜鍖欏彿
+ EventBus.getDefault().post(new GetKeyStatusEvent());
+ handler.sendEmptyMessageDelayed(0,1200);
+ break;
+ case 1:
+ EventBus.getDefault().post(new OpenGridEvent((String) msg.obj));
+ handler.sendEmptyMessageDelayed(1,1000);
+ break;
+ default:
+ break;
+ }
+ }
+ };
}
\ No newline at end of file
--
Gitblit v1.9.3