From b5b0bd260898f816f171aec59f20098fe67eaffe Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 27 三月 2024 15:46:46 +0800
Subject: [PATCH] IP设置界面调整
---
app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java | 540 ++++++++++++++++++++++++++---------------------------------
1 files changed, 241 insertions(+), 299 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 5355d4f..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,14 +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;
@@ -21,7 +23,6 @@
import com.dayu.recharge.card.UserCard;
import com.dayu.recharge.databinding.ActivityWriteTextBinding;
import com.dayu.recharge.dbBean.AdminDataBean;
-import com.dayu.recharge.dbBean.DeviceNumber;
import com.dayu.recharge.dbBean.ElectricPriceBean;
import com.dayu.recharge.dbBean.RechargeBean;
import com.dayu.recharge.dbBean.UserCardBean;
@@ -31,23 +32,24 @@
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;
import com.dayu.recharge.utils.AidlUtil;
import com.dayu.recharge.utils.CRC8;
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.ToastUtil;
-import com.dayu.recharge.utils.WSHelper;
+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;
import java.util.Calendar;
-import java.util.List;
-import java.util.Map;
/**
* Copyright (C), 2023,
@@ -56,22 +58,7 @@
* Description: nfc鍐欏崱鐣岄潰
*/
public class NFCWreatActivity extends BaseNfcActivity {
-
-
- /**
- * 璇ュ崱宸插啓鍏ョ敤鎴蜂俊鎭�
- */
- public final static int HAS_USER = 1;
- /**
- * 璇ュ崱鏈啓鍏ョ敤鎴蜂俊鎭�
- */
- public final static int NO_USER = 2;
- /**
- * 鍏呭��
- */
- public final static int RECHARGE = 3;
-
- public final static int ERROR = -1;
+ public static String TAG = "NFCWreatActivity";
boolean cleanFlag = false;
boolean userFlag = false;
@@ -88,10 +75,15 @@
boolean configPowerFlag = false;
+ /**
+ * 鏄惁涓嶅啀楠岃瘉鐢ㄦ埛鐩存帴鍐欏崱
+ */
+ boolean isAgainWrite = false;
+
UserCardBean userCardBean;
-
String morny;
+ String userName;
AdminDataBean adminData;
RechargeBean rechargeBean;
Intent intent;
@@ -99,7 +91,6 @@
RegisteredCard registeredCard;
CleanUserCard cleanUserCard;
- volatile UserCard userCard;
ManageCard manageCard;
DomainCard domainCard;
@@ -116,7 +107,13 @@
* 鏄惁鏄敤鎴峰崱锛屽亣濡傛槸鐢ㄦ埛鍗$殑璇濋渶瑕佹娴嬪崱鐗囨槸鍚﹀凡缁忓紑杩囨埛锛屽亣濡傚凡寮�鎴峰垯鎶ラ敊涓嶈兘鍐嶅啓鍗�
*/
boolean isUser = false;//
+
+ //鏄惁鏄厖鍊艰繃绋�
+ boolean isRecharge = false;
+ //鍏呭�奸�氫俊鏄惁瀹屾垚
+ boolean rechargeIsOk = false;
ActivityWriteTextBinding binding;
+ ConfirmDialog confirmDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -124,8 +121,8 @@
try {
binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this));
setContentView(binding.getRoot());
-
nfcWreatActivity = this;
+ setData();
getData();
baseApp = (MyApplication) getApplication();
} catch (Exception e) {
@@ -135,11 +132,59 @@
}
+ 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")) {
userCard = (UserCard) this.getIntent().getSerializableExtra("userCard");
- isUser = true;
}
if (this.getIntent().hasExtra("cleanCard")) {
cleanCard = (CleanCard) this.getIntent().getSerializableExtra("cleanCard");
@@ -155,6 +200,7 @@
}
if (this.getIntent().hasExtra("dbUserCard")) {
userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("dbUserCard");
+ isUser = true;
}
if (this.getIntent().hasExtra("cleanUserCard")) {
cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard");
@@ -177,8 +223,13 @@
binding.cardData.setText("鍒朵綔閰嶇疆姘存车鍔熺巼鍗�");
}
if (this.getIntent().hasExtra("morny")) {
+ startAnim();
+ isRecharge = true;
morny = this.getIntent().getStringExtra("morny");
+ userName = this.getIntent().getStringExtra("userName");
binding.cardData.setText("鍏呭�奸噾棰濓細" + morny + "鍏�");
+ // 鍏呭�奸�昏緫
+ recharge(userCard.getInitPeasantCode(), userName);
}
try {
@@ -197,37 +248,25 @@
* 妫�娴嬫槸鍚︽槸鐢ㄦ埛鍗★紝鍋囧鏄敤鎴峰崱鐨勮瘽闇�瑕佹娴嬪崱鐗囨槸鍚﹀凡缁忓紑杩囨埛锛屽亣濡傚凡寮�鎴峰垯鎶ラ敊涓嶈兘鍐嶅啓鍗″亣濡傛槸鐢ㄦ埛鍗¢渶瑕�
*/
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, this).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 if (cardType.equals("-2")) {
+ TipUtil.show(NFCWreatActivity.this, "璇诲崱澶辫触,璇锋鏌ュ崱鏄惁鏄敤鎴峰崱");
+ } else {
+ Log.i("NFCWreatActivity", "olduserCard!=null saveData");
+ saveData();
}
+
+ stopAnim();
}
@@ -239,8 +278,8 @@
|| domainCard != null || testCard != null
|| configureDeviceRegistrationCrad != null
|| configurationPowerCard != null) {
- if (userCard != null) {
- setUser(intent, userCard);
+ if (userCard != null && TextUtils.isEmpty(morny)) {
+ userFlag = WriteCardUtils.setUser(intent, userCard, this);
}
if (cleanCard != null) {
setClean(intent, cleanCard);
@@ -269,19 +308,12 @@
if ((configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag)) {
try {
if (userFlag && userCardBean != null) {
-
- ToastUtil.show(this, "娉ㄥ唽鎴愬姛");
- NFCWreatActivity.this.finish();
- if (NewCardActivity.newCardActivity != null) {
- NewCardActivity.newCardActivity.finish();
- }
-
+ //鐢ㄦ埛鍗�
+ startDetailActivity(userCardBean.getUserName(), "鍚敤");
} else if (!TextUtils.isEmpty(morny)) {
- NFCWreatActivity.this.finish();
- ToastUtil.show(this, "鍏呭�兼垚鍔�");
+ TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", NFCWreatActivity.this::finish);
} else {
- NFCWreatActivity.this.finish();
- ToastUtil.show(this, "鍐欏崱鎴愬姛");
+ TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", NFCWreatActivity.this::finish);
}
} catch (Exception e) {
@@ -289,17 +321,15 @@
CrashReport.postCatchedException(e);
}
} else {
- ToastUtil.show(this, "鍐欏崱澶辫触");
+ TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触");
}
stopAnim();
- } else if (!TextUtils.isEmpty(morny)) {
- readAllData(intent);
} else if (userCard == null && userCardBean != null) {
//琛ュ崱閫昏緫
selectBalance(userCardBean.getInitPeasantCode());
} else {
stopAnim();
- ToastUtil.show(this, "鍙傛暟閿欒");
+ TipUtil.show(this, "鍙傛暟閿欒");
}
} catch (Exception e) {
e.printStackTrace();
@@ -309,11 +339,20 @@
@Override
public void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
try {
this.intent = intent;
startAnim();
+ Log.i("NFCWreatActivity", "isUser:" + isUser);
if (isUser) {
checkHasUser();
+ } else if (isRecharge) {
+ if (rechargeIsOk) {
+ rechargeWrratCard();
+ } else {
+ Toast.makeText(this, "姝e湪閫氫俊璇风◢鍚�", Toast.LENGTH_SHORT).show();
+ }
+
} else {
saveData();
}
@@ -322,65 +361,6 @@
CrashReport.postCatchedException(e);
}
}
-
-
- /**
- * 璇诲彇鍏ㄩ儴鏁版嵁
- */
- private void readAllData(Intent intent) {
- try {
- NfcReadHelper.getInstence(intent)
- .getAllData(new NfcReadHelper.NFCCallListback() {
- @Override
- public void callBack(Map<String, List<byte[]>> data) {
- Message message = new Message();
-// 鑾峰彇1鎵囧尯鏁版嵁
- List<byte[]> oneSector = data.get("1");
- if (oneSector != null && oneSector.size() > 0) {
- userCard = UserCard.getBean(oneSector);
- message.what = RECHARGE;
- } else {
- message.what = ERROR;
- }
- handler.sendMessage(message);
- }
-
- @Override
- public void error(int code) {
- Message message = new Message();
- message.what = ERROR;
- handler.sendMessage(message);
- }
- });
- } catch (Exception e) {
- e.printStackTrace();
- CrashReport.postCatchedException(e);
- }
- }
-
- Handler handler = new Handler(new Handler.Callback() {
- @Override
- public boolean handleMessage(Message msg) {
- switch (msg.what) {
-
- case HAS_USER://鍒ゆ柇宸插啓鍏ョ敤鎴�
- ToastUtil.show(NFCWreatActivity.this, "璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖");
- break;
- case NO_USER://娌℃湁鍐欒繃鐢ㄦ埛缁х画淇濆瓨
- saveData();
- break;
- case RECHARGE://鍏呭�兼祦绋�
- selectBalance(userCard.getInitPeasantCode());
- break;
- default:
- stopAnim();
- ToastUtil.show(NFCWreatActivity.this, "鍗$墖璇诲彇澶辫触");
- break;
-
- }
- return false;
- }
- });
/**
@@ -393,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("*****************************");
}
@@ -415,6 +395,7 @@
}
void startAnim() {
+ binding.avi.setVisibility(View.VISIBLE);
binding.avi.show();
// or avi.smoothToShow();
}
@@ -426,7 +407,7 @@
//鍏呭�间笂浼狅紙Socket锛�
- private void recharge(String initPeasantCode) {
+ private void recharge(String initPeasantCode, String name) {
try {
RechargeRequestBean rechargeRequestBean = new RechargeRequestBean();
rechargeRequestBean.setControl("01");
@@ -436,46 +417,62 @@
rechargeRequestBean.setAFN("95");
rechargeRequestBean.setInitPeasantCode(initPeasantCode);
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) {
+ //閲戦
+ byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
+ int balance = SocketUtil.get16to10LowHigh(blanceByte);
+ //濮撳悕
+ byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
+ userName = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
+ byte[] orderByte = Arrays.copyOfRange(readData.getBodyBytes(), 19, 27);
+ String orderId = BcdUtil.bcdToStr(orderByte);
if (CRC8.isCRC8(readData.getOriginDataBytes())) {
String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]);
//00鍚敤01绂佺敤02闅跺睘淇℃伅涓嶇03鏃犳鍗′俊鎭�04鍏跺畠
if ("00".equalsIgnoreCase(state)) {
+ rechargeIsOk = true;
+ binding.cardData.setText("鍏呭��"+morny+"鍏冮�氫俊瀹屾垚锛岃甯栧崱鍐欏崱");
+ rechargeBean = new RechargeBean();
+ rechargeBean.setDate(System.currentTimeMillis());
+ rechargeBean.setMorny(morny);
+ rechargeBean.setUserName(name);
+
+ rechargeBean.setSerial(adminData.getSerial());
+ userCard.setRechargeDate(Calendar.getInstance());
+ userCard.setBalance(balance);
+ rechargeBean.setBalance(MornyUtil.changeF2Y(balance));
+ rechargeBean.setInitPeasantCode(initPeasantCode);
+ rechargeBean.setOrderID(orderId);
try {
baseDao.rechargeDao().insert(rechargeBean);
} catch (Exception e) {
e.printStackTrace();
}
userCard.setRechargeTimes(userCard.getRechargeTimes() + 1);
- setUser(intent, userCard);
- // 鎵撳嵃鐩稿叧
- setPrinterData(rechargeBean);
- ToastUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛");
- RechargeActivity.rechargeActivity.finish();
- NFCWreatActivity.nfcWreatActivity.finish();
} else if ("01".equalsIgnoreCase(state)) {
+ userCard.setState("01");
+ userFlag = WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this);
NFCWreatActivity.this.finish();
- ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-绂佺敤");
+ TipUtil.show("鍏呭�兼姤鏂囬敊璇�-绂佺敤");
} else if ("02".equalsIgnoreCase(state)) {
- ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-闅跺睘淇℃伅涓嶇");
+ TipUtil.show("鍏呭�兼姤鏂囬敊璇�-闅跺睘淇℃伅涓嶇");
NFCWreatActivity.this.finish();
} else if ("03".equalsIgnoreCase(state)) {
- ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-鏃犳鍗′俊鎭�");
+ TipUtil.show("鍏呭�兼姤鏂囬敊璇�-鏃犳鍗′俊鎭�");
NFCWreatActivity.this.finish();
} else {
- ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-鍏跺畠");
+ TipUtil.show("鍏呭�兼姤鏂囬敊璇�-鍏跺畠");
NFCWreatActivity.this.finish();
}
-
-
} else {
//鏍¢獙CRC閿欒
- ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇牎楠孋RC閿欒");
+ TipUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇牎楠孋RC閿欒");
NFCWreatActivity.this.finish();
}
stopAnim();
@@ -483,8 +480,11 @@
@Override
public void onSocketError(int code, String msg) {
- stopAnim();
- ToastUtil.show(NFCWreatActivity.this, msg);
+ runOnUiThread(() -> {
+ stopAnim();
+ TipUtil.show(NFCWreatActivity.this, msg);
+ });
+
}
});
} catch (Exception e) {
@@ -494,13 +494,31 @@
}
- private void setmanageCard(Intent intent, final ManageCard manageCard) {
- NFCWriteHelper.getInstence(intent).writeData(manageCard.toZeroByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- manageCardFlag = flag;
+ //寰�鍗″唴鍐欏厖鍊煎悗鐨勬暟鎹�
+ private void rechargeWrratCard() {
+ UserCard userCardold = NfcReadHelper.getInstence(intent, this).getUserCardData();
+ if (userCardold != null) {
+ //鍒ゆ柇鏄惁鍏呭�肩殑鏄竴涓崱
+ if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode()) || isAgainWrite) {
+ userCard.setState("00");
+ userFlag = WriteCardUtils.setUser(intent, userCard, this);
+ // 鎵撳嵃鐩稿叧
+ if (userFlag) {
+ setPrinterData(rechargeBean);
+ startDetailActivity(userName, "鍚敤");
+ } else {
+ isAgainWrite = true;
+ TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶆柊璐村崱");
+ }
+ } else {
+ TipUtil.show(NFCWreatActivity.this, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�");
}
- });
+ }
+ stopAnim();
+ }
+
+ private void setmanageCard(Intent intent, final ManageCard manageCard) {
+ manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toZeroByte(baseDao), 1, 0);
}
/**
@@ -510,41 +528,9 @@
* @param clearOrInitCard
*/
private void setClean(Intent intent, final CleanCard clearOrInitCard) {
- NFCWriteHelper.getInstence(intent).writeData(clearOrInitCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- cleanFlag = flag;
- }
- });
+ cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(baseDao), 1, 0);
}
- //鍚戝崱鍐欏叆鐢ㄦ埛淇℃伅
- private void setUser(Intent intent, UserCard userCard) {
- NFCWriteHelper.getInstence(intent).writeData(userCard.getZeroBytes(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- userFlag = flag;
- }
- });
- if (!userFlag) {
- return;
- }
- NFCWriteHelper.getInstence(intent).writeData(userCard.getOneBytes(), 1, 1, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- userFlag = flag;
- }
- });
- if (!userFlag) {
- return;
- }
- NFCWriteHelper.getInstence(intent).writeData(userCard.getTwoBytes(), 1, 2, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- userFlag = flag;
- }
- });
- }
/**
* 閲嶆柊娉ㄥ唽璁惧鍗�
@@ -553,12 +539,7 @@
* @param registeredCard
*/
private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) {
- NFCWriteHelper.getInstence(intent).writeData(registeredCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- registeredFlag = flag;
- }
- });
+ registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(baseDao), 1, 0);
}
/**
@@ -568,12 +549,7 @@
* @param cleanUserCard
*/
private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) {
- NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- cleanUserCardFlag = flag;
- }
- });
+ cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(baseDao), 1, 0);
}
/**
@@ -584,30 +560,15 @@
*/
private void setDomainCard(Intent intent, DomainCard domainCard) {
try {
- NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- domainCrdFlag = flag;
- }
- });
+ domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getZeroByte(), 1, 0);
if (!domainCrdFlag) {
return;
}
- NFCWriteHelper.getInstence(intent).writeData(domainCard.getOneByte(), 1, 1, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- domainCrdFlag = flag;
- }
- });
+ domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getOneByte(), 1, 1);
if (!domainCrdFlag) {
return;
}
- NFCWriteHelper.getInstence(intent).writeData(domainCard.getTwoByte(), 1, 2, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- domainCrdFlag = flag;
- }
- });
+ domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getTwoByte(), 1, 2);
} catch (Exception e) {
domainCrdFlag = false;
throw new RuntimeException(e);
@@ -615,32 +576,17 @@
}
private void setTestCard(Intent intent, TestCard testCard) {
- NFCWriteHelper.getInstence(intent).writeData(testCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- testCardFlag = flag;
- }
- });
+ testCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(testCard.toByte(baseDao), 1, 0);
}
private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) {
- NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- configDeviceRegiestFlag = flag;
- }
- });
+ configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent, this).writeData(configureDeviceRegistrationCrad.toByte(baseDao), 1, 0);
}
private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) {
try {
- NFCWriteHelper.getInstence(intent).writeData(configurationPowerCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- configPowerFlag = flag;
- }
- });
+ configPowerFlag = NFCWriteHelper.getInstence(intent, this).writeData(configurationPowerCard.toByte(baseDao), 1, 0);
} catch (Exception e) {
configPowerFlag = false;
throw new RuntimeException(e);
@@ -648,14 +594,27 @@
}
+ private void startDetailActivity(String userName, String statu) {
+ Intent detail = new Intent(this, RechargeDetail.class);
+ detail.putExtra("userName", userName);
+ detail.putExtra("statu", statu);
+ detail.putExtra("userCard", userCard);
+ if (!TextUtils.isEmpty(morny)) {
+ detail.putExtra("morny", morny);
+ }
+ startActivity(detail);
+ myFinish();
+ }
+
/**
* 鏌ヨ浣欓
*
* @param initPeasantCode 鍐滄埛娉ㄥ唽缂栧彿
*/
private void selectBalance(String initPeasantCode) {
-
+ Log.i(TAG, "琛ュ崱鏌ヨ浣欓:鍐滄埛娉ㄥ唽缂栧彿 " + initPeasantCode);
try {
+ startAnim();
BalanceSelecteRequestBean requestBean = new BalanceSelecteRequestBean();
requestBean.setAFN("94");
requestBean.setControl("01");
@@ -663,21 +622,17 @@
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())) {
-
StringBuffer stateText = null;
-
try {
stateText = new StringBuffer();
- stateText.append("鐘� 鎬侊細");
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());
@@ -691,57 +646,30 @@
userCard.setAddressCode(adminData.getAddressCode());
userCard.setInitPeasantCode(initPeasantCode);
}
-
+ //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊�
+ //閲戦
+ byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
+ int balance = SocketUtil.get16to10LowHigh(blanceByte);
+ //濮撳悕
+ byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
+ String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
if ("00".equals(state)) {
- //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊�
- //閲戦
- byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
- int balance = SocketUtil.get16to10LowHigh(blanceByte);
- //濮撳悕
- byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
- String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
- userCard.setBalance(balance);
- //涓巗ocket鏈嶅姟鍣ㄩ�氫俊鍚庤繘琛屽悗缁搷浣�
-
- if (!TextUtils.isEmpty(morny)) {
- //鍏呭��
- rechargeBean = new RechargeBean();
- rechargeBean.setDate(System.currentTimeMillis());
- rechargeBean.setMorny(morny);
- if (userCardBean != null) {
- rechargeBean.setUserName(userCardBean.getUserName());
- } else {
- rechargeBean.setUserName(name);
- }
- List<UserCardBean> userCardBeans = baseDao.userCardDao().findAll();
- String userId = "";
- if (userCardBeans != null) {
- for (int i = 0; i < userCardBeans.size(); i++) {
- if (initPeasantCode.equalsIgnoreCase(userCardBeans.get(i).getInitPeasantCode())) {
- userId = userCardBeans.get(i).getUserID();
- }
- }
- }
- rechargeBean.setSerial(adminData.getSerial());
- userCard.setRechargeDate(Calendar.getInstance());
- rechargeBean.setBalance(MornyUtil.changeF2Y(balance + MornyUtil.changeY2F(morny)) + "");
- rechargeBean.setUserId(userId);
- recharge(initPeasantCode);
- } else {
- //琛ュ崱閫昏緫
- setUser(intent, userCard);
- if (userFlag) {
- NFCWreatActivity.this.finish();
- ToastUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛");
- }
- }
-
stateText.append("鍚敤");
+ userCard.setBalance(balance);
+ userCard.setState("00");
+ //琛ュ崱閫昏緫
+ userFlag = WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this);
+ if (userFlag) {
+ TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛", () -> NFCWreatActivity.this.finish());
+ }
return;
} else if ("01".equals(state)) {
stateText.append("绂佺敤");
userCard.setState("01");
- setUser(intent, userCard);
+ userCard.setBalance(balance);
+ userFlag = WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this);
+ startDetailActivity(name, stateText.toString());
+
} else if ("02".equals(state)) {
stateText.append("闅跺睘淇℃伅涓嶇");
} else if ("03".equals(state)) {
@@ -749,28 +677,42 @@
} else if ("04".equals(state)) {
stateText.append("鍏跺畠");
}
- ToastUtil.show(NFCWreatActivity.this, stateText.toString());
+ stopAnim();
+ binding.cardData.setText(stateText);
+ TipUtil.show(NFCWreatActivity.this, stateText.toString());
} catch (Exception e) {
e.printStackTrace();
stopAnim();
}
} else {
//鏍¢獙CRC閿欒
- ToastUtil.show(NFCWreatActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
+ TipUtil.show(NFCWreatActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
}
+ stopAnim();
+
}
@Override
public void onSocketError(int code, String msg) {
- stopAnim();
- ToastUtil.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