From a6fdb620fa48f6c78f066d8e01b69d2570d3baa7 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 22 十一月 2023 17:43:45 +0800
Subject: [PATCH] 修改初始密码 首页添加联网状态 调整联网loding动画

---
 app/src/main/res/layout/edt_dialog.xml                                |    2 
 app/src/main/java/com/dayu/recharge/activity/MyActivity.java          |    9 
 app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java          |   57 ++++
 app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java     |    5 
 app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java |    8 
 app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java     |    3 
 app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java    |  115 +++------
 app/src/main/java/com/dayu/recharge/tools/HexUtil.java                |   18 +
 app/src/main/java/com/dayu/recharge/view/PassWordDialog.java          |    5 
 app/src/main/res/drawable/ws_login_red_btn_one.xml                    |    2 
 app/src/main/java/com/dayu/recharge/view/ProgressDialog.java          |   29 ++
 app/src/main/res/layout/text_dialog.xml                               |    1 
 app/src/main/res/layout/item_recharge.xml                             |    2 
 app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java    |   13 
 app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java     |    9 
 app/src/main/java/com/dayu/recharge/activity/HomeActivity.java        |   14 +
 app/src/main/java/com/dayu/recharge/MyApplication.java                |   39 ---
 app/src/main/java/com/dayu/recharge/net/SocketNet.java                |   17 
 app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java         |   65 ++--
 app/src/main/java/com/dayu/recharge/utils/TipUtil.java                |   48 +++
 app/src/main/java/com/dayu/recharge/card/UserCard.java                |  167 +++++++------
 app/src/main/java/com/dayu/recharge/tools/BaseNFCHelper.java          |   25 +
 app/src/main/java/com/dayu/recharge/adapter/RechargeAdapter.java      |    2 
 app/src/main/res/layout/activity_home.xml                             |   13 +
 app/src/main/java/com/dayu/recharge/view/EdtDialog.java               |    4 
 25 files changed, 397 insertions(+), 275 deletions(-)

diff --git a/app/src/main/java/com/dayu/recharge/MyApplication.java b/app/src/main/java/com/dayu/recharge/MyApplication.java
index eac3399..5a9cafc 100644
--- a/app/src/main/java/com/dayu/recharge/MyApplication.java
+++ b/app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -52,7 +52,7 @@
         isAidl = true;
         AidlUtil.getInstance().connectPrinterService(this);
         initEasySocket(false, null);
-        socketConnect();
+
         CrashReport.initCrashReport(getApplicationContext(), "45551598b8", true);
     }
 
@@ -235,43 +235,6 @@
 //        EasySocket.getInstance().subscribeSocketAction(socketActionListener);
         EasySocket.getInstance().subscribeSocketAction(SocketNet.getInstance().socketNet.socketActionListener);
     }
-
-
-    /**
-     * 瀹氭椂閲嶈繛鏈嶅姟鍣�
-     */
-    private void socketConnect() {
-
-        try {
-            TimerTask task = new TimerTask() {
-                @Override
-                public void run() {
-                    // TODO Auto-generated method stub
-                    Message message = new Message();
-                    message.what = 1;
-                    handler.sendMessage(message);
-                }
-            };
-//            timer.schedule(task, 5000, 1000 * 60 * 3);
-            timer.schedule(task, 5000, 1000 * 60 * 3);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    Handler handler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            // TODO Auto-generated method stub
-            // 瑕佸仛鐨勪簨鎯�
-            super.handleMessage(msg);
-            try {
-                SocketNet.getInstance().isConnect(MyApplication.this);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-    };
 
 
 }
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 a27aa80..9447bcd 100644
--- a/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
@@ -5,6 +5,7 @@
  */
 
 
+import android.app.Activity;
 import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
@@ -96,7 +97,7 @@
      *
      * @return
      */
-    protected Boolean ifNFCUse(Context context) {
+    protected Boolean ifNFCUse(Activity context) {
         if (mNfcAdapter == null) {
             TipUtil.show(context, "璁惧涓嶆敮鎸丯FC锛�");
             return false;
diff --git a/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java b/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
index cfa7ada..f006e6a 100644
--- a/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
@@ -6,6 +6,8 @@
 import android.view.LayoutInflater;
 import android.view.View;
 
+import com.dayu.recharge.MyApplication;
+import com.dayu.recharge.R;
 import com.dayu.recharge.databinding.ActivityHomeBinding;
 import com.dayu.recharge.dbBean.AdminDataBean;
 import com.dayu.recharge.utils.TipUtil;
@@ -31,6 +33,7 @@
         setContentView(homeBinding.getRoot());
         initView();
         getPermission();
+        rushState();
     }
 
     private void getPermission() {
@@ -49,6 +52,17 @@
                 });
     }
 
+    public void rushState() {
+        if (MyApplication.myApplication.isConncet) {
+            homeBinding.socketState.setTextColor(getResources().getColor(R.color.title_bg));
+            homeBinding.socketState.setText("宸茶繛鎺ユ暟鎹腑蹇�");
+        } else {
+            homeBinding.socketState.setTextColor(getResources().getColor(R.color.red));
+            homeBinding.socketState.setText("姝e湪杩炴帴鏁版嵁涓績");
+        }
+
+    }
+
     private void initView() {
         homeBinding.homeNewCard.setOnClickListener(new View.OnClickListener() {
             @Override
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 0e9a60f..6dfe6ef 100644
--- a/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
@@ -186,17 +186,12 @@
                 myBinding.myVillageNum.setText("璇风偣鍑诲湴鍧�淇℃伅璁剧疆");
             }
             StringBuilder msgData = new StringBuilder();
-            if (MyApplication.myApplication.isConncet) {
-                msgData.append("宸茶繛鎺ユ暟鎹腑蹇�");
-            } else {
-                msgData.append("鏈繛鎺ユ暟鎹腑蹇�");
-            }
 
             String initCode = DeviceNumberUtils.getDeviceNumber();
             if (TextUtils.isEmpty(initCode)) {
-                msgData.append(",璁惧鏈敞鍐�");
+                msgData.append("璁惧鏈敞鍐�");
             } else {
-                msgData.append(",璁惧宸叉敞鍐�,璁惧娉ㄥ唽鍙凤細" + initCode);
+                msgData.append("璁惧娉ㄥ唽鍙凤細" + initCode);
             }
             myBinding.myTestConnect.setText(msgData);
         } catch (Exception e) {
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 eef5996..311b862 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
@@ -5,6 +5,7 @@
 import android.os.Handler;
 import android.os.Message;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.widget.Toast;
 
@@ -40,6 +41,7 @@
 import com.dayu.recharge.utils.DateUtil;
 import com.dayu.recharge.utils.DeviceNumberUtils;
 import com.dayu.recharge.utils.MornyUtil;
+import com.dayu.recharge.utils.MyCommon;
 import com.dayu.recharge.utils.SocketUtil;
 import com.dayu.recharge.utils.TipUtil;
 import com.tencent.bugly.crashreport.CrashReport;
@@ -72,7 +74,7 @@
     boolean configPowerFlag = false;
 
     UserCardBean userCardBean;
-
+    UserCard olduserCard;
 
     String morny;
     String userName;
@@ -112,7 +114,6 @@
         try {
             binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this));
             setContentView(binding.getRoot());
-            initView();
             nfcWreatActivity = this;
             getData();
             baseApp = (MyApplication) getApplication();
@@ -120,31 +121,6 @@
             e.printStackTrace();
             CrashReport.postCatchedException(e);
         }
-    }
-
-    private void initView() {
-        handler = new Handler(new Handler.Callback() {
-            @Override
-            public boolean handleMessage(Message msg) {
-                switch (msg.what) {
-
-                    case HAS_USER://鍒ゆ柇宸插啓鍏ョ敤鎴�
-                        binding.textView.setText("璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖");
-                        binding.textView.setTextColor(getResources().getColor(R.color.red));
-                        stopAnim();
-                        break;
-                    case NO_USER://娌℃湁鍐欒繃鐢ㄦ埛缁х画淇濆瓨
-                        saveData();
-                        break;
-                    default:
-                        stopAnim();
-                        TipUtil.show(NFCWreatActivity.this, "鍗$墖璇诲彇澶辫触");
-                        break;
-
-                }
-                return false;
-            }
-        });
     }
 
 
@@ -215,37 +191,23 @@
      * 妫�娴嬫槸鍚︽槸鐢ㄦ埛鍗★紝鍋囧鏄敤鎴峰崱鐨勮瘽闇�瑕佹娴嬪崱鐗囨槸鍚﹀凡缁忓紑杩囨埛锛屽亣濡傚凡寮�鎴峰垯鎶ラ敊涓嶈兘鍐嶅啓鍗″亣濡傛槸鐢ㄦ埛鍗¢渶瑕�
      */
     private void checkHasUser() {
-        try {
-            NfcReadHelper.getInstence(intent)
-                    .getData(1, 0, new NfcReadHelper.NFCCallByteback() {
-                        @Override
-                        public void callBack(byte[] data) {
-                            Message message = new Message();
-                            String type = HexUtil.byteToHex(data[0]).toUpperCase();
-                            switch (type) {
-                                case "A1":
-                                case "A8":
-                                case "A2":
-                                    message.what = HAS_USER;
-                                    break;
-                                default:
-                                    message.what = NO_USER;
-                                    break;
-                            }
-                            handler.sendMessage(message);
-                        }
 
-                        @Override
-                        public void error(int code) {
-                            Message message = new Message();
-                            message.what = code;
-                            handler.sendMessage(message);
-                        }
-                    });
-        } catch (Exception e) {
-            e.printStackTrace();
-            CrashReport.postCatchedException(e);
+        String cardType = NfcReadHelper.getInstence(intent).getCradType();
+        Log.i("NFCWreatActivity", "cardType=" + cardType);
+        if (cardType.equals(MyCommon.USER_CARD_TYPE_1) ||
+                cardType.equals(MyCommon.USER_CARD_TYPE_2) ||
+                cardType.equals(MyCommon.USER_CARD_TYPE_3)
+        ) {
+            binding.textView.setText("璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖");
+            binding.textView.setTextColor(getResources().getColor(R.color.red));
+        } else if (cardType.equals("-1")) {
+            TipUtil.show(NFCWreatActivity.this, "璇峰嬁绉诲姩鍗$墖锛岃鍗″け璐ヨ閲嶈瘯锛侊紒");
+        } else {
+            Log.i("NFCWreatActivity", "olduserCard!=null  saveData");
+            saveData();
         }
+
+        stopAnim();
     }
 
 
@@ -258,9 +220,11 @@
                     || configureDeviceRegistrationCrad != null
                     || configurationPowerCard != null) {
                 if (userCard != null && TextUtils.isEmpty(morny)) {
+
                     userFlag = WriteCardUtils.setUser(intent, userCard);
                 }
                 if (cleanCard != null) {
+                    NFCWriteHelper.getInstence(intent).changePasword(1);
                     setClean(intent, cleanCard);
                 }
                 if (manageCard != null) {
@@ -290,11 +254,19 @@
                             //鐢ㄦ埛鍗�
                             startDetailActivity(userCardBean.getUserName(), "鍚敤");
                         } else if (!TextUtils.isEmpty(morny)) {
-                            NFCWreatActivity.this.finish();
-                            TipUtil.show("鍏呭�兼垚鍔�");
+                            TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", new TipUtil.TipListener() {
+                                @Override
+                                public void onCancle() {
+                                    NFCWreatActivity.this.finish();
+                                }
+                            });
                         } else {
-                            NFCWreatActivity.this.finish();
-                            TipUtil.show("鍐欏崱鎴愬姛");
+                            TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", new TipUtil.TipListener() {
+                                @Override
+                                public void onCancle() {
+                                    NFCWreatActivity.this.finish();
+                                }
+                            });
                         }
 
                     } catch (Exception e) {
@@ -302,14 +274,10 @@
                         CrashReport.postCatchedException(e);
                     }
                 } else {
-                    TipUtil.show("鍐欏崱澶辫触");
+                    TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触");
                 }
                 stopAnim();
-            }
-//            else if (!TextUtils.isEmpty(morny)) {
-//
-//            }
-            else if (userCard == null && userCardBean != null) {
+            } else if (userCard == null && userCardBean != null) {
                 //琛ュ崱閫昏緫
                 selectBalance(userCardBean.getInitPeasantCode());
             } else {
@@ -328,6 +296,7 @@
         try {
             this.intent = intent;
             startAnim();
+            Log.i("NFCWreatActivity", "isUser:" + isUser);
             if (isUser) {
                 checkHasUser();
             } else if (isRecharge) {
@@ -428,7 +397,7 @@
 
                             rechargeBean.setSerial(adminData.getSerial());
                             userCard.setRechargeDate(Calendar.getInstance());
-                            rechargeBean.setBalance(MornyUtil.changeF2Y(balance + MornyUtil.changeY2F(morny)) + "");
+                            rechargeBean.setBalance(MornyUtil.changeF2Y(balance));
                             rechargeBean.setInitPeasantCode(initPeasantCode);
                             rechargeBean.setOrderID(orderId);
                             try {
@@ -610,16 +579,13 @@
                 @Override
                 public void onSocketResponse(SocketData readData) {
                     if (CRC8.isCRC8(readData.getOriginDataBytes())) {
-
                         StringBuffer stateText = null;
-
                         try {
                             stateText = new StringBuffer();
                             String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]);  //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s
                             if (userCard == null) {
                                 userCard = new UserCard();
                                 userCard.setRechargeTimes(0);
-
                                 ElectricPriceBean electricPriceBean = baseDao.electricPriceDao().findFirst();
                                 if (electricPriceBean != null) {
                                     userCard.setElectricityPrice(electricPriceBean.getPrice());
@@ -647,8 +613,12 @@
                                 //琛ュ崱閫昏緫
                                 userFlag = WriteCardUtils.setUser(intent, userCard);
                                 if (userFlag) {
-                                    NFCWreatActivity.this.finish();
-                                    TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛");
+                                    TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛", new TipUtil.TipListener() {
+                                        @Override
+                                        public void onCancle() {
+                                            NFCWreatActivity.this.finish();
+                                        }
+                                    });
                                 }
                                 return;
                             } else if ("01".equals(state)) {
@@ -656,7 +626,6 @@
                                 userCard.setState("01");
                                 userCard.setBalance(balance);
                                 userFlag = WriteCardUtils.setUser(intent, userCard);
-
                                 startDetailActivity(name, stateText.toString());
 
                             } else if ("02".equals(state)) {
diff --git a/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java b/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
index 007a915..ddbc7c2 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
@@ -2,7 +2,6 @@
 
 import android.Manifest;
 import android.app.Dialog;
-import android.app.ProgressDialog;
 import android.content.Intent;
 import android.os.Bundle;
 import android.text.InputFilter;
@@ -12,6 +11,7 @@
 import android.view.View;
 
 import com.dayu.recharge.utils.DeviceNumberUtils;
+import com.dayu.recharge.view.ProgressDialog;
 import com.msd.ocr.idcard.LibraryInitOCR;
 import com.dayu.recharge.MyApplication;
 import com.dayu.recharge.card.UserCard;
@@ -100,7 +100,6 @@
                         TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭韩浠借瘉鍙�");
                         return;
                     } else {
-                        dialog = ProgressDialog.show(NewCardActivity.this, "", "姝e湪閫氫俊璇风◢鍚�", true, true);
                         userCardBean = new UserCardBean();
                         userCardBean.setUserName(userName);
                         userCardBean.setDate(date);
@@ -194,7 +193,7 @@
      * 寮�鍗℃姤鏂�
      */
     private void initCard() {
-
+        ProgressDialog.show(this);
         String initCode = DeviceNumberUtils.getDeviceNumber();
         if (TextUtils.isEmpty(initCode)) {
             TipUtil.show(this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃");
@@ -224,7 +223,7 @@
 
             @Override
             public void onSocketResponse(SocketData readData) {
-                dialog.dismiss();
+                ProgressDialog.dismiss();
                 if (CRC8.isCRC8(readData.getOriginDataBytes())) {
 
                     String state = BcdUtil.bcdToStr(readData.getBodyBytes()[26]); //BCD鐮�00鎴愬姛01韬唤璇佸凡娉ㄥ唽02鍏朵粬鍘熷洜澶辫触
@@ -272,7 +271,7 @@
 
             @Override
             public void onSocketError(int code, String msg) {
-                dialog.dismiss();
+                ProgressDialog.dismiss();
                 TipUtil.show(NewCardActivity.this, msg);
             }
         });
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 6c9fe1d..48f91a6 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
@@ -289,11 +289,12 @@
                         //濮撳悕
                         byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
                         String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
-                        setUserData(name, balance, stateText.toString());
+
                         String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]);  //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s
                         if ("00".equals(state)) {
                             userCard.setBalance(balance);
                             userCard.setState("00");
+
                             WriteCardUtils.setUser(intent, userCard);
                             stateText.append("鍚敤");
                         } else if ("01".equals(state)) {
@@ -309,7 +310,7 @@
                             stateText.append("鍏跺畠");
                         }
 
-
+                        setUserData(name, balance, stateText.toString());
                         stopAnim();
                     } catch (Exception e) {
                         e.printStackTrace();
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 a0b2a39..e1ed963 100644
--- a/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
@@ -23,6 +23,7 @@
 import com.dayu.recharge.utils.MornyUtil;
 import com.dayu.recharge.utils.SocketUtil;
 import com.dayu.recharge.utils.TipUtil;
+import com.dayu.recharge.view.ProgressDialog;
 import com.tencent.bugly.crashreport.CrashReport;
 
 import java.util.Arrays;
@@ -66,7 +67,7 @@
             this.intent = intent;
             userCard = NfcReadHelper.getInstence(intent).getUserCardData();
             if (userCard != null) {
-
+                ProgressDialog.show(this);
                 selectBalance(userCard.getInitPeasantCode());
             } else {
                 TipUtil.show(RechargeActivity.this, "鍗$墖璇诲彇澶辫触");
@@ -172,6 +173,7 @@
             SocketNet.getInstance().sendTestMessage(requestBean.pack(), new SocketCallBack() {
                 @Override
                 public void onSocketResponse(SocketData readData) {
+                    ProgressDialog.dismiss();
                     if (CRC8.isCRC8(readData.getOriginDataBytes())) {
                         StringBuffer stateText = null;
                         try {
@@ -187,9 +189,10 @@
                             userName = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
                             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());
@@ -198,11 +201,10 @@
                                 userCard.setBalance(balance);
                                 return;
                             } else if ("01".equals(state)) {
-                                stateText.append("绂佺敤");
+                                stateText.append("璇ュ崱宸茶绂佺敤");
                                 userCard.setState("01");
                                 userCard.setBalance(balance);
                                 userFlag = WriteCardUtils.setUser(intent, userCard);
-                                TipUtil.show("璇ュ崱宸茶绂佺敤");
                             } else if ("02".equals(state)) {
                                 stateText.append("闅跺睘淇℃伅涓嶇");
                             } else if ("03".equals(state)) {
@@ -210,6 +212,8 @@
                             } else if ("04".equals(state)) {
                                 stateText.append("鍏跺畠");
                             }
+                            binding.rechargeLL.setVisibility(View.GONE);
+                            binding.rechargeRegistBtn.setVisibility(View.GONE);
                             TipUtil.show(RechargeActivity.this, stateText.toString());
                         } catch (Exception e) {
                             e.printStackTrace();
@@ -222,6 +226,7 @@
 
                 @Override
                 public void onSocketError(int code, String msg) {
+                    ProgressDialog.dismiss();
                     TipUtil.show(RechargeActivity.this, msg);
                 }
             });
diff --git a/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java b/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java
index f0aa5d6..71f066c 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java
@@ -60,11 +60,13 @@
         binding.newCardListView.setAdapter(adapter);
     }
 
+    EdtDialog edtDialog;
+
     private void setRightButton() {
         titleBar.setOnItemclickListner(ClickType_RIGHT_TEXT, new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                EdtDialog edtDialog = new EdtDialog(ReplacementActivity.this, new EdtDialog.DialogBack() {
+                edtDialog = new EdtDialog(ReplacementActivity.this, new EdtDialog.DialogBack() {
                     @Override
                     public void onOk(String data) {
                         List<UserCardBean> beans = baseDao.userCardDao().findByData(data);
@@ -75,13 +77,15 @@
                         } else {
                             TipUtil.show("鏈壘鍒拌鐢ㄦ埛");
                         }
+                        edtDialog.dismiss();
                     }
 
                     @Override
                     public void onCancel() {
-
+                        edtDialog.dismiss();
                     }
                 });
+                edtDialog.show();
             }
         });
     }
diff --git a/app/src/main/java/com/dayu/recharge/adapter/RechargeAdapter.java b/app/src/main/java/com/dayu/recharge/adapter/RechargeAdapter.java
index 5678f2f..2fba322 100644
--- a/app/src/main/java/com/dayu/recharge/adapter/RechargeAdapter.java
+++ b/app/src/main/java/com/dayu/recharge/adapter/RechargeAdapter.java
@@ -62,7 +62,7 @@
             holder = (ViewHolder) convertView.getTag();
         }
         holder.userName.setText("鐢ㄦ埛鍚�:" + rechargeList.get(position).getUserName());
-        holder.userNo.setText("韬唤璇佸彿:" + rechargeList.get(position).getUserId());
+        holder.userNo.setText("鐢ㄦ埛缂栧彿:" + rechargeList.get(position).getInitPeasantCode());
         holder.morny.setText("鍏呭�奸噾棰�:" + rechargeList.get(position).getMorny());
         holder.date.setText("鏃ユ湡:" + DateUtil.dateToStamp(rechargeList.get(position).getDate(), DateUtil.type1));
         return convertView;
diff --git a/app/src/main/java/com/dayu/recharge/card/UserCard.java b/app/src/main/java/com/dayu/recharge/card/UserCard.java
index 5233456..df69beb 100644
--- a/app/src/main/java/com/dayu/recharge/card/UserCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/UserCard.java
@@ -56,89 +56,94 @@
      * @param data
      */
     public static UserCard getBean(List<byte[]> data) {
-        UserCard userCard = new UserCard();
-        if (data != null) {
-            byte[] zero = data.get(0);
-            byte[] one = data.get(1);
-            byte[] two = data.get(2);
-            userCard.cardType = HexUtil.byteToHex(zero[0]);
-            userCard.rechargeTimes = HexUtil.get16to10(HexUtil.byteToHex(zero[1]));
-            byte[] swipeNumberBytes = new byte[2];
-            swipeNumberBytes[0] = zero[2];
-            swipeNumberBytes[1] = zero[3];
-            String swipeNumberHex = HexUtil.bytesToHex(swipeNumberBytes);
-            userCard.swipeNumber = (short) HexUtil.get16to10(swipeNumberHex);
-            byte[] electricityPriceBytes = new byte[4];
-            for (int i = 0; i < 4; i++) {
-                electricityPriceBytes[i] = zero[i + 4];
-            }
-            userCard.electricityPrice = HexUtil.hexToFloat(HexUtil.bytesToHex(electricityPriceBytes));
-            userCard.state = BcdUtil.bcdToStr(zero[8]);
-            byte[] balanceBytes = new byte[4];
-            for (int i = 0; i < 4; i++) {
-                balanceBytes[i] = zero[i + 9];
-            }
-            userCard.balance = HexUtil.get16to10(HexUtil.bytesToHex(balanceBytes));
-
-            byte[] addressCodeBytes = new byte[6];
-            addressCodeBytes[0] = zero[13];
-            addressCodeBytes[1] = zero[14];
-            addressCodeBytes[2] = two[11];
-            addressCodeBytes[3] = two[12];
-            addressCodeBytes[4] = two[13];
-            addressCodeBytes[5] = two[14];
-            userCard.addressCode = BcdUtil.bcdToStr(addressCodeBytes);
-
-            int year = 0;
-            int month = 0;
-            int day = 0;
-            int hour = 0;
-            int minute = 0;
-            int second = 0;
-            for (int i = 0; i < 6; i++) {
-                byte byteData = one[i + 4];
-                switch (i) {
-                    case 0:
-                        year = getBcdToInt(byteData);
-                        break;
-                    case 1:
-                        month = getBcdToInt(byteData);
-                        break;
-                    case 2:
-                        day = getBcdToInt(byteData);
-                        break;
-                    case 3:
-                        hour = getBcdToInt(byteData);
-                        break;
-                    case 4:
-                        minute = getBcdToInt(byteData);
-                        break;
-                    case 5:
-                        second = getBcdToInt(byteData);
-                        break;
+        try {
+            UserCard userCard = new UserCard();
+            if (data != null) {
+                byte[] zero = data.get(0);
+                byte[] one = data.get(1);
+                byte[] two = data.get(2);
+                userCard.cardType = HexUtil.byteToHex(zero[0]);
+                userCard.rechargeTimes = HexUtil.get16to10(HexUtil.byteToHex(zero[1]));
+                byte[] swipeNumberBytes = new byte[2];
+                swipeNumberBytes[0] = zero[2];
+                swipeNumberBytes[1] = zero[3];
+                String swipeNumberHex = HexUtil.bytesToHex(swipeNumberBytes);
+                userCard.swipeNumber = (short) HexUtil.get16to10(swipeNumberHex);
+                byte[] electricityPriceBytes = new byte[4];
+                for (int i = 0; i < 4; i++) {
+                    electricityPriceBytes[i] = zero[i + 4];
                 }
+                userCard.electricityPrice = HexUtil.hexToFloat(HexUtil.bytesToHex(electricityPriceBytes));
+                userCard.state = BcdUtil.bcdToStr(zero[8]);
+                byte[] balanceBytes = new byte[4];
+                for (int i = 0; i < 4; i++) {
+                    balanceBytes[i] = zero[i + 9];
+                }
+                userCard.balance = HexUtil.get16to10LowHigh(HexUtil.bytesToHex(balanceBytes));
+
+                byte[] addressCodeBytes = new byte[6];
+                addressCodeBytes[0] = zero[13];
+                addressCodeBytes[1] = zero[14];
+                addressCodeBytes[2] = two[11];
+                addressCodeBytes[3] = two[12];
+                addressCodeBytes[4] = two[13];
+                addressCodeBytes[5] = two[14];
+                userCard.addressCode = BcdUtil.bcdToStr(addressCodeBytes);
+
+                int year = 0;
+                int month = 0;
+                int day = 0;
+                int hour = 0;
+                int minute = 0;
+                int second = 0;
+                for (int i = 0; i < 6; i++) {
+                    byte byteData = one[i + 4];
+                    switch (i) {
+                        case 0:
+                            year = getBcdToInt(byteData);
+                            break;
+                        case 1:
+                            month = getBcdToInt(byteData);
+                            break;
+                        case 2:
+                            day = getBcdToInt(byteData);
+                            break;
+                        case 3:
+                            hour = getBcdToInt(byteData);
+                            break;
+                        case 4:
+                            minute = getBcdToInt(byteData);
+                            break;
+                        case 5:
+                            second = getBcdToInt(byteData);
+                            break;
+                    }
+                }
+                Calendar calendar = Calendar.getInstance();
+                calendar.set(2000 + year, month, day, hour, minute, second);
+                byte[] initPeasantCodeBytes = new byte[16];
+                initPeasantCodeBytes[0] = one[10];
+                initPeasantCodeBytes[1] = one[11];
+                initPeasantCodeBytes[2] = one[12];
+                initPeasantCodeBytes[3] = one[13];
+                initPeasantCodeBytes[4] = one[14];
+                initPeasantCodeBytes[5] = two[0];
+                initPeasantCodeBytes[6] = two[1];
+                initPeasantCodeBytes[7] = two[2];
+                initPeasantCodeBytes[8] = two[3];
+                initPeasantCodeBytes[9] = two[4];
+                initPeasantCodeBytes[10] = two[5];
+                initPeasantCodeBytes[11] = two[6];
+                initPeasantCodeBytes[12] = two[7];
+                initPeasantCodeBytes[13] = two[8];
+                initPeasantCodeBytes[14] = two[9];
+                initPeasantCodeBytes[15] = two[10];
+                userCard.initPeasantCode = HexUtil.bytesToHex(initPeasantCodeBytes);
+                return userCard;
             }
-            Calendar calendar = Calendar.getInstance();
-            calendar.set(2000 + year, month, day, hour, minute, second);
-            byte[] initPeasantCodeBytes = new byte[16];
-            initPeasantCodeBytes[0] = one[10];
-            initPeasantCodeBytes[1] = one[11];
-            initPeasantCodeBytes[2] = one[12];
-            initPeasantCodeBytes[3] = one[13];
-            initPeasantCodeBytes[4] = one[14];
-            initPeasantCodeBytes[5] = two[0];
-            initPeasantCodeBytes[6] = two[1];
-            initPeasantCodeBytes[7] = two[2];
-            initPeasantCodeBytes[8] = two[3];
-            initPeasantCodeBytes[9] = two[4];
-            initPeasantCodeBytes[10] = two[5];
-            initPeasantCodeBytes[11] = two[6];
-            initPeasantCodeBytes[12] = two[7];
-            initPeasantCodeBytes[13] = two[8];
-            initPeasantCodeBytes[14] = two[9];
-            initPeasantCodeBytes[15] = two[10];
-            userCard.initPeasantCode = HexUtil.bytesToHex(initPeasantCodeBytes);
-            return userCard;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
         }
         return null;
     }
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 fe1e5cb..d8866a2 100644
--- a/app/src/main/java/com/dayu/recharge/net/SocketNet.java
+++ b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
@@ -4,6 +4,7 @@
 import android.os.Handler;
 import android.util.Log;
 
+import com.dayu.recharge.activity.HomeActivity;
 import com.dayu.recharge.dao.BaseDaoSingleton;
 import com.dayu.recharge.dbBean.AdminDataBean;
 import com.dayu.recharge.dbBean.DeviceNumber;
@@ -95,6 +96,7 @@
         public void onSocketConnSuccess(SocketAddress socketAddress) {
             Log.i("SocketActionListener", "杩炴帴鎴愬姛");
             MyApplication.myApplication.isConncet = true;
+            rushState();
             DeviceNumber initCode = BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().findFirst();
             if (initCode == null && !MyApplication.myApplication.isDoInitMachine) {
                 new Handler().postDelayed(new Runnable() {
@@ -112,12 +114,7 @@
 //            if (dataMessage != null) {
 //                EasySocket.getInstance().upMessage(dataMessage);
 //            }
-            if (isTest) {
-                MyApplication.myApplication.isConncet = true;
-//                EasySocket.getInstance().disconnect(false);
-            } else {
 
-            }
 
         }
 
@@ -129,6 +126,7 @@
         @Override
         public void onSocketConnFail(SocketAddress socketAddress, boolean isNeedReconnect) {
             MyApplication.myApplication.isConncet = false;
+            rushState();
             Log.i("SocketActionListener", "socket杩炴帴澶辫触");
             if (isTest) {
 //                ToastUtil.show(mContext, "杩炴帴澶辫触,璇锋鏌ョ綉缁�");
@@ -147,7 +145,8 @@
         @Override
         public void onSocketDisconnect(SocketAddress socketAddress, boolean isNeedReconnect) {
             Log.i("SocketActionListener", "---> socket鏂紑杩炴帴锛屾槸鍚﹂渶瑕侀噸杩烇細" + isNeedReconnect);
-
+            MyApplication.myApplication.isConncet = false;
+            rushState();
         }
 
         /**
@@ -176,4 +175,10 @@
         }
     };
 
+    private void rushState(){
+        if ( HomeActivity.homeActivity!=null){
+            HomeActivity.homeActivity.rushState();
+        }
+    }
+
 }
diff --git a/app/src/main/java/com/dayu/recharge/tools/BaseNFCHelper.java b/app/src/main/java/com/dayu/recharge/tools/BaseNFCHelper.java
index 77e1c11..806ebed 100644
--- a/app/src/main/java/com/dayu/recharge/tools/BaseNFCHelper.java
+++ b/app/src/main/java/com/dayu/recharge/tools/BaseNFCHelper.java
@@ -20,9 +20,18 @@
  */
 public class BaseNFCHelper {
     /**
-     * 榛樿瀵嗙爜
+     * 榛樿瀵嗙爜锛堢櫧鍗″瘑鐮侊級
      */
-    public byte[] bytes;
+    public byte[] defauleKey;
+
+    /**
+     * 鍏徃瀵嗙爜
+     */
+    public byte[] companyKey;
+
+    String companyKeyA;
+    String companyKeyB;
+
 
     public BaseNFCHelper() {
         // 瑙e瘑瀛楃涓�
@@ -33,7 +42,17 @@
             cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(encodedKey, "AES"));
             byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
             String decryptedText = new String(decryptedBytes, StandardCharsets.UTF_8);
-            bytes = HexUtil.hexToByteArray(decryptedText);
+            defauleKey = HexUtil.hexToByteArray(decryptedText);
+
+            byte[] encryptedBytes2 = Base64.decode("aYC9feYEOFOQHuzflLIXSw==", Base64.DEFAULT);
+            byte[] decryptedBytes2 = cipher.doFinal(encryptedBytes2);
+            companyKeyA = new String(decryptedBytes2, StandardCharsets.UTF_8);
+            companyKey = HexUtil.hexToByteArray(companyKeyA);
+
+            byte[] encryptedBytes3 = Base64.decode("n+SSZFb4DHsreVav/Z5ftg==", Base64.DEFAULT);
+            byte[] decryptedBytes3 = cipher.doFinal(encryptedBytes3);
+            companyKeyB = new String(decryptedBytes3, StandardCharsets.UTF_8);
+
         } catch (NoSuchAlgorithmException e) {
             throw new RuntimeException(e);
         } catch (NoSuchPaddingException e) {
diff --git a/app/src/main/java/com/dayu/recharge/tools/HexUtil.java b/app/src/main/java/com/dayu/recharge/tools/HexUtil.java
index f7bc735..9e86a6c 100644
--- a/app/src/main/java/com/dayu/recharge/tools/HexUtil.java
+++ b/app/src/main/java/com/dayu/recharge/tools/HexUtil.java
@@ -183,6 +183,24 @@
     }
 
     /**
+     * 16杩涘埗杞�10杩涘埗楂樹綆浣嶈浆鎹�
+     * @param hex
+     * @return
+     */
+    public static int get16to10LowHigh(String hex) {
+        try {
+            String str = "";
+            str = spaceHex(hex);
+            str = HighLowHex(str);
+            return Integer.parseInt(str, 16);
+        } catch (NumberFormatException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+
+    /**
      * 杩斿洖鐗瑰畾闀垮害鐨�16杩涘埗瀛楃涓�
      *
      * @param data
diff --git a/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java b/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java
index 856fc30..ee9b31a 100644
--- a/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java
+++ b/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java
@@ -5,6 +5,7 @@
 import android.nfc.Tag;
 import android.nfc.tech.MifareClassic;
 import android.util.Base64;
+import android.util.Log;
 
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
@@ -29,7 +30,7 @@
     private Tag tag;
 
     private static NFCWriteHelper helper;
-    private static int PASSWORD_LENTH = 6;
+    private static int PASSWORD_LENTH = 12;
 
     public NFCWriteHelper(Intent intent) {
         this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
@@ -58,7 +59,7 @@
     public NFCWriteHelper setReadPassword(String str) {
         if (null != str && (str.length() <= PASSWORD_LENTH)) {
             for (int i = 0; i < str.length(); i++) {
-                bytes[i] = (byte) str.charAt(i);
+                defauleKey[i] = (byte) str.charAt(i);
             }
         }
         return helper;
@@ -73,6 +74,9 @@
      * @param
      */
     public boolean writeData(byte[] str, int a, int b) {
+        Log.i("NFCWreatActivity", "writeData: a=" + a + " b=" + b);
+        //鍐欏崱鏃朵慨鏀规墍鏈夊瘑鐮�
+        changePasword(a);
         if (str.length <= 16) {
             try {
                 MifareClassic mfc = MifareClassic.get(tag);
@@ -93,7 +97,10 @@
                             return false;
                         }
                         //楠岃瘉鎵囧尯瀵嗙爜
-                        boolean isOpen = mfc.authenticateSectorWithKeyA(a, bytes);
+                        boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
+                        if (!isOpen) {
+                            isOpen = mfc.authenticateSectorWithKeyA(a, companyKey);
+                        }
                         if (isOpen) {
                             int bIndex = mfc.sectorToBlock(a);
                             //鍐欏崱
@@ -124,50 +131,45 @@
     /**
      * 淇敼瀵嗙爜
      *
-     * @param password 涔﹀啓瀵嗙爜锛�16涓瓧鑺�
      * @param a        涔﹀啓鐨勬墖鍖�
-     * @param callback 杩斿洖鐩戝惉
+     *                 //     * @param callback 杩斿洖鐩戝惉
      */
-    public void changePasword(String password, int a, final NFCWriteHelper.NFCCallback callback) {
+    public boolean changePasword(int a) {
         MifareClassic mfc = MifareClassic.get(tag);
         byte[] data = new byte[16];
         if (null != mfc) {
             try {
                 mfc.connect();
-                if (password.length() != PASSWORD_LENTH) {
-                    callback.isSusses(false);
-                    return;
-                }
+
                 int count = mfc.getSectorCount();
-                if (a > count - 1 || a < 0) {
-                    callback.isSusses(false);
-                    return;
-                }
-                //灏嗗瘑鐮佽浆鎹负keyA
-                for (int i = 0; i < password.length(); i++) {
-                    data[i] = (byte) password.charAt(i);
-                }
-                //灏嗗瘑鐮佽浆鎹负KeyB
-                for (int i = 0; i < password.length(); i++) {
-                    data[i + password.length() + 4] = (byte) password.charAt(i);
-                }
-                //杈撳叆鎺у埗浣�
-                data[password.length()] = (byte) 0xff;
-                data[password.length() + 1] = (byte) 0x07;
-                data[password.length() + 2] = (byte) 0x80;
-                data[password.length() + 3] = (byte) 0x69;
-                //楠岃瘉瀵嗙爜
-                boolean isOpen = mfc.authenticateSectorWithKeyA(a, bytes);
+                boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
+                //楠岃瘉鏄惁鏄粯璁ゅ瘑鐮侊紝褰撻粯璁ゅ瘑鐮佹椂淇敼瀵嗙爜
                 if (isOpen) {
+                    //灏嗗瘑鐮佽浆鎹负keyA
+                    byte[] dataA = HexUtil.hexToByteArray(companyKeyA);
+                    for (int i = 0; i < dataA.length; i++) {
+                        data[i] = dataA[i];
+                    }
+                    //杈撳叆鎺у埗浣�
+                    data[6] = (byte) 0xff;
+                    data[7] = (byte) 0x07;
+                    data[8] = (byte) 0x80;
+                    data[9] = (byte) 0x69;
+                    byte[] dataB = HexUtil.hexToByteArray(companyKeyB);
+                    //灏嗗瘑鐮佽浆鎹负KeyB
+                    for (int i = 0; i < dataB.length; i++) {
+                        data[i + 10] = dataB[i];
+                    }
                     int bIndex = mfc.sectorToBlock(a);
                     int bCount = mfc.getBlockCountInSector(a);
                     //鍐欏埌鎵囧尯鐨勬渶鍚庝竴涓潡
                     mfc.writeBlock(bIndex + bCount - 1, data);
                 }
-                callback.isSusses(true);
+                return true;
             } catch (Exception e) {
                 e.printStackTrace();
-                callback.isSusses(false);
+                return false;
+//                callback.isSusses(false);
             } finally {
                 try {
                     mfc.close();
@@ -176,6 +178,7 @@
                 }
             }
         }
+        return false;
     }
 
     /**
diff --git a/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java b/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java
index 428cfd8..34cd956 100644
--- a/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java
+++ b/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java
@@ -4,6 +4,7 @@
 import android.nfc.NfcAdapter;
 import android.nfc.Tag;
 import android.nfc.tech.MifareClassic;
+import android.util.Log;
 
 import com.dayu.recharge.card.UserCard;
 import com.dayu.recharge.utils.MyCommon;
@@ -46,7 +47,11 @@
         return helper;
     }
 
-
+    /**
+     * 鑾峰彇鐢ㄦ埛鍗′俊鎭�
+     *
+     * @return
+     */
     public UserCard getUserCardData() {
         UserCard userCard = null;
         Map<String, List<byte[]>> map = new HashMap<>();
@@ -63,7 +68,10 @@
                 boolean flag = false;
                 List<byte[]> list = new ArrayList<>();
                 //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
-                boolean isOpen = mfc.authenticateSectorWithKeyA(1, bytes);
+                boolean isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
+                if (!isOpen){
+                    isOpen=   mfc.authenticateSectorWithKeyA(1, companyKey);
+                }
                 if (isOpen) {
                     //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
                     int bCount = mfc.getBlockCountInSector(1);
@@ -103,6 +111,41 @@
         return null;
     }
 
+    public String getCradType() {
+
+        MifareClassic mfc = MifareClassic.get(tag);
+        if (null != mfc) {
+            try {
+                mfc.connect();
+                boolean isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
+                if (!isOpen){
+                    isOpen= mfc.authenticateSectorWithKeyA(1, companyKey);
+                }
+                if (isOpen) {
+                    int bIndex = mfc.sectorToBlock(1);
+                    byte[] data = mfc.readBlock(bIndex + 0);
+                    if (data != null && data.length > 0) {
+                        String hex = HexUtil.byteToHex(data[0]);
+                        Log.i("NFCWreatActivity", "hex===" + hex);
+                        return hex;
+                    }
+
+                } else {
+                    Log.i("NFCWreatActivity", "isOpen===" + isOpen);
+                    return "-1";
+                }
+            } catch (IOException e) {
+                return "-1";
+            } finally {
+                try {
+                    mfc.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return "";
+    }
 
     /**
      * 璇诲彇NFC鍗$殑鍏ㄩ儴淇℃伅
@@ -128,7 +171,10 @@
                         for (int i = 0; i < count; i++) {
                             List<byte[]> list = new ArrayList<>();
                             //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
-                            boolean isOpen = mfc.authenticateSectorWithKeyA(i, bytes);
+                            boolean isOpen = mfc.authenticateSectorWithKeyA(i, defauleKey);
+                            if (!isOpen){
+                                isOpen = mfc.authenticateSectorWithKeyA(i, companyKey);
+                            }
                             if (isOpen) {
                                 //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
                                 int bCount = mfc.getBlockCountInSector(i);
@@ -216,7 +262,10 @@
                                 typeS = "TYPE_UNKNOWN";
                                 break;
                         }
-                        boolean isOpen = mfc.authenticateSectorWithKeyA(a, bytes);
+                        boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
+                        if (!isOpen){
+                            isOpen = mfc.authenticateSectorWithKeyA(a, companyKey);
+                        }
                         if (isOpen) {
                             int bIndex = mfc.sectorToBlock(a);
                             byte[] data = mfc.readBlock(bIndex + b);
diff --git a/app/src/main/java/com/dayu/recharge/utils/TipUtil.java b/app/src/main/java/com/dayu/recharge/utils/TipUtil.java
index 50b80af..b5daea7 100644
--- a/app/src/main/java/com/dayu/recharge/utils/TipUtil.java
+++ b/app/src/main/java/com/dayu/recharge/utils/TipUtil.java
@@ -1,7 +1,11 @@
 package com.dayu.recharge.utils;
 
+import android.app.Activity;
 import android.content.Context;
+import android.os.Build;
+import android.widget.Toast;
 
+import com.dayu.recharge.MyApplication;
 import com.dayu.recharge.activity.HomeActivity;
 import com.dayu.recharge.view.TipDialog;
 
@@ -10,24 +14,33 @@
         public void onCancle();
     }
 
-    public static void show(Context context, String data) {
+    public static void show(Activity mActivity, String data) {
 //        Toast.makeText(context, data, Toast.LENGTH_LONG).show();
-        TipDialog tipDialog = new TipDialog(context, data);
-        tipDialog.show();
+        try {
+            if (!isDestroy(mActivity)) {
+                TipDialog tipDialog = new TipDialog(mActivity, data);
+                tipDialog.show();
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
 
     }
 
-    public static void show(Context context, String data, TipListener tipListener) {
+    public static void show(Activity mActivity, String data, TipListener tipListener) {
 //        Toast.makeText(context, data, Toast.LENGTH_LONG).show();
-        TipDialog tipDialog = new TipDialog(context, data, tipListener);
-        tipDialog.show();
+        if (!isDestroy(mActivity)) {
+            TipDialog tipDialog = new TipDialog(mActivity, data, tipListener);
+            tipDialog.show();
+        }
 
     }
 
     public static void show(String data) {
-//        Toast.makeText(, data, Toast.LENGTH_LONG).show();
-        TipDialog tipDialog = new TipDialog(HomeActivity.homeActivity, data);
-        tipDialog.show();
+        Toast.makeText(MyApplication.myApplication, data, Toast.LENGTH_LONG).show();
+//        TipDialog tipDialog = new TipDialog(HomeActivity.homeActivity, data);
+//        tipDialog.show();
     }
 
     public static void show(String data, TipListener tipListener) {
@@ -35,4 +48,21 @@
         TipDialog tipDialog = new TipDialog(HomeActivity.homeActivity, data, tipListener);
         tipDialog.show();
     }
+
+    /**
+     * 鍒ゆ柇Activity鏄惁Destroy
+     *
+     * @param mActivity
+     * @return true:宸查攢姣�
+     */
+    public static boolean isDestroy(Activity mActivity) {
+        if (mActivity == null ||
+                mActivity.isFinishing() ||
+                (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && mActivity.isDestroyed())) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
 }
diff --git a/app/src/main/java/com/dayu/recharge/view/EdtDialog.java b/app/src/main/java/com/dayu/recharge/view/EdtDialog.java
index 544ba21..d1f040b 100644
--- a/app/src/main/java/com/dayu/recharge/view/EdtDialog.java
+++ b/app/src/main/java/com/dayu/recharge/view/EdtDialog.java
@@ -52,7 +52,7 @@
             public void onClick(View v) {
                 if (intent!=null){
                     if (TextUtils.isEmpty(editText.getText().toString())) {
-                        TipUtil.show(mContext, "璇疯緭鍏ュ簭鍒楀彿");
+//                        TipUtil.show(mContext, "璇疯緭鍏ュ簭鍒楀彿");
                     } else {
                         if (Integer.valueOf(editText.getText().toString()) <= 16777215) {
 //                        EquipmentNumber equipmentNumber = (EquipmentNumber) intent.getSerializableExtra("equipmentNumber");
@@ -60,7 +60,7 @@
                             mContext.startActivity(intent);
                             EdtDialog.this.dismiss();
                         } else {
-                            TipUtil.show(mContext, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
+//                            TipUtil.show(mContext, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
                         }
 
                     }
diff --git a/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java b/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java
index 634ec23..cb564b2 100644
--- a/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java
+++ b/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java
@@ -1,5 +1,6 @@
 package com.dayu.recharge.view;
 
+import android.app.Activity;
 import android.app.Dialog;
 import android.content.Context;
 import android.content.Intent;
@@ -22,9 +23,9 @@
 public class PassWordDialog extends Dialog {
 
     Intent intent;
-    Context mContext;
+    Activity mContext;
 
-    public PassWordDialog(Context context, Intent intent) {
+    public PassWordDialog(Activity context, Intent intent) {
         super(context, R.style.ws_pay_showSelfDialog);
         this.intent = intent;
         mContext = context;
diff --git a/app/src/main/java/com/dayu/recharge/view/ProgressDialog.java b/app/src/main/java/com/dayu/recharge/view/ProgressDialog.java
new file mode 100644
index 0000000..70e6aac
--- /dev/null
+++ b/app/src/main/java/com/dayu/recharge/view/ProgressDialog.java
@@ -0,0 +1,29 @@
+package com.dayu.recharge.view;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.content.Context;
+
+import com.dayu.recharge.activity.NewCardActivity;
+
+/**
+ * Created by Android Studio.
+ * author: zuo
+ * Date: 2023-11-22
+ * Time: 13:33
+ * 澶囨敞锛�
+ */
+public class ProgressDialog {
+    static Dialog dialog;
+
+    public static void show(Activity activity) {
+        dialog = android.app.ProgressDialog.show(activity, "", "姝e湪閫氫俊璇风◢鍚�", true, true);
+    }
+
+    public static void dismiss() {
+        if (dialog != null) {
+            dialog.dismiss();
+            dialog = null;
+        }
+    }
+}
diff --git a/app/src/main/res/drawable/ws_login_red_btn_one.xml b/app/src/main/res/drawable/ws_login_red_btn_one.xml
index 7aab627..cb8392e 100644
--- a/app/src/main/res/drawable/ws_login_red_btn_one.xml
+++ b/app/src/main/res/drawable/ws_login_red_btn_one.xml
@@ -21,7 +21,7 @@
             <!-- 杈圭紭绾跨殑瀹藉害鍜岄鑹� -->
             <stroke
                 android:width="2px"
-                android:color="#b33618" />
+                android:color="@color/title_bg" />
 
             -->
             <!-- 涓棿娓愬彉锛岃搴�0浠庡乏寰�鍙筹紝姝e�间负閫嗘椂閽堬紝270搴︿负浠庝笂鍒颁笅 -->
diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml
index 4eeafd8..a9e2199 100644
--- a/app/src/main/res/layout/activity_home.xml
+++ b/app/src/main/res/layout/activity_home.xml
@@ -82,4 +82,17 @@
             android:textSize="@dimen/home_text_size" />
     </LinearLayout>
 
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:gravity="bottom|center_horizontal">
+
+        <TextView
+            android:id="@+id/socketState"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="20dp"
+            android:text="宸茶繛鎺ユ暟鎹腑蹇�" />
+    </LinearLayout>
+
 </LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/edt_dialog.xml b/app/src/main/res/layout/edt_dialog.xml
index 4676039..a33d371 100644
--- a/app/src/main/res/layout/edt_dialog.xml
+++ b/app/src/main/res/layout/edt_dialog.xml
@@ -21,8 +21,6 @@
             android:layout_height="wrap_content"
             android:layout_marginTop="20dp"
             android:hint="璇疯緭鍏ヤ俊鎭�"
-            android:inputType="number"
-            android:maxLength="8"
             android:textColor="#000000" />
 
 
diff --git a/app/src/main/res/layout/item_recharge.xml b/app/src/main/res/layout/item_recharge.xml
index b628620..06bab4b 100644
--- a/app/src/main/res/layout/item_recharge.xml
+++ b/app/src/main/res/layout/item_recharge.xml
@@ -25,7 +25,7 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_weight="1"
-            android:text="韬唤璇佸彿"
+            android:text="鐢ㄦ埛缂栧彿"
             android:textSize="14sp" />
 
         <TextView
diff --git a/app/src/main/res/layout/text_dialog.xml b/app/src/main/res/layout/text_dialog.xml
index bece331..e7d8389 100644
--- a/app/src/main/res/layout/text_dialog.xml
+++ b/app/src/main/res/layout/text_dialog.xml
@@ -41,6 +41,7 @@
                 android:paddingTop="5dp"
                 android:paddingRight="15dp"
                 android:paddingBottom="5dp"
+                android:textColor="#000000"
                 android:text="纭"
                 android:textSize="@dimen/text_size" />
 

--
Gitblit v1.8.0