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