From ddafb0f0951e68b4e56bfceef43cf78559f5161f Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 26 六月 2024 14:52:27 +0800
Subject: [PATCH] 1.修复河南版本域名卡结构不同问题 2.修复齐河版本最终购水日期的bug

---
 henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java           |   57 +++++-----------------------
 henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java |   30 +++++++++++---
 ocridcardlibrary/src/main/jniLibs/arm64-v8a/libtflite-android.so                |    0 
 ocridcardlibrary/src/main/jniLibs/arm64-v8a/libtensorflowlite.so                |    0 
 ocridcardlibrary/src/main/jniLibs/arm64-v8a/libMLClassifier.so                  |    0 
 ocridcardlibrary/src/main/jniLibs/arm64-v8a/libAndroidIDCard.so                 |    0 
 app/build.gradle                                                                |   10 ++--
 7 files changed, 39 insertions(+), 58 deletions(-)

diff --git a/app/build.gradle b/app/build.gradle
index 94d0b6d..ed99b59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -16,13 +16,13 @@
         applicationId "com.dayu.recharge"
         minSdk 23
         targetSdk 26
-        versionCode 24
-        versionName "2.4"
+        versionCode 253
+        versionName "2.5.3"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 
-//        ndk {
-//            abiFilters 'armeabi-v7a'
-//        }
+        ndk {
+            abiFilters 'armeabi-v7a','arm64-v8a'
+        }
         signingConfig signingConfigs.debug
 
     }
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java
index 5f11fca..8fb1d67 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java
@@ -210,7 +210,7 @@
             }
             if (this.getIntent().hasExtra("domainCard_luyi")) {
                 domainCard = (DomainCard) this.getIntent().getSerializableExtra("domainCard_luyi");
-                binding.cardData.setText("鍒朵綔璁剧疆鏂颁埂鍩熷悕鍗�");
+                binding.cardData.setText("鍒朵綔璁剧疆楣块倯鍩熷悕鍗�");
             }
             if (this.getIntent().hasExtra("testCard")) {
                 testCard = (TestCard) this.getIntent().getSerializableExtra("testCard");
@@ -524,7 +524,11 @@
     }
 
     private void setmanageCard(Intent intent, final ManageCard manageCard) {
-        manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toZeroByte(baseDao), 1, 0);
+        try {
+            manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toZeroByte(baseDao), 1, 0);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
     /**
@@ -534,7 +538,11 @@
      * @param clearOrInitCard
      */
     private void setClean(Intent intent, final CleanCard clearOrInitCard) {
-        cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(baseDao), 1, 0);
+        try {
+            cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(baseDao), 1, 0);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
 
@@ -545,7 +553,11 @@
      * @param registeredCard
      */
     private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) {
-        registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(baseDao), 1, 0);
+        try {
+            registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(baseDao), 1, 0);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
     /**
@@ -555,7 +567,11 @@
      * @param cleanUserCard
      */
     private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) {
-        cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(baseDao), 1, 0);
+        try {
+            cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(baseDao), 1, 0);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
     /**
@@ -577,7 +593,7 @@
             domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainXinXiangCard.getTwoByte(), 1, 2);
         } catch (Exception e) {
             domainCrdFlag = false;
-            throw new RuntimeException(e);
+            e.printStackTrace();
         }
     }
 
@@ -595,7 +611,7 @@
             configPowerFlag = NFCWriteHelper.getInstence(intent, this).writeData(configurationPowerCard.toByte(baseDao), 1, 0);
         } catch (Exception e) {
             configPowerFlag = false;
-            throw new RuntimeException(e);
+            e.printStackTrace();
         }
     }
 
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java
index 977ad1b..4c3e93d 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java
@@ -172,13 +172,13 @@
         public byte[] toByte() {
             byte[] data = new byte[16];
             data[0] = HexUtil.hexToByte(cardType);
+            domainLength = domainName.length();
 //            鍩熷悕鍗℃柊涔1鍚庢湁01==0锛岄箍閭戞病鏈�01==1
             if (type == 0) {
                 if (domainNumber != null) {
                     byte[] domainNumbers = BcdUtil.strToBcd(domainNumber);
                     data[1] = domainNumbers[0];
                 }
-                domainLength = domainName.length();
                 data[2] = HexUtil.hexToByte(HexUtil.get10to16(domainLength));
                 String portStr = String.valueOf(port);
                 int lenght = portStr.length();
@@ -187,11 +187,7 @@
                 }
                 String ascii = IDN.toASCII(domainName + "," + portStr + "#");
                 asciiByte = ascii.getBytes();
-                if (asciiByte.length < 12) {
-                    System.arraycopy(asciiByte, 0, data, 3, asciiByte.length);
-                } else {
-                    System.arraycopy(asciiByte, 0, data, 3, 12);
-                }
+                System.arraycopy(asciiByte, 0, data, 3, Math.min(asciiByte.length, 12));
             } else {
                 data[1] = HexUtil.hexToByte(HexUtil.get10to16(domainLength));
                 String portStr = String.valueOf(port);
@@ -201,13 +197,7 @@
                 }
                 String ascii = IDN.toASCII(domainName + "," + portStr + "#");
                 asciiByte = ascii.getBytes();
-                if (asciiByte.length < 13) {
-                    System.arraycopy(asciiByte, 0, data, 1, asciiByte.length);
-                } else {
-                    System.arraycopy(asciiByte, 0, data, 1, 13);
-                }
-
-
+                System.arraycopy(asciiByte, 0, data, 2, Math.min(asciiByte.length, 13));
 
             }
 
@@ -224,22 +214,10 @@
 
         public byte[] toBytes() {
             byte[] data = new byte[16];
-            if (type==0){
-                if (asciiByte.length > 12) {
-                    if (asciiByte.length - 12 < 15) {
-                        System.arraycopy(asciiByte, 12, data, 0, asciiByte.length - 12);
-                    } else {
-                        System.arraycopy(asciiByte, 12, data, 0, 15);
-                    }
-                }
-            }else {
-                if (asciiByte.length > 13) {
-                    if (asciiByte.length - 13 < 15) {
-                        System.arraycopy(asciiByte, 13, data, 0, asciiByte.length - 12);
-                    } else {
-                        System.arraycopy(asciiByte, 13, data, 0, 15);
-                    }
-                }
+            int offset = (type == 0) ? 12 : 13;
+
+            if (asciiByte.length > offset) {
+                System.arraycopy(asciiByte, offset, data, 0, Math.min(asciiByte.length - offset, 15));
             }
 
             data[15] = getByteSum(data);
@@ -255,24 +233,11 @@
     public class Two extends BaseCard {
         public byte[] toBytes() {
             byte[] data = new byte[16];
-            if (type==0){
-                if (asciiByte.length > (12 + 15)) {
-                    if (asciiByte.length - (12 + 15) < 15) {
-                        System.arraycopy(asciiByte, 12 + 15, data, 0, asciiByte.length - (12 + 15));
-                    } else {
-                        System.arraycopy(asciiByte, 12 + 15, data, 0, 15);
-                    }
-                }
-            }else {
-                if (asciiByte.length > (13 + 15)) {
-                    if (asciiByte.length - (13 + 15) < 15) {
-                        System.arraycopy(asciiByte, 13 + 15, data, 0, asciiByte.length - (12 + 15));
-                    } else {
-                        System.arraycopy(asciiByte, 13 + 15, data, 0, 15);
-                    }
-                }
+            int offset = (type == 0) ? 27 : 28; // 12 + 15 and 13 + 15
+            if (asciiByte.length > offset) {
+                int lengthToCopy = Math.min(asciiByte.length - offset, 15);
+                System.arraycopy(asciiByte, offset, data, 0, lengthToCopy);
             }
-
             data[15] = getByteSum(data);
             return data;
         }
diff --git a/ocridcardlibrary/src/main/jniLibs/arm64-v8a/libAndroidIDCard.so b/ocridcardlibrary/src/main/jniLibs/arm64-v8a/libAndroidIDCard.so
new file mode 100644
index 0000000..78b6a92
--- /dev/null
+++ b/ocridcardlibrary/src/main/jniLibs/arm64-v8a/libAndroidIDCard.so
Binary files differ
diff --git a/ocridcardlibrary/src/main/jniLibs/arm64-v8a/libMLClassifier.so b/ocridcardlibrary/src/main/jniLibs/arm64-v8a/libMLClassifier.so
new file mode 100644
index 0000000..f47645e
--- /dev/null
+++ b/ocridcardlibrary/src/main/jniLibs/arm64-v8a/libMLClassifier.so
Binary files differ
diff --git a/ocridcardlibrary/src/main/jniLibs/arm64-v8a/libtensorflowlite.so b/ocridcardlibrary/src/main/jniLibs/arm64-v8a/libtensorflowlite.so
new file mode 100644
index 0000000..ae47a2c
--- /dev/null
+++ b/ocridcardlibrary/src/main/jniLibs/arm64-v8a/libtensorflowlite.so
Binary files differ
diff --git a/ocridcardlibrary/src/main/jniLibs/arm64-v8a/libtflite-android.so b/ocridcardlibrary/src/main/jniLibs/arm64-v8a/libtflite-android.so
new file mode 100644
index 0000000..7d4e55f
--- /dev/null
+++ b/ocridcardlibrary/src/main/jniLibs/arm64-v8a/libtflite-android.so
Binary files differ

--
Gitblit v1.8.0