From cb6aca0642ac8dd5de877ade168066d85acb589c Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 17 十月 2025 15:54:10 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wuhuyancao' into wuhuyancao

---
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetActivity.java |  242 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 239 insertions(+), 3 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 79e4c29..03b6978 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
@@ -1,25 +1,81 @@
 package com.doumee.keyCabinet.ui.keyCabinet;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.appcompat.app.AppCompatActivity;
+import androidx.lifecycle.Observer;
 
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.text.SpannableString;
+import android.text.Spanned;
+import android.text.style.TextAppearanceSpan;
+import android.view.View;
+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.KeyCabinetBean;
 import com.doumee.keyCabinet.databinding.KeyCabinetActivityBinding;
+import com.doumee.keyCabinet.event.KeyDoorEvent;
+import com.doumee.keyCabinet.event.KeyResultEvent;
+import com.doumee.keyCabinet.event.KeyStatusListener;
+import com.doumee.keyCabinet.event.OpenGridEvent;
 import com.doumee.keyCabinet.ui.face.adapter.ErrRcvAdapter;
 import com.doumee.keyCabinet.ui.keyCabinet.adapter.CabinetRcvAdapter;
 import com.doumee.lib_coremodel.base.BaseActivity;
+import com.doumee.lib_coremodel.bean.event.ActionEventData;
 import com.doumee.lib_coremodel.util.RecyclerHelp;
 import com.doumee.lib_coremodel.util.SpUtil;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+
+import java.util.List;
+import java.util.Random;
 
 import dagger.hilt.android.AndroidEntryPoint;
 
 @AndroidEntryPoint
 public class KeyCabinetActivity extends MyBaseActivity<KeyCabinetVM, KeyCabinetActivityBinding> {
     private CabinetRcvAdapter adapter;
+    private KeyCabinetBean selectBean;
+    //0=鍙� 1=杩�
+    private int flag;
+
+    //鐘舵�侊紝0锛氬緟寮�闂紝1锛氬緟鍏抽棬
+    private int status;
+
+    private int ysDownCount = 10;
+    private Handler handler = new Handler(){
+        @Override
+        public void handleMessage(@NonNull Message msg) {
+            switch (msg.what){
+                case 0:
+                    if (ysDownCount==4) {
+                        //棰嗗彇閽ュ寵鍊掕鏃�
+                        doRegister(7,null);
+                        ysDownCount--;
+                        handler.sendEmptyMessageDelayed(0,1000);
+                    }else if (ysDownCount==0) {
+                        //棰嗗彇閽ュ寵鍊掕鏃�
+                        doRegister(MApplication.nextBoolean()?5:6,null);
+                    }else {
+                        ysDownCount--;
+                        handler.sendEmptyMessageDelayed(0,1000);
+                    }
+                    break;
+                case 1:
+
+                    break;
+                default:
+                    break;
+            }
+        }
+    };
 
     @Override
     public int getLayoutId() {
@@ -28,14 +84,13 @@
 
     @Override
     public void initView(@Nullable Bundle savedInstanceState) {
-        isAddCountTimer = false;
         normalConfig();
         getDB().setModel(getVM());
-
+        flag = MApplication.getLoginBean().getFlag();
         adapter = new CabinetRcvAdapter(this, R.layout.cabinet_rcv_item, new CabinetRcvAdapter.OnItemClick() {
             @Override
             public void onItemClick(KeyCabinetBean item) {
-
+                selectBean = item;
             }
         });
         RecyclerHelp.bindVG(this,getDB().rcvKm,3,30);
@@ -44,6 +99,187 @@
 
     @Override
     public void initData(@Nullable Bundle savedInstanceState) {
+        getVM().getDatasLD().observe(this, new Observer<List<KeyCabinetBean>>() {
+            @Override
+            public void onChanged(List<KeyCabinetBean> beans) {
+                if(beans.size()>0){
+                    beans.get(0).getIsSelected().set(true);
+                    beans.get(0).getText1Color().set(0xffffffff);
+                    beans.get(0).getText2Color().set(0xffffffff);
+                    selectBean = beans.get(0);
+                    changeBtBg();
+                    adapter.refreshData(beans);
+                    getVM().emptyVisibility.set(View.GONE);
+                }else {
+                    getVM().emptyVisibility.set(View.VISIBLE);
+                }
+            }
+        });
+        getVM().getDatas();
+    }
 
+    @Override
+    protected void timeChange(String djs) {
+        getDB().tvDjs.setText(djs);
+    }
+
+    @Override
+    protected void doRegister(int type, ActionEventData data) {
+        switch (type){
+            case 1:
+                if(selectBean==null){
+                    Toast.makeText(mContext, "璇烽�夋嫨鏌滈棬", Toast.LENGTH_SHORT).show();
+                    return;
+                }
+                //寮�鍚煖闂�
+                getVM().openGridDriver(selectBean);
+                EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(),selectBean.getBoardCode()));
+                break;
+            case 2:
+                getDB().clTip1.setVisibility(View.GONE);
+                if(status==0) {
+                    //閲嶆柊寮�闂�
+                    EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
+                }
+                break;
+            case 3:
+                //寮�鍚け璐�
+                getDB().btTip.setText("閲嶆柊寮�闂�");
+                getDB().imgJg1.setImageResource(R.mipmap.ic_jjfail);
+                getDB().tvJg1.setText("寮�闂ㄥけ璐ワ紝璇疯仈绯荤鐞嗗憳");
+                getDB().tvJg2.setText(getErrPhoneText(),TextView.BufferType.SPANNABLE);
+                getDB().btTip.setVisibility(View.VISIBLE);
+                getDB().clTip1.setVisibility(View.VISIBLE);
+                break;
+            case 4:
+                //寮�鍚垚鍔�
+                status=1;
+                if("0".equals(flag)) {
+                    getDB().imgTip2.setImageResource(R.mipmap.ic_notclose_key);
+                    getDB().tvTip22.setText("璇烽鍙栭挜鍖欏悗鍏抽棴鏌滈棬");
+                }else {
+                    getDB().imgTip2.setImageResource(R.mipmap.ic_notclose);
+                    getDB().tvTip22.setText("璇峰綊杩橀挜鍖欏悗鍏抽棴鏌滈棬");
+                }
+                getDB().tvTip21.setText(getTipText(selectBean.getCabinetName(),"鏌滈棬鎵撳紑鎴愬姛"), TextView.BufferType.SPANNABLE);
+                getDB().clTip2.setVisibility(View.VISIBLE);
+                EventBus.getDefault().post(new KeyStatusListener(0));
+                ysDownCount = 8;
+                handler.sendEmptyMessageDelayed(0,1000);
+                break;
+            case 7:
+                //鎻愰啋鍏虫煖闂�
+                getDB().imgTip2.setImageResource(R.mipmap.ic_notclose);
+                getDB().tvTip22.setText("璇峰叧闂煖闂�");
+                getDB().tvTip21.setText(getTipText(selectBean.getCabinetName(),"鏌滈棬鏈叧闂�"), TextView.BufferType.SPANNABLE);
+                getDB().clTip2.setVisibility(View.VISIBLE);
+                break;
+            case 5:
+                //鍏抽棬-閽ュ寵棰嗗彇鎴愬姛
+                status = 0;
+                getDB().clTip2.setVisibility(View.GONE);
+                getDB().imgJg1.setImageResource(R.mipmap.ic_success);
+                getDB().tvJg1.setText(getTipText(selectBean.getCarCode(),"閽ュ寵棰嗗彇鎴愬姛"), TextView.BufferType.SPANNABLE);
+                getDB().tvJg2.setText("鏌滈棬宸插叧闂�");
+                getDB().btTip.setVisibility(View.GONE);
+                getDB().clTip1.setVisibility(View.VISIBLE);
+                break;
+            case 6:
+                //鍏抽棬-閽ュ寵棰嗗彇澶辫触
+                status = 0;
+                getDB().btTip.setText("閲嶆柊寮�闂�");
+                getDB().imgJg1.setImageResource(R.mipmap.ic_jjfail);
+                getDB().tvJg1.setText(getTipText(selectBean.getCarCode(),"閽ュ寵鏈鍙�"), TextView.BufferType.SPANNABLE);
+                getDB().tvJg2.setText("鏌滈棬宸插叧闂�");
+                getDB().btTip.setVisibility(View.VISIBLE);
+                getDB().clTip1.setVisibility(View.VISIBLE);
+                break;
+            case 8:
+                //鍏抽棬-閽ュ寵褰掕繕鎴愬姛
+                status = 0;
+                getDB().clTip2.setVisibility(View.GONE);
+                getDB().imgJg1.setImageResource(R.mipmap.ic_success);
+                getDB().tvJg1.setText(getTipText(selectBean.getCarCode(),"閽ュ寵褰掕繕鎴愬姛"), TextView.BufferType.SPANNABLE);
+                getDB().tvJg2.setText("鏌滈棬宸插叧闂�");
+                getDB().btTip.setVisibility(View.GONE);
+                getDB().clTip1.setVisibility(View.VISIBLE);
+                break;
+            case 9:
+                //鍏抽棬-閽ュ寵褰掕繕澶辫触
+                status = 0;
+                getDB().btTip.setText("閲嶆柊褰掕繕");
+                getDB().imgJg1.setImageResource(R.mipmap.ic_jjfail);
+                getDB().tvJg1.setText("鏈瘑鍒埌閽ュ寵");
+                getDB().tvJg2.setText(getErrPhoneText(), TextView.BufferType.SPANNABLE);
+                getDB().btTip.setVisibility(View.VISIBLE);
+                getDB().clTip1.setVisibility(View.VISIBLE);
+                break;
+            default:
+                break;
+        }
+    }
+
+    private SpannableString getTipText(String name,String msg){
+        String text = name+msg;
+        SpannableString styledText = new SpannableString(text);
+        styledText.setSpan(new TextAppearanceSpan(this, R.style.style_tip1), 0, name.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+        styledText.setSpan(new TextAppearanceSpan(this,R.style.style_tip2), name.length()+1, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+        return styledText;
+    }
+
+    private SpannableString getErrPhoneText(){
+        String phone = "15899098765";
+        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);
+        styledText.setSpan(new TextAppearanceSpan(this,R.style.style_tip1), text.length()-phone.length()+1, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+        return styledText;
+    }
+
+    private void changeBtBg(){
+        if(selectBean!=null){
+            getDB().tvKm.setBackgroundResource(R.drawable.shape_r25_blue_bg);
+        }else {
+            getDB().tvKm.setBackgroundResource(R.drawable.shape_mb_bt_faile);
+        }
+    }
+
+    @Subscribe
+    public void KeyDoorEvent(KeyDoorEvent e){
+        if(!isFinishing()){
+            if("0".equals(e.getResult())){
+                //寮�闂ㄦ垚鍔�
+                doRegister(4,null);
+            }else {
+                //澶辫触
+                doRegister(3,null);
+            }
+        }
+    }
+
+    @Subscribe
+    public void KeyResultEvent(KeyResultEvent e){
+        if(!isFinishing()){
+            if("0".equals(e.getResult())){
+                //鎴愬姛
+                if("0".equals(flag)){
+                    //閽ュ寵鎷胯蛋浜�
+                    //doRegister(5,null);
+                }else {
+                    //閽ュ寵鏀惧叆浜�
+
+                }
+            }else {
+                //澶辫触
+
+            }
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        handler.removeCallbacksAndMessages(null);
+        handler = null;
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3