From 81e258e6aa59dafce998b4f41b1271a9f5c9aff5 Mon Sep 17 00:00:00 2001
From: weimingfei <fei_gaming@sina.com>
Date: 星期四, 30 十月 2025 20:07:26 +0800
Subject: [PATCH] 钥匙柜

---
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java |  110 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 102 insertions(+), 8 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..3ffcd14 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(){
@@ -526,15 +541,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 +556,8 @@
         }
     }
 
+    private Long keyTime;
+    private HashMap<String,String> closeMap = new HashMap<>();
     /**
      * 鍏抽棬
      * @param e
@@ -549,12 +565,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 +607,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 +660,7 @@
                             sb.append("銆�");
                         }
                         sb.append(gridDo.getCabinetName());
+                        isFail = true;
                     }
                 }else {
                     if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){
@@ -612,7 +671,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 +692,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