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