From c1d325aeb5bfc710b1ef4d801619ffb65e0afe90 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 24 十一月 2023 18:03:15 +0800
Subject: [PATCH] 修复当查无此卡状态时的bug

---
 app/src/main/java/com/dayu/recharge/MyApplication.java             |    9 ++--
 app/src/main/java/com/dayu/recharge/activity/MyActivity.java       |    7 +++
 app/src/main/java/com/dayu/recharge/net/SocketNet.java             |    6 +-
 app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java  |   20 ++++++---
 app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java  |    9 ----
 app/src/main/java/com/dayu/recharge/activity/RechargeDetail.java   |    2 +
 app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java |   20 ++++++---
 app/src/main/res/layout/activity_recharge_detail.xml               |    2 
 app/src/main/res/layout/activity_red_card.xml                      |   20 ++++++++--
 9 files changed, 60 insertions(+), 35 deletions(-)

diff --git a/app/src/main/java/com/dayu/recharge/MyApplication.java b/app/src/main/java/com/dayu/recharge/MyApplication.java
index 4f9b349..da04377 100644
--- a/app/src/main/java/com/dayu/recharge/MyApplication.java
+++ b/app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -45,6 +45,7 @@
     public boolean isConncet = false;
     private final Timer timer = new Timer();
 
+
     @Override
     public void onCreate() {
         super.onCreate();
@@ -66,7 +67,7 @@
         isAidl = aidl;
     }
 
-    IpBean ipBean;
+    public IpBean ipBean;
 
     /**
      * 鍒濆鍖朎asySocket
@@ -232,9 +233,9 @@
                 .setSocketAddress(new SocketAddress(ip, port))
                 // 瀹氫箟娑堟伅鍗忚锛屾柟渚胯В鍐� socket榛忓寘銆佸垎鍖呯殑闂
                 .setReaderProtocol(new ScoketMessageProtocol())
-                .setMaxWriteBytes(1024)
-                .setMaxReadBytes(1024)
-                .setRequestTimeout(10 * 1000)
+                .setMaxWriteBytes(150)
+                .setMaxReadBytes(150)
+                .setRequestTimeout(5 * 1000)
                 .build();
 
         // 鍒濆鍖�
diff --git a/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java b/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
index 54db2fd..66804f1 100644
--- a/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
@@ -66,16 +66,7 @@
         super.onStart();
         //姝ゅadapter闇�瑕侀噸鏂拌幏鍙栵紝鍚﹀垯鏃犳硶鑾峰彇message
         mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
-        if (mNfcAdapter != null){
-            mNfcAdapter.setNdefPushMessageCallback(new NfcAdapter.CreateNdefMessageCallback() {
-                @Override
-                public NdefMessage createNdefMessage(NfcEvent nfcEvent) {
-                    // 鍦ㄦ澶勫鐞哊FC娑堟伅鐨勫垱寤�
-                    return null;
-                }
-            }, this);
 
-        }
 //            mNfcAdapter.enableReaderMode(this, new NfcAdapter.ReaderCallback() {
 //                @Override
 //                public void onTagDiscovered(Tag tag) {
diff --git a/app/src/main/java/com/dayu/recharge/activity/MyActivity.java b/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
index 69f46bc..f2b190a 100644
--- a/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
@@ -130,6 +130,9 @@
                 case 1:
                     TipUtil.show(MyActivity.this, "瀵煎嚭鎴愬姛!");
                     break;
+                case 3:
+                    TipUtil.show(MyActivity.this, "璁板綍涓虹┖!");
+                    break;
                 default:
                     TipUtil.show(MyActivity.this, "瀵煎嚭澶辫触!");
                     break;
@@ -161,6 +164,10 @@
                             } else {
                                 listData = baseDao.userCardDao().findByTime(beginTime, endTime);
                             }
+                            if (listData == null || listData.size() == 0) {
+                                handler.sendEmptyMessage(2);
+                                return;
+                            }
                         } catch (Exception e) {
                             e.printStackTrace();
                         }
diff --git a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
index 5b04dc2..964df1c 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
@@ -73,7 +73,7 @@
         redCardBinding.redRemainderBlance.setText("鍓╀綑閲戦锛�" + MornyUtil.changeF2Y(blance) + "鍏�");
         redCardBinding.redStatu.setText("鍗$姸鎬侊細" + statu);
         if (userCard != null) {
-            redCardBinding.redInitCode.setText("鐢ㄦ埛娉ㄥ唽缂栧彿锛�" + userCard.getInitPeasantCode());
+            redCardBinding.redInitCode.setText( userCard.getInitPeasantCode());
             Calendar calendar = userCard.getRechargeDate();
             if (calendar != null) {
                 int year = calendar.get(Calendar.YEAR);
@@ -234,12 +234,18 @@
 
                     try {
                         stateText = new StringBuffer();
-                        //閲戦
-                        byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
-                        int balance = SocketUtil.get16to10LowHigh(blanceByte);
-                        //濮撳悕
-                        byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
-                        String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
+                        int balance = 0;
+                        String name = null;
+                        try {
+                            //閲戦
+                            byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
+                            balance = SocketUtil.get16to10LowHigh(blanceByte);
+                            //濮撳悕
+                            byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
+                            name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
 
                         String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]);  //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s
                         if ("00".equals(state)) {
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 12031d2..5895e71 100644
--- a/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
@@ -96,6 +96,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,14 +180,19 @@
                         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);
diff --git a/app/src/main/java/com/dayu/recharge/activity/RechargeDetail.java b/app/src/main/java/com/dayu/recharge/activity/RechargeDetail.java
index 7d1f2ac..118d523 100644
--- a/app/src/main/java/com/dayu/recharge/activity/RechargeDetail.java
+++ b/app/src/main/java/com/dayu/recharge/activity/RechargeDetail.java
@@ -51,9 +51,11 @@
     private void setUserData(String userName, String statu) {
         int balance = userCard.getBalance();
         if (!TextUtils.isEmpty(morny)) {
+            binding.tip.setText("鍏呭�兼垚鍔燂紒");
             balance = userCard.getBalance() + MornyUtil.changeY2F(morny);
             binding.redRemainderMorny.setText("鍏呭�奸噾棰濓細" + morny + " 鍏�");
         } else {
+            binding.tip.setText("寮�鍗℃垚鍔燂紒");
             balance = userCard.getBalance();
             binding.redRemainderMorny.setVisibility(View.GONE);
         }
diff --git a/app/src/main/java/com/dayu/recharge/net/SocketNet.java b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
index f1dbe8f..dd42aa1 100644
--- a/app/src/main/java/com/dayu/recharge/net/SocketNet.java
+++ b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
@@ -102,10 +102,10 @@
                 new Handler().postDelayed(new Runnable() {
                     @Override
                     public void run() {
-                        IpBean ipBean = BaseDaoSingleton.getInstance(MyApplication.myApplication).ipDao().findFirst();
+
                         AdminDataBean adminData = BaseDaoSingleton.getInstance(MyApplication.myApplication).adminDao().findFirst();
-                        if (ipBean != null && adminData != null) {
-                            MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode());
+                        if (MyApplication.myApplication.ipBean != null && adminData != null) {
+                            MyApplication.myApplication.initMachineRequestBean(MyApplication.myApplication.ipBean.getIp(), MyApplication.myApplication.ipBean.getPort(), adminData.getAddressCode());
                         }
                     }
                 }, 500);
diff --git a/app/src/main/res/layout/activity_recharge_detail.xml b/app/src/main/res/layout/activity_recharge_detail.xml
index 8412dce..3608404 100644
--- a/app/src/main/res/layout/activity_recharge_detail.xml
+++ b/app/src/main/res/layout/activity_recharge_detail.xml
@@ -79,7 +79,7 @@
             android:textSize="@dimen/text_size" />
 
         <TextView
-
+            android:id="@+id/tip"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginTop="20dp"
diff --git a/app/src/main/res/layout/activity_red_card.xml b/app/src/main/res/layout/activity_red_card.xml
index 985f6d9..07f0256 100644
--- a/app/src/main/res/layout/activity_red_card.xml
+++ b/app/src/main/res/layout/activity_red_card.xml
@@ -34,13 +34,25 @@
                 android:text="鐢ㄦ埛濮撳悕锛�"
                 android:textSize="@dimen/text_size" />
 
-            <TextView
-                android:id="@+id/red_initCode"
+            <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="15dp"
-                android:text="鐢ㄦ埛娉ㄥ唽缂栧彿锛�"
-                android:textSize="@dimen/text_size" />
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="鐢ㄦ埛娉ㄥ唽缂栧彿锛�"
+                    android:textSize="@dimen/text_size" />
+
+                <TextView
+                    android:id="@+id/red_initCode"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:text=""
+                    android:textSize="@dimen/text_size" />
+            </LinearLayout>
 
 
             <TextView

--
Gitblit v1.8.0