左晓为主开发手持机充值管理机
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivityQHAlone.java
@@ -1,6 +1,7 @@
package com.dayu.qihealonelibrary.activity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
@@ -8,6 +9,7 @@
import android.widget.Toast;
import com.dayu.baselibrary.utils.AidlUtil;
import com.dayu.baselibrary.utils.BaseCommon;
import com.dayu.baselibrary.utils.DateUtil;
import com.dayu.baselibrary.utils.TipUtil;
import com.dayu.qihealonelibrary.QHAloneApplication;
@@ -36,7 +38,7 @@
 * Date: 2023-11-08 21:19
 * Description: nfc写卡界面
 */
public class NFCWreatActivityQHAlone extends BaseNfcActivityQHAlone {
public class NFCWreatActivity extends BaseNfcActivity {
    boolean cleanFlag = false;
@@ -77,7 +79,7 @@
    //打印
    QHAloneApplication baseApp;
    public static NFCWreatActivityQHAlone nfcWreatActivity;
    public static NFCWreatActivity nfcWreatActivity;
    /**
     * 是否是用户卡,假如是用户卡的话需要检测卡片是否已经开过户,假如已开户则报错不能再写卡
     */
@@ -85,9 +87,11 @@
    //是否是充值过程
    boolean isRecharge = false;
    //充值通信是否完成
    boolean rechargeIsOk = false;
    ActivityWriteTextQhaBinding binding;
    //当前卡的物理卡号
    String cardNumber;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
@@ -173,19 +177,33 @@
     */
    private void checkHasUser() {
        String cardType = NfcReadHelper.getInstence(intent, this).getCradType();
        Log.i("NFCWreatActivity", "cardType=" + cardType);
        if (cardType.equals(CardCommon.USER_CARD_TYPE_1) ||
                cardType.equals(CardCommon.USER_CARD_TYPE_2) ||
                cardType.equals(CardCommon.USER_CARD_TYPE_3)
        ) {
            binding.textView.setText("该卡已经写入用户信息,请更换卡片");
            binding.textView.setTextColor(getResources().getColor(com.dayu.baselibrary.R.color.red));
        } else if (cardType.equals("-1")) {
            TipUtil.show(NFCWreatActivityQHAlone.this, "请勿移动卡片,读卡失败请重试!!");
        } else {
            Log.i("NFCWreatActivity", "olduserCard!=null  saveData");
            saveData();
        try {
            String cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber();
            String[] cardTypes = cardType.split(",");
            if (cardTypes != null && cardTypes.length == 2) {
                cardNumber = cardType.split(",")[0];
                cardType = cardType.split(",")[1];
            }
            Log.i("NFCWreatActivity", "cardType=" + cardType);
            if (cardType.equals(CardCommon.USER_CARD_TYPE_1) ||
                    cardType.equals(CardCommon.USER_CARD_TYPE_2) ||
                    cardType.equals(CardCommon.USER_CARD_TYPE_3)
            ) {
                binding.textView.setText("该卡已经写入用户信息,请更换卡片");
                binding.textView.setTextColor(getResources().getColor(com.dayu.baselibrary.R.color.red));
            } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR1)) {
                TipUtil.show(NFCWreatActivity.this, "请勿移动卡片,读卡失败请重试!!");
            } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR2)) {
                TipUtil.show(NFCWreatActivity.this, "卡片未能识别,请检查卡片是否是本公司卡片");
            } else {
                Log.i("NFCWreatActivity", "olduserCard!=null  saveData");
                userCardBean.setCardNumber(cardNumber);
                baseDao.userCardDao().insert(userCardBean);
                saveData();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        stopAnim();
@@ -201,7 +219,6 @@
                    || configureDeviceRegistrationCrad != null
                    || configurationPowerCard != null) {
                if (userCard != null && TextUtils.isEmpty(morny)) {
                    userFlag = WriteCardUtils.setUser(intent, userCard, this);
                }
                if (cleanCard != null) {
@@ -234,9 +251,9 @@
                            //用户卡
                            startDetailActivity(userCardBean.getUserName(), "启用");
                        } else if (!TextUtils.isEmpty(morny)) {
                            TipUtil.show(NFCWreatActivityQHAlone.this, "充值成功", () -> NFCWreatActivityQHAlone.this.finish());
                            TipUtil.show(NFCWreatActivity.this, "充值成功", () -> NFCWreatActivity.this.finish());
                        } else {
                            TipUtil.show(NFCWreatActivityQHAlone.this, "写卡成功", () -> NFCWreatActivityQHAlone.this.finish());
                            TipUtil.show(NFCWreatActivity.this, "写卡成功", () -> NFCWreatActivity.this.finish());
                        }
                    } catch (Exception e) {
@@ -244,7 +261,7 @@
                        CrashReport.postCatchedException(e);
                    }
                } else {
                    TipUtil.show(NFCWreatActivityQHAlone.this, "写卡失败");
                    TipUtil.show(NFCWreatActivity.this, "写卡失败");
                }
                stopAnim();
            } else if (userCard == null && userCardBean != null) {
@@ -268,15 +285,13 @@
            startAnim();
            Log.i("NFCWreatActivity", "isUser:" + isUser);
            if (isUser) {
                //新卡注册逻辑
                checkHasUser();
            } else if (isRecharge) {
                if (rechargeIsOk) {
                    rechargeWrratCard();
                } else {
                    Toast.makeText(this, "正在通信请稍后", Toast.LENGTH_SHORT).show();
                }
                //充值逻辑
                rechargeWrratCard();
            } else {
                //其他管理卡逻辑
                saveData();
            }
        } catch (Exception e) {
@@ -312,7 +327,7 @@
                AidlUtil.getInstance().printText(data.toString(), size, true, false);
                AidlUtil.getInstance().print3Line();
            } catch (Exception e) {
               e.printStackTrace();
                e.printStackTrace();
            }
        } catch (Exception e) {
@@ -330,7 +345,6 @@
        binding.avi.hide();
        // or avi.smoothToHide();
    }
    //往卡内写充值后的数据
@@ -434,23 +448,25 @@
    private void startDetailActivity(String userName, String statu) {
        Intent detail = new Intent(this, RechargeDetail.class);
        Intent detail = new Intent(this, RechargeDetailActivity.class);
        detail.putExtra("userName", userName);
        detail.putExtra("statu", statu);
        detail.putExtra("userCard", userCard);
        if (!TextUtils.isEmpty(morny)) {
            detail.putExtra("morny", morny);
        }
        if (!TextUtils.isEmpty(cardNumber)) {
            detail.putExtra("cardNumber", cardNumber);
        }
        startActivity(detail);
        if (NewCardActivityQHAlone.newCardActivity != null) {
            NewCardActivityQHAlone.newCardActivity.finish();
        if (NewCardActivity.newCardActivity != null) {
            NewCardActivity.newCardActivity.finish();
        }
        if (RechargeActivityQHAlone.rechargeActivity != null) {
            RechargeActivityQHAlone.rechargeActivity.finish();
        if (RechargeActivity.rechargeActivity != null) {
            RechargeActivity.rechargeActivity.finish();
        }
        NFCWreatActivityQHAlone.nfcWreatActivity.finish();
        NFCWreatActivity.nfcWreatActivity.finish();
    }
    protected void onDestroy() {