From 526138394ee77759e98764153b851acfe6c929af Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期一, 11 十二月 2023 16:33:19 +0800
Subject: [PATCH] 添加震动和声音提示

---
 app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java |   75 ++++++++++++++++++++++++++++---------
 1 files changed, 56 insertions(+), 19 deletions(-)

diff --git a/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java b/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
index e1ed963..4e938ca 100644
--- a/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
@@ -1,6 +1,7 @@
 package com.dayu.recharge.activity;
 
 import android.content.Intent;
+import android.nfc.Tag;
 import android.os.Bundle;
 import android.text.Editable;
 import android.text.TextUtils;
@@ -37,7 +38,7 @@
  */
 public class RechargeActivity extends BaseNfcActivity {
 
-    Intent intent;
+//    Intent intent;
 
     boolean userFlag;
     ActivityRechargeBinding binding;
@@ -46,6 +47,7 @@
     AdminDataBean adminData;
     String userName;
 
+    Tag mTag;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -61,10 +63,30 @@
         }
     }
 
+
+    @Override
+    public void physicalCardDoing(Tag tag) {
+        super.physicalCardDoing(tag);
+        try {
+            mTag=tag;
+            userCard = NfcReadHelper.getInstence(tag).getUserCardData();
+            if (userCard != null) {
+                ProgressDialog.show(this);
+                selectBalance(userCard.getInitPeasantCode());
+            } else {
+                TipUtil.show(RechargeActivity.this, "鍗$墖璇诲彇澶辫触");
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            CrashReport.postCatchedException(e);
+        }
+    }
+
     public void onNewIntent(Intent intent) {
 
         try {
-            this.intent = intent;
+//            this.intent = intent;
             userCard = NfcReadHelper.getInstence(intent).getUserCardData();
             if (userCard != null) {
                 ProgressDialog.show(this);
@@ -73,7 +95,7 @@
                 TipUtil.show(RechargeActivity.this, "鍗$墖璇诲彇澶辫触");
             }
 
-            readAllData(intent);
+//            readAllData(intent);
         } catch (Exception e) {
             e.printStackTrace();
             CrashReport.postCatchedException(e);
@@ -96,6 +118,7 @@
                     String initCode = DeviceNumberUtils.getDeviceNumber();
                     if (TextUtils.isEmpty(initCode)) {
                         TipUtil.show(RechargeActivity.this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃");
+                        return;
                     }
                     Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class);
                     intent.putExtra("morny", morny);
@@ -179,32 +202,40 @@
                         try {
                             stateText = new StringBuffer();
                             String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]);  //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s
+                            int balance = 0;
 
-                            //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊�
-                            //閲戦
-                            byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
-                            int balance = SocketUtil.get16to10LowHigh(blanceByte);
-                            //濮撳悕
-                            byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
-                            userName = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
+                            try {
+                                //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊�
+                                //閲戦
+                                byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
+                                balance = SocketUtil.get16to10LowHigh(blanceByte);
+                                //濮撳悕
+                                byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
+                                userName = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                            binding.rechargeLL.setVisibility(View.VISIBLE);
+                            binding.rechargeRegistBtn.setVisibility(View.VISIBLE);
+                            binding.rechargeReadLL.setVisibility(View.GONE);
+                            binding.rechargeTextLL.setVisibility(View.VISIBLE);
+                            binding.userName.setText(userName);
+                            binding.redRemainderBlance.setText(MornyUtil.changeF2Y(balance));
+                            binding.redStatu.setText(stateText.toString());
+                            binding.redInitCode.setText(initPeasantCode);
+
                             if ("00".equals(state)) {
-                                stateText.append("鍚敤");
-                                binding.rechargeLL.setVisibility(View.VISIBLE);
                                 binding.rechargeRegistBtn.setVisibility(View.VISIBLE);
-                                binding.rechargeReadLL.setVisibility(View.GONE);
-                                binding.rechargeTextLL.setVisibility(View.VISIBLE);
-                                binding.userName.setText(userName);
-                                binding.redRemainderBlance.setText(MornyUtil.changeF2Y(balance));
-                                binding.redStatu.setText(stateText.toString());
-                                binding.redInitCode.setText(initPeasantCode);
+                                stateText.append("鍚敤");
                                 userCard.setState("00");
                                 userCard.setBalance(balance);
+                                binding.redStatu.setText(stateText.toString());
                                 return;
                             } else if ("01".equals(state)) {
                                 stateText.append("璇ュ崱宸茶绂佺敤");
                                 userCard.setState("01");
                                 userCard.setBalance(balance);
-                                userFlag = WriteCardUtils.setUser(intent, userCard);
+                                userFlag = WriteCardUtils.setUser(mTag, userCard);
                             } else if ("02".equals(state)) {
                                 stateText.append("闅跺睘淇℃伅涓嶇");
                             } else if ("03".equals(state)) {
@@ -212,7 +243,9 @@
                             } else if ("04".equals(state)) {
                                 stateText.append("鍏跺畠");
                             }
+                            binding.redStatu.setText(stateText.toString());
                             binding.rechargeLL.setVisibility(View.GONE);
+                            binding.rechargeRegistBtn.setVisibility(View.GONE);
                             binding.rechargeRegistBtn.setVisibility(View.GONE);
                             TipUtil.show(RechargeActivity.this, stateText.toString());
                         } catch (Exception e) {
@@ -237,4 +270,8 @@
 
     }
 
+    protected void onDestroy() {
+        super.onDestroy();
+        rechargeActivity = null;
+    }
 }

--
Gitblit v1.8.0