From 9a697d6a8bc05955b9f7322bc86dc3e920e90e14 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 06 十一月 2025 18:07:21 +0800
Subject: [PATCH] Merge branch 'wuhuyancao' of http://139.186.142.91:10010/r/productDev/dmvisit into wuhuyancao

---
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetActivity.java |  120 ++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 96 insertions(+), 24 deletions(-)

diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetActivity.java
index b9a76ca..f3e8818 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetActivity.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetActivity.java
@@ -25,6 +25,7 @@
 import com.doumee.keyCabinet.event.CloseGridOneResultEvent;
 import com.doumee.keyCabinet.event.KeyResultEvent;
 import com.doumee.keyCabinet.event.GetKeyStatusEvent;
+import com.doumee.keyCabinet.event.OpenErrEvent;
 import com.doumee.keyCabinet.event.OpenGridEvent;
 import com.doumee.keyCabinet.event.OpenGridListEvent;
 import com.doumee.keyCabinet.event.OpenGridOneResultEvent;
@@ -58,6 +59,7 @@
     private int status;
 
     private int ysDownCount = 10;
+    private boolean isChose;
 
     @Override
     public int getLayoutId() {
@@ -73,6 +75,9 @@
         adapter = new CabinetRcvAdapter(this, R.layout.cabinet_rcv_item, new CabinetRcvAdapter.OnItemClick() {
             @Override
             public void onItemClick(KeyCabinetBean item) {
+                if(isChose){
+                    return;
+                }
                 selectBean = item;
             }
         });
@@ -151,6 +156,10 @@
                     Toast.makeText(mContext, "璇烽�夋嫨鏌滈棬", Toast.LENGTH_SHORT).show();
                     return;
                 }
+                if(isChose){
+                    return;
+                }
+                isChose = true;
                 if(isOpening){
                     return;
                 }
@@ -158,9 +167,10 @@
                 //寮�鍚煖闂�
                 getVM().openGridDriver(selectBean);
                 downTime = 60;
+                getDB().tvTitle.setVisibility(View.GONE);
                 break;
             case 2:
-                getDB().clTip1.setVisibility(View.GONE);
+                //getDB().clTip1.setVisibility(View.GONE);
                 if(status==0) {
                     //閲嶆柊寮�闂�
                     openTime = StringUtil.DateToStr(new Date());
@@ -183,7 +193,7 @@
                 isOpening = false;
                 //寮�鍚垚鍔�
                 status=1;
-                if("0".equals(flag)) {
+                if(flag==0) {
                     getDB().imgTip2.setImageResource(R.mipmap.ic_notclose_key);
                     getDB().tvTip22.setText("璇烽鍙栭挜鍖欏悗鍏抽棴鏌滈棬");
                 }else {
@@ -193,7 +203,6 @@
                 getDB().tvTip21.setText(getTipText(selectBean.getCode(),"鏌滈棬鎵撳紑鎴愬姛"), TextView.BufferType.SPANNABLE);
                 getDB().clTip1.setVisibility(View.GONE);
                 getDB().clTip2.setVisibility(View.VISIBLE);
-                EventBus.getDefault().post(new GetKeyStatusEvent());
                 ysDownCount = 8;
                 break;
             case 7:
@@ -273,6 +282,12 @@
 
     private SpannableString getErrPhoneText(){
         String phone = MApplication.getConfigBean().getLinkPhone();
+        if(phone==null){
+            String text = "濡傛湁闂璇疯仈绯荤鐞嗗憳";
+            SpannableString styledText = new SpannableString(text);
+            styledText.setSpan(new TextAppearanceSpan(this, R.style.style_tip3), 0, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+            return styledText;
+        }
         String text = "濡傛湁闂璇疯仈绯荤鐞嗗憳"+phone;
         SpannableString styledText = new SpannableString(text);
         styledText.setSpan(new TextAppearanceSpan(this, R.style.style_tip2), 0, text.length()-phone.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
@@ -291,6 +306,8 @@
     @Override
     protected void onDestroy() {
         super.onDestroy();
+        handler.removeCallbacksAndMessages(null);
+        handler = null;
     }
 
     private String openTime = "";
@@ -300,6 +317,10 @@
             if(selectBean!=null){
                 String key = SportUtils.intToHex(Integer.parseInt(selectBean.getBoardCode()))
                         +SportUtils.intToHex(Integer.parseInt(selectBean.getChannelCode()));
+                //寮�闂ㄦ垚鍔燂紝绉婚櫎寮�闂�
+                if(handler.hasMessages(1)){
+                    handler.removeMessages(1);
+                }
                 if(key.equals(e.getKey())) {
                     if (e.getIsOpen()==1) {
                         //寮�闂ㄦ垚鍔�
@@ -307,8 +328,7 @@
                             return;
                         }
                         isOpened = true;
-                        Toast.makeText(mContext, "鎿嶄綔4", Toast.LENGTH_LONG).show();
-                        doRegister(4, null);
+                        getVM().doAction(4);
                     } else {
                         //澶辫触
                         //濡傛灉鏄挜鍖欎笉瀵圭户缁紑闂�
@@ -321,25 +341,35 @@
                             }
                             if (!gridDo.getCurKeyCode().equals(selectBean.getKeyCode())) {
                                 //閽ュ寵涓嶅尮閰�
-                                doRegister(10,null);
+                                getVM().doAction(10,null);
                                 EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                                 return;
                             }
                         }
-                        doRegister(3, null);
+                        getVM().doAction(3);
                     }
                 }
             }
         }
     }
 
+    private Long keyTime;
     private boolean isOpened = false;
     @Subscribe(threadMode= ThreadMode.MAIN)
     public void CloseGridOneResultEvent(CloseGridOneResultEvent e){
         if(!isFinishing()){
+            //鍏抽棬鎴愬姛锛岀Щ闄ゅ紑闂�
+            if(handler.hasMessages(1)){
+                handler.removeMessages(1);
+            }
             //鑾峰彇鍗″彿
             EventBus.getDefault().post(new GetKeyStatusEvent());
-            if(selectBean!=null){
+            keyTime = new Date().getTime()+500;
+            if(handler.hasMessages(0)){
+                handler.removeMessages(0);
+            }
+            handler.sendEmptyMessageDelayed(0,1200);
+            /*if(selectBean!=null){
                 String key = SportUtils.intToHex(Integer.parseInt(selectBean.getBoardCode()))
                         +SportUtils.intToHex(Integer.parseInt(selectBean.getChannelCode()));
                 if(key.equals(e.getKey())) {
@@ -361,18 +391,17 @@
                                     if (gridDo.getCurKeyCode().equals(selectBean.getKeyCode())) {
                                         //棰嗗彇澶辫触
                                         isOpened = false;
-                                        doRegister(6, null);
+                                        getVM().doAction(6);
                                         getVM().closeGrid(gridDo);
                                     }else {
                                         //閽ュ寵涓嶅尮閰�
-                                        //Toast.makeText(mContext, "鎿嶄綔10", Toast.LENGTH_LONG).show();
-                                        doRegister(10,null);
+                                        getVM().doAction(10,null);
                                         EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                                     }
                                 } else {
                                     //閽ュ寵鎷胯蛋浜�
                                     isOpened = false;
-                                    doRegister(5, null);
+                                    getVM().doAction(5);
                                     getVM().closeGrid(gridDo);
                                 }
                             }else {
@@ -398,17 +427,17 @@
                                     if (gridDo.getCurKeyCode().equals(selectBean.getKeyCode())) {
                                         //鐩稿悓褰掕繕鎴愬姛
                                         isOpened = false;
-                                        doRegister(8, null);
+                                        getVM().doAction(8);
                                         getVM().closeGrid(gridDo);
                                     }else {
                                         //閽ュ寵涓嶅尮閰�
-                                        doRegister(10,null);
+                                        getVM().doAction(10,null);
                                         EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                                     }
                                 } else {
                                     //閽ュ寵鏈綊杩�
                                     isOpened = false;
-                                    doRegister(9, null);
+                                    getVM().doAction(9);
                                     getVM().closeGrid(gridDo);
                                 }
                             }else {
@@ -419,7 +448,20 @@
                         }
                     }
                 }
+            }*/
+        }
+    }
+
+    @Subscribe(threadMode= ThreadMode.MAIN)
+    public void OpenErrEvent(OpenErrEvent e){
+        //寮�闂ㄥけ璐�
+        if(!isFinishing()){
+            //寮�闂�
+            if(handler.hasMessages(1)){
+                handler.removeMessages(1);
             }
+            EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
+            handler.sendEmptyMessageDelayed(1,1000);
         }
     }
 
@@ -427,6 +469,17 @@
     public void KeyResultEvent(KeyResultEvent e){
         if(!isFinishing()){
             if(selectBean!=null){
+                //鏍¢獙鏃堕棿
+                if(keyTime==null){
+                    return;
+                }
+                if(keyTime!=null&&keyTime>System.currentTimeMillis()){
+                    //鏍¢獙杩斿洖鏃堕棿<鍛戒护鏃堕棿
+                    return;
+                }
+                if(handler.hasMessages(0)){
+                    handler.removeMessages(0);
+                }
                 String key = SportUtils.intToHex(Integer.parseInt(selectBean.getBoardCode()))
                         +SportUtils.intToHex(Integer.parseInt(selectBean.getChannelCode()));
                 if(flag==0) {
@@ -440,25 +493,24 @@
                                 if (gridDo.getCurKeyCode().equals(selectBean.getKeyCode())) {
                                     //棰嗗彇澶辫触
                                     isOpened = false;
-                                    doRegister(6, null);
+                                    getVM().doAction(6);
                                     getVM().closeGrid(gridDo);
                                 }else {
                                     //閽ュ寵涓嶅尮閰�
-                                    //Toast.makeText(mContext, "鎿嶄綔10", Toast.LENGTH_LONG).show();
-                                    doRegister(10,null);
+                                    getVM().doAction(10);
                                     EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                                 }
                             } else {
                                 //閽ュ寵鎷胯蛋浜�
                                 isOpened = false;
-                                doRegister(5, null);
+                                getVM().doAction(5);
                                 getVM().closeGrid(gridDo);
                             }
                         }else {
                             //娌″叧闂�
                             if(TextUtils.isEmpty(gridDo.getCurKeyCode())){
                                 //绌轰簡
-                                doRegister(7,null);
+                                getVM().doAction(7);
                             }
                         }
                     }else {
@@ -474,24 +526,24 @@
                                 if (gridDo.getCurKeyCode().equals(selectBean.getKeyCode())) {
                                     //鐩稿悓褰掕繕鎴愬姛
                                     isOpened = false;
-                                    doRegister(8, null);
+                                    getVM().doAction(8);
                                     getVM().closeGrid(gridDo);
                                 }else {
                                     //閽ュ寵涓嶅尮閰�
-                                    doRegister(10,null);
+                                    getVM().doAction(10);
                                     EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                                 }
                             } else {
                                 //閽ュ寵鏈綊杩�
                                 isOpened = false;
-                                doRegister(9, null);
+                                getVM().doAction(9);
                                 getVM().closeGrid(gridDo);
                             }
                         }else {
                             //娌″叧闂�
                             if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){
                                 //鏈夐挜鍖欎簡
-                                doRegister(7,null);
+                                getVM().doAction(7);
                             }
                         }
                     } else {
@@ -501,4 +553,24 @@
             }
         }
     }
+
+    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(selectBean.getChannelCode(), selectBean.getBoardCode()));
+                    handler.sendEmptyMessageDelayed(1,1000);
+                    break;
+                default:
+                    break;
+            }
+        }
+    };
 }
\ No newline at end of file

--
Gitblit v1.9.3