From 1b4835badb3ca32402b6544c668a700c5334d90f Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 26 三月 2024 16:48:31 +0800
Subject: [PATCH] 添加中安身份证识别模块 把IP设置移动到参数设置界面

---
 app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java |  178 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 113 insertions(+), 65 deletions(-)

diff --git a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
index 311b862..adc20fe 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
@@ -1,16 +1,16 @@
 package com.dayu.recharge.activity;
 
+import android.annotation.SuppressLint;
 import android.content.Intent;
 import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
 import android.text.TextUtils;
 import android.util.Log;
+import android.view.KeyEvent;
 import android.view.LayoutInflater;
+import android.view.View;
 import android.widget.Toast;
 
 import com.dayu.recharge.MyApplication;
-
 import com.dayu.recharge.R;
 import com.dayu.recharge.card.CleanCard;
 import com.dayu.recharge.card.CleanUserCard;
@@ -32,7 +32,6 @@
 import com.dayu.recharge.socketBean.BalanceSelecteRequestBean;
 import com.dayu.recharge.socketBean.RechargeRequestBean;
 import com.dayu.recharge.tools.BcdUtil;
-import com.dayu.recharge.tools.HexUtil;
 import com.dayu.recharge.tools.NFCWriteHelper;
 import com.dayu.recharge.tools.NfcReadHelper;
 import com.dayu.recharge.tools.WriteCardUtils;
@@ -44,6 +43,9 @@
 import com.dayu.recharge.utils.MyCommon;
 import com.dayu.recharge.utils.SocketUtil;
 import com.dayu.recharge.utils.TipUtil;
+import com.dayu.recharge.view.ConfirmDialog;
+import com.dayu.recharge.view.ProgressDialog;
+import com.dayu.recharge.view.TitleBar;
 import com.tencent.bugly.crashreport.CrashReport;
 
 import java.util.Arrays;
@@ -56,7 +58,7 @@
  * Description: nfc鍐欏崱鐣岄潰
  */
 public class NFCWreatActivity extends BaseNfcActivity {
-
+    public static String TAG = "NFCWreatActivity";
 
     boolean cleanFlag = false;
     boolean userFlag = false;
@@ -73,8 +75,12 @@
 
     boolean configPowerFlag = false;
 
+    /**
+     * 鏄惁涓嶅啀楠岃瘉鐢ㄦ埛鐩存帴鍐欏崱
+     */
+    boolean isAgainWrite = false;
+
     UserCardBean userCardBean;
-    UserCard olduserCard;
 
     String morny;
     String userName;
@@ -107,6 +113,7 @@
     //鍏呭�奸�氫俊鏄惁瀹屾垚
     boolean rechargeIsOk = false;
     ActivityWriteTextBinding binding;
+    ConfirmDialog confirmDialog;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -115,6 +122,7 @@
             binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this));
             setContentView(binding.getRoot());
             nfcWreatActivity = this;
+            setData();
             getData();
             baseApp = (MyApplication) getApplication();
         } catch (Exception e) {
@@ -124,6 +132,55 @@
     }
 
 
+    private void setData() {
+        titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE, v -> {
+            //澶勭悊鍥犵敤鎴疯鎿嶄綔杩斿洖瀵艰嚧涓嶈兘鍐欏崱鐨勯棶棰橈紝娣诲姞浜屾纭
+            back();
+        });
+    }
+
+    private void back() {
+        if (isUser) {
+            confirmDialog = new ConfirmDialog(NFCWreatActivity.this, v -> {
+                confirmDialog.dismiss();
+                myFinish();
+            });
+            confirmDialog.show();
+        } else if (!TextUtils.isEmpty(morny)) {
+            confirmDialog = new ConfirmDialog(NFCWreatActivity.this, v -> {
+                confirmDialog.dismiss();
+                myFinish();
+            });
+            confirmDialog.show();
+        } else {
+            finish();
+        }
+    }
+
+
+    private void myFinish() {
+        if (NewCardActivity.newCardActivity != null) {
+            NewCardActivity.newCardActivity.finish();
+        }
+        if (RechargeActivity.rechargeActivity != null) {
+            RechargeActivity.rechargeActivity.finish();
+        }
+        NFCWreatActivity.nfcWreatActivity.finish();
+    }
+
+
+    //鐐瑰嚮涓ゆ閫�鍑虹▼搴� 鏈夋椂闂撮棿闅� 闂撮殧鍐呯偣鍑诲垯閫�鍑虹▼搴� 鍚﹀垯 鍒欐彁绀�
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if (keyCode == KeyEvent.KEYCODE_BACK) {
+            back();
+            return true;
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+
+
+    @SuppressLint("SetTextI18n")
     private void getData() {
         try {
             if (this.getIntent().hasExtra("userCard")) {
@@ -172,7 +229,7 @@
                 userName = this.getIntent().getStringExtra("userName");
                 binding.cardData.setText("鍏呭�奸噾棰濓細" + morny + "鍏�");
                 // 鍏呭�奸�昏緫
-                recharge(userCard.getInitPeasantCode(), userName, "鍚敤");
+                recharge(userCard.getInitPeasantCode(), userName);
             }
 
             try {
@@ -192,7 +249,7 @@
      */
     private void checkHasUser() {
 
-        String cardType = NfcReadHelper.getInstence(intent).getCradType();
+        String cardType = NfcReadHelper.getInstence(intent, this).getCradType();
         Log.i("NFCWreatActivity", "cardType=" + cardType);
         if (cardType.equals(MyCommon.USER_CARD_TYPE_1) ||
                 cardType.equals(MyCommon.USER_CARD_TYPE_2) ||
@@ -202,6 +259,8 @@
             binding.textView.setTextColor(getResources().getColor(R.color.red));
         } else if (cardType.equals("-1")) {
             TipUtil.show(NFCWreatActivity.this, "璇峰嬁绉诲姩鍗$墖锛岃鍗″け璐ヨ閲嶈瘯锛侊紒");
+        } else if (cardType.equals("-2")) {
+            TipUtil.show(NFCWreatActivity.this, "璇诲崱澶辫触,璇锋鏌ュ崱鏄惁鏄敤鎴峰崱");
         } else {
             Log.i("NFCWreatActivity", "olduserCard!=null  saveData");
             saveData();
@@ -220,11 +279,9 @@
                     || configureDeviceRegistrationCrad != null
                     || configurationPowerCard != null) {
                 if (userCard != null && TextUtils.isEmpty(morny)) {
-
-                    userFlag = WriteCardUtils.setUser(intent, userCard);
+                    userFlag = WriteCardUtils.setUser(intent, userCard, this);
                 }
                 if (cleanCard != null) {
-                    NFCWriteHelper.getInstence(intent).changePasword(1);
                     setClean(intent, cleanCard);
                 }
                 if (manageCard != null) {
@@ -254,19 +311,9 @@
                             //鐢ㄦ埛鍗�
                             startDetailActivity(userCardBean.getUserName(), "鍚敤");
                         } else if (!TextUtils.isEmpty(morny)) {
-                            TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", new TipUtil.TipListener() {
-                                @Override
-                                public void onCancle() {
-                                    NFCWreatActivity.this.finish();
-                                }
-                            });
+                            TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", NFCWreatActivity.this::finish);
                         } else {
-                            TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", new TipUtil.TipListener() {
-                                @Override
-                                public void onCancle() {
-                                    NFCWreatActivity.this.finish();
-                                }
-                            });
+                            TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", NFCWreatActivity.this::finish);
                         }
 
                     } catch (Exception e) {
@@ -326,13 +373,13 @@
             StringBuffer data = new StringBuffer();
             if (rechargeBean != null) {
                 data.append("*****************************" + "\n");
-                data.append(getResources().getString(R.string.login_title) + "\n");
-                data.append("璁惧搴忓垪鍙凤細" + rechargeBean.getSerial() + "\n");
-                data.append("鐢ㄦ埛鍚嶏細" + rechargeBean.getUserName() + "\n");
+                data.append(getResources().getString(R.string.login_title)).append("\n");
+                data.append("璁惧搴忓垪鍙凤細").append(rechargeBean.getSerial()).append("\n");
+                data.append("鐢ㄦ埛鍚嶏細").append(rechargeBean.getUserName()).append("\n");
                 //            data.append("鎴�  鍙凤細" + rechargeBean.getUserNum() + "\n");
-                data.append("鍏呭�奸噾棰濓細" + rechargeBean.getMorny() + "鍏�" + "\n");
-                data.append("鍗″唴浣欓锛�" + rechargeBean.getBalance() + "鍏�" + "\n");
-                data.append("鏃�  鏈燂細" + DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2) + "\n\n");
+                data.append("鍏呭�奸噾棰濓細").append(rechargeBean.getMorny()).append("鍏�").append("\n");
+                data.append("鍗″唴浣欓锛�").append(rechargeBean.getBalance()).append("鍏�").append("\n");
+                data.append("鏃�  鏈燂細").append(DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2)).append("\n\n");
                 data.append("*****************************");
             }
 
@@ -348,6 +395,7 @@
     }
 
     void startAnim() {
+        binding.avi.setVisibility(View.VISIBLE);
         binding.avi.show();
         // or avi.smoothToShow();
     }
@@ -359,7 +407,7 @@
 
 
     //鍏呭�间笂浼狅紙Socket锛�
-    private void recharge(String initPeasantCode, String name, String statu) {
+    private void recharge(String initPeasantCode, String name) {
         try {
             RechargeRequestBean rechargeRequestBean = new RechargeRequestBean();
             rechargeRequestBean.setControl("01");
@@ -371,7 +419,7 @@
             rechargeRequestBean.setBalance(morny);
 
             rechargeRequestBean.setOrderId(SocketUtil.getOrderId(NFCWreatActivity.this));
-            SocketNet.getInstance().sendTestMessage(rechargeRequestBean.pack(), new SocketCallBack() {
+            SocketNet.getInstance().sendTestMessage(rechargeRequestBean.pack(),"95", new SocketCallBack() {
 
                 @Override
                 public void onSocketResponse(SocketData readData) {
@@ -397,6 +445,7 @@
 
                             rechargeBean.setSerial(adminData.getSerial());
                             userCard.setRechargeDate(Calendar.getInstance());
+                            userCard.setBalance(balance);
                             rechargeBean.setBalance(MornyUtil.changeF2Y(balance));
                             rechargeBean.setInitPeasantCode(initPeasantCode);
                             rechargeBean.setOrderID(orderId);
@@ -408,7 +457,7 @@
                             userCard.setRechargeTimes(userCard.getRechargeTimes() + 1);
                         } else if ("01".equalsIgnoreCase(state)) {
                             userCard.setState("01");
-                            userFlag = WriteCardUtils.setUser(intent, userCard);
+                            userFlag = WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this);
                             NFCWreatActivity.this.finish();
                             TipUtil.show("鍏呭�兼姤鏂囬敊璇�-绂佺敤");
                         } else if ("02".equalsIgnoreCase(state)) {
@@ -444,29 +493,29 @@
 
     //寰�鍗″唴鍐欏厖鍊煎悗鐨勬暟鎹�
     private void rechargeWrratCard() {
-        UserCard userCardold = NfcReadHelper.getInstence(intent).getUserCardData();
+        UserCard userCardold = NfcReadHelper.getInstence(intent, this).getUserCardData();
         if (userCardold != null) {
             //鍒ゆ柇鏄惁鍏呭�肩殑鏄竴涓崱
-            if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode())) {
+            if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode()) || isAgainWrite) {
                 userCard.setState("00");
-                userFlag = WriteCardUtils.setUser(intent, userCard);
+                userFlag = WriteCardUtils.setUser(intent, userCard, this);
                 //   鎵撳嵃鐩稿叧
                 if (userFlag) {
                     setPrinterData(rechargeBean);
                     startDetailActivity(userName, "鍚敤");
                 } else {
-                    TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶆柊鍐嶈瘯");
+                    isAgainWrite = true;
+                    TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶆柊璐村崱");
                 }
             } else {
                 TipUtil.show(NFCWreatActivity.this, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�");
             }
-        } else {
-
         }
+        stopAnim();
     }
 
     private void setmanageCard(Intent intent, final ManageCard manageCard) {
-        manageCardFlag = NFCWriteHelper.getInstence(intent).writeData(manageCard.toZeroByte(), 1, 0);
+        manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toZeroByte(baseDao), 1, 0);
     }
 
     /**
@@ -476,7 +525,7 @@
      * @param clearOrInitCard
      */
     private void setClean(Intent intent, final CleanCard clearOrInitCard) {
-        cleanFlag = NFCWriteHelper.getInstence(intent).writeData(clearOrInitCard.toByte(), 1, 0);
+        cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(baseDao), 1, 0);
     }
 
 
@@ -487,7 +536,7 @@
      * @param registeredCard
      */
     private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) {
-        registeredFlag = NFCWriteHelper.getInstence(intent).writeData(registeredCard.toByte(), 1, 0);
+        registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(baseDao), 1, 0);
     }
 
     /**
@@ -497,7 +546,7 @@
      * @param cleanUserCard
      */
     private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) {
-        cleanUserCardFlag = NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0);
+        cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(baseDao), 1, 0);
     }
 
     /**
@@ -508,15 +557,15 @@
      */
     private void setDomainCard(Intent intent, DomainCard domainCard) {
         try {
-            domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0);
+            domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getZeroByte(), 1, 0);
             if (!domainCrdFlag) {
                 return;
             }
-            domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getOneByte(), 1, 1);
+            domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getOneByte(), 1, 1);
             if (!domainCrdFlag) {
                 return;
             }
-            domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getTwoByte(), 1, 2);
+            domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getTwoByte(), 1, 2);
         } catch (Exception e) {
             domainCrdFlag = false;
             throw new RuntimeException(e);
@@ -524,17 +573,17 @@
     }
 
     private void setTestCard(Intent intent, TestCard testCard) {
-        testCardFlag = NFCWriteHelper.getInstence(intent).writeData(testCard.toByte(), 1, 0);
+        testCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(testCard.toByte(baseDao), 1, 0);
     }
 
 
     private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) {
-        configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0);
+        configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent, this).writeData(configureDeviceRegistrationCrad.toByte(baseDao), 1, 0);
     }
 
     private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) {
         try {
-            configPowerFlag = NFCWriteHelper.getInstence(intent).writeData(configurationPowerCard.toByte(), 1, 0);
+            configPowerFlag = NFCWriteHelper.getInstence(intent, this).writeData(configurationPowerCard.toByte(baseDao), 1, 0);
         } catch (Exception e) {
             configPowerFlag = false;
             throw new RuntimeException(e);
@@ -551,13 +600,7 @@
             detail.putExtra("morny", morny);
         }
         startActivity(detail);
-        if (NewCardActivity.newCardActivity != null) {
-            NewCardActivity.newCardActivity.finish();
-        }
-        if (RechargeActivity.rechargeActivity != null) {
-            RechargeActivity.rechargeActivity.finish();
-        }
-        NFCWreatActivity.nfcWreatActivity.finish();
+        myFinish();
     }
 
     /**
@@ -566,8 +609,9 @@
      * @param initPeasantCode 鍐滄埛娉ㄥ唽缂栧彿
      */
     private void selectBalance(String initPeasantCode) {
-
+        Log.i(TAG, "琛ュ崱鏌ヨ浣欓:鍐滄埛娉ㄥ唽缂栧彿 " + initPeasantCode);
         try {
+            startAnim();
             BalanceSelecteRequestBean requestBean = new BalanceSelecteRequestBean();
             requestBean.setAFN("94");
             requestBean.setControl("01");
@@ -575,7 +619,7 @@
             requestBean.setInitCode(initCode);
             requestBean.setInitPeasantCode(initPeasantCode);
             requestBean.setXuLie(SocketUtil.getXuLie(this));
-            SocketNet.getInstance().sendTestMessage(requestBean.pack(), new SocketCallBack() {
+            SocketNet.getInstance().sendTestMessage(requestBean.pack(), "94",new SocketCallBack() {
                 @Override
                 public void onSocketResponse(SocketData readData) {
                     if (CRC8.isCRC8(readData.getOriginDataBytes())) {
@@ -611,21 +655,16 @@
                                 userCard.setBalance(balance);
                                 userCard.setState("00");
                                 //琛ュ崱閫昏緫
-                                userFlag = WriteCardUtils.setUser(intent, userCard);
+                                userFlag = WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this);
                                 if (userFlag) {
-                                    TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛", new TipUtil.TipListener() {
-                                        @Override
-                                        public void onCancle() {
-                                            NFCWreatActivity.this.finish();
-                                        }
-                                    });
+                                    TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛", () -> NFCWreatActivity.this.finish());
                                 }
                                 return;
                             } else if ("01".equals(state)) {
                                 stateText.append("绂佺敤");
                                 userCard.setState("01");
                                 userCard.setBalance(balance);
-                                userFlag = WriteCardUtils.setUser(intent, userCard);
+                                userFlag = WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this);
                                 startDetailActivity(name, stateText.toString());
 
                             } else if ("02".equals(state)) {
@@ -646,6 +685,8 @@
                         //鏍¢獙CRC閿欒
                         TipUtil.show(NFCWreatActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
                     }
+                    stopAnim();
+
                 }
 
                 @Override
@@ -657,8 +698,15 @@
         } catch (Exception e) {
             e.printStackTrace();
             CrashReport.postCatchedException(e);
+            stopAnim();
+            ProgressDialog.dismiss();
         }
 
     }
 
+    protected void onDestroy() {
+        super.onDestroy();
+        ProgressDialog.dismiss();
+        nfcWreatActivity = null;
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0