From d58bc0e2057f58342f490f5605eda3b80dc0ca29 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期三, 27 三月 2024 11:47:21 +0800 Subject: [PATCH] 添加中安身份证识别相关功能 优化贴卡提示 优化二次确认的按钮样式 添加超时时不在主线程的处理 --- app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java | 155 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 110 insertions(+), 45 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 7c5a5f4..096e8f7 100644 --- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java @@ -1,10 +1,13 @@ package com.dayu.recharge.activity; +import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; 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; @@ -40,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; @@ -52,7 +58,7 @@ * Description: nfc鍐欏崱鐣岄潰 */ public class NFCWreatActivity extends BaseNfcActivity { - + public static String TAG = "NFCWreatActivity"; boolean cleanFlag = false; boolean userFlag = false; @@ -69,8 +75,12 @@ boolean configPowerFlag = false; + /** + * 鏄惁涓嶅啀楠岃瘉鐢ㄦ埛鐩存帴鍐欏崱 + */ + boolean isAgainWrite = false; + UserCardBean userCardBean; - UserCard olduserCard; String morny; String userName; @@ -103,6 +113,7 @@ //鍏呭�奸�氫俊鏄惁瀹屾垚 boolean rechargeIsOk = false; ActivityWriteTextBinding binding; + ConfirmDialog confirmDialog; @Override protected void onCreate(Bundle savedInstanceState) { @@ -111,6 +122,7 @@ binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this)); setContentView(binding.getRoot()); nfcWreatActivity = this; + setData(); getData(); baseApp = (MyApplication) getApplication(); } catch (Exception e) { @@ -120,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")) { @@ -168,7 +229,7 @@ userName = this.getIntent().getStringExtra("userName"); binding.cardData.setText("鍏呭�奸噾棰濓細" + morny + "鍏�"); // 鍏呭�奸�昏緫 - recharge(userCard.getInitPeasantCode(), userName, "鍚敤"); + recharge(userCard.getInitPeasantCode(), userName); } try { @@ -198,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(); @@ -216,7 +279,6 @@ || configureDeviceRegistrationCrad != null || configurationPowerCard != null) { if (userCard != null && TextUtils.isEmpty(morny)) { - userFlag = WriteCardUtils.setUser(intent, userCard, this); } if (cleanCard != null) { @@ -249,9 +311,9 @@ //鐢ㄦ埛鍗� startDetailActivity(userCardBean.getUserName(), "鍚敤"); } else if (!TextUtils.isEmpty(morny)) { - TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", () -> NFCWreatActivity.this.finish()); + TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", NFCWreatActivity.this::finish); } else { - TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", () -> NFCWreatActivity.this.finish()); + TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", NFCWreatActivity.this::finish); } } catch (Exception e) { @@ -311,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("*****************************"); } @@ -333,6 +395,7 @@ } void startAnim() { + binding.avi.setVisibility(View.VISIBLE); binding.avi.show(); // or avi.smoothToShow(); } @@ -344,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"); @@ -356,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) { @@ -374,7 +437,7 @@ //00鍚敤01绂佺敤02闅跺睘淇℃伅涓嶇03鏃犳鍗′俊鎭�04鍏跺畠 if ("00".equalsIgnoreCase(state)) { rechargeIsOk = true; - binding.cardData.setText("鍏呭�奸�氫俊瀹屾垚锛岃甯栧崱鍏呭��"); + binding.cardData.setText("鍏呭��"+morny+"鍏冮�氫俊瀹屾垚锛岃甯栧崱鍐欏崱"); rechargeBean = new RechargeBean(); rechargeBean.setDate(System.currentTimeMillis()); rechargeBean.setMorny(morny); @@ -382,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); @@ -416,8 +480,11 @@ @Override public void onSocketError(int code, String msg) { - stopAnim(); - TipUtil.show(NFCWreatActivity.this, msg); + runOnUiThread(() -> { + stopAnim(); + TipUtil.show(NFCWreatActivity.this, msg); + }); + } }); } catch (Exception e) { @@ -432,7 +499,7 @@ 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, this); // 鎵撳嵃鐩稿叧 @@ -440,18 +507,18 @@ 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, this).writeData(manageCard.toZeroByte(), 1, 0); + manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toZeroByte(baseDao), 1, 0); } /** @@ -461,7 +528,7 @@ * @param clearOrInitCard */ private void setClean(Intent intent, final CleanCard clearOrInitCard) { - cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(), 1, 0); + cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(baseDao), 1, 0); } @@ -472,7 +539,7 @@ * @param registeredCard */ private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) { - registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(), 1, 0); + registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(baseDao), 1, 0); } /** @@ -482,7 +549,7 @@ * @param cleanUserCard */ private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) { - cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(), 1, 0); + cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(baseDao), 1, 0); } /** @@ -509,17 +576,17 @@ } private void setTestCard(Intent intent, TestCard testCard) { - testCardFlag = NFCWriteHelper.getInstence(intent, this).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, this).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, this).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); @@ -536,13 +603,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(); } /** @@ -551,8 +612,9 @@ * @param initPeasantCode 鍐滄埛娉ㄥ唽缂栧彿 */ private void selectBalance(String initPeasantCode) { - + Log.i(TAG, "琛ュ崱鏌ヨ浣欓:鍐滄埛娉ㄥ唽缂栧彿 " + initPeasantCode); try { + startAnim(); BalanceSelecteRequestBean requestBean = new BalanceSelecteRequestBean(); requestBean.setAFN("94"); requestBean.setControl("01"); @@ -560,7 +622,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())) { @@ -598,12 +660,7 @@ //琛ュ崱閫昏緫 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)) { @@ -631,23 +688,31 @@ //鏍¢獙CRC閿欒 TipUtil.show(NFCWreatActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒"); } + stopAnim(); + } @Override public void onSocketError(int code, String msg) { - stopAnim(); - TipUtil.show(NFCWreatActivity.this, msg); + runOnUiThread(() -> { + stopAnim(); + TipUtil.show(NFCWreatActivity.this, msg); + }); + } }); } 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