左晓为主开发手持机充值管理机
1.修复开卡列表显示异常bug
2.实现读卡界面相关功能
3.所有Activity去掉齐河后缀
20 文件已重命名
23个文件已修改
2个文件已添加
2个文件已删除
1103 ■■■■■ 已修改文件
app/src/main/java/com/dayu/recharge/activity/LoginActivity.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/src/main/java/com/dayu/baselibrary/utils/BaseCommon.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/src/main/java/com/dayu/baselibrary/view/LibraryDialog.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
henanlibrary/src/main/java/com/dayu/henanlibrary/tools/BaseNFCHelper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
henanlibrary/src/main/java/com/dayu/henanlibrary/tools/NfcReadHelper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/AndroidManifest.xml 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/AdminSetupActivity.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseActivity.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseNfcActivity.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/DomainActivity.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/DomainActivityQHAlone.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ElectricPriceActivity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/HomeActivity.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/IdentifyingActivity.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManageSetUpActivity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/MyActivity.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardActivity.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivity.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ParameterActivity.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ParameterActivityQHAlone.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PassWordActivity.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PasswordCardActivity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PowerActivity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java 236 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivity.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeDetailActivity.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivity.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RegionActivity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReplacementActivity.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/SysActivity.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/adapter/NewCardAdapter.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/adapter/ReplacementAdapter.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/card/UserCard.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/dao/UserCardDao.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/dbBean/UserCardBean.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/BaseNFCHelper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/NfcReadHelper.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/view/ProgressDialog.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/res/layout/activity_admin_setup_qha.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/res/layout/activity_my_qha.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/res/layout/activity_new_card_qha.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/res/layout/activity_recharge_detail_qha.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/res/layout/activity_red_card_qha.xml 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/res/layout/qihe_item_new_card.xml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/res/layout/qihe_item_replacements.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
@@ -20,7 +20,7 @@
import com.dayu.henanlibrary.dbBean.PassWordBean;
import com.dayu.qihealonelibrary.activity.HomeActivityQHAlone;
import com.dayu.qihealonelibrary.activity.HomeActivity;
import com.dayu.recharge.MyApplication;
import com.dayu.recharge.databinding.ActivityLoginBinding;
import com.hjq.permissions.OnPermissionCallback;
@@ -77,7 +77,7 @@
                if (MyApplication.myApplication.libraryType == BaseCommon.HeNanLibrary) {
                    startActivity(new Intent(LoginActivity.this, com.dayu.henanlibrary.activity.HomeActivity.class));
                } else if (MyApplication.myApplication.libraryType ==  BaseCommon.QHAloneLibrary) {
                    startActivity(new Intent(LoginActivity.this, HomeActivityQHAlone.class));
                    startActivity(new Intent(LoginActivity.this, HomeActivity.class));
                }
                LoginActivity.this.finish();
            } else {
baselibrary/src/main/java/com/dayu/baselibrary/utils/BaseCommon.java
@@ -15,5 +15,11 @@
    public final static int HeNanLibrary = 0;
    public final static int QHAloneLibrary = 1;
    /**
     * 当前卡密码错误,不是本公司卡
     */
    public final static String CARD_TYPE_ERROR2= "-2";
    public final static String CARD_TYPE_ERROR1="-1";
}
baselibrary/src/main/java/com/dayu/baselibrary/view/LibraryDialog.java
@@ -33,6 +33,8 @@
    int type;
    String data;
    ConfirmDialog confirmDialog;
    public LibraryDialog(Activity context, libraryBack libraryBack) {
        super(context, com.dayu.baselibrary.R.style.ws_pay_showSelfDialog);
        mContext = context;
@@ -68,12 +70,13 @@
        okBtn.setOnClickListener(v -> {
            if (ischose) {
                //二次确认
                ConfirmDialog confirmDialog = new ConfirmDialog(mContext, data, new View.OnClickListener() {
                confirmDialog = new ConfirmDialog(mContext, data, new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        libraryDao.insert(libraryBean);
                        mLibraryBack.listener(type);
                        LibraryDialog.this.dismiss();
                        confirmDialog.dismiss();
                    }
                });
                confirmDialog.show();
henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java
@@ -12,6 +12,7 @@
import com.dayu.baselibrary.tools.BcdUtil;
import com.dayu.baselibrary.utils.AidlUtil;
import com.dayu.baselibrary.utils.BaseCommon;
import com.dayu.baselibrary.utils.CRC8;
import com.dayu.baselibrary.utils.DateUtil;
import com.dayu.baselibrary.utils.MornyUtil;
@@ -253,11 +254,11 @@
        ) {
            binding.textView.setText("该卡已经写入用户信息,请更换卡片");
            binding.textView.setTextColor(getResources().getColor(com.dayu.baselibrary.R.color.red));
        } else if (cardType.equals("-1")) {
        } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR1)) {
            TipUtil.show(NFCWreatActivity.this, "请勿移动卡片,读卡失败请重试!!");
        } else if (cardType.equals("-2")) {
            TipUtil.show(NFCWreatActivity.this, "读卡失败,请检查卡是否是用户卡");
        } else {
        } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR2)) {
            TipUtil.show(NFCWreatActivity.this, ",卡片未能识别,请检查卡片是否是本公司卡片");
        }  else {
            Log.i("NFCWreatActivity", "olduserCard!=null  saveData");
            saveData();
        }
henanlibrary/src/main/java/com/dayu/henanlibrary/tools/BaseNFCHelper.java
@@ -38,7 +38,7 @@
    static {
        System.loadLibrary("native-lib");
        System.loadLibrary("henan-native-lib");
    }
    public native String getSafeKey(Object object);
henanlibrary/src/main/java/com/dayu/henanlibrary/tools/NfcReadHelper.java
@@ -8,6 +8,7 @@
import android.util.Log;
import com.dayu.baselibrary.tools.HexUtil;
import com.dayu.baselibrary.utils.BaseCommon;
import com.dayu.henanlibrary.card.UserCard;
import com.dayu.henanlibrary.utils.CardCommon;
@@ -134,10 +135,10 @@
                } else {
                    Log.i("NFCWreatActivity", "isOpen===" + isOpen);
                    return "-2";
                    return BaseCommon.CARD_TYPE_ERROR2;
                }
            } catch (IOException e) {
                return "-1";
                return BaseCommon.CARD_TYPE_ERROR1;
            } finally {
                try {
                    mfc.close();
qihealonelibrary/src/main/AndroidManifest.xml
@@ -10,18 +10,18 @@
        <activity
            android:name="com.dayu.qihealonelibrary.activity.AdminSetupActivityQHAlone"
            android:name="com.dayu.qihealonelibrary.activity.AdminSetupActivity"
            android:exported="true">
        </activity>
        <activity
            android:name="com.dayu.qihealonelibrary.activity.HomeActivityQHAlone"
            android:name="com.dayu.qihealonelibrary.activity.HomeActivity"
            android:exported="true">
        </activity>
        <activity
            android:name="com.dayu.qihealonelibrary.activity.NewCardActivityQHAlone"
            android:name="com.dayu.qihealonelibrary.activity.NewCardActivity"
            android:exported="true"
            android:launchMode="singleTop"
            android:screenOrientation="portrait">
@@ -31,15 +31,15 @@
            </intent-filter>
        </activity>
        <activity
            android:name="com.dayu.qihealonelibrary.activity.SysActivityQHAlone"
            android:name="com.dayu.qihealonelibrary.activity.SysActivity"
            android:exported="true">
        </activity>
        <activity android:name="com.dayu.qihealonelibrary.activity.PassWordActivityQHAlone" />
        <activity android:name="com.dayu.qihealonelibrary.activity.MyActivityQHAlone" />
        <activity android:name="com.dayu.qihealonelibrary.activity.PassWordActivity" />
        <activity android:name="com.dayu.qihealonelibrary.activity.MyActivity" />
        <activity
            android:name="com.dayu.qihealonelibrary.activity.RechargeActivityQHAlone"
            android:name="com.dayu.qihealonelibrary.activity.RechargeActivity"
            android:exported="true"
            android:launchMode="singleTop">
            <intent-filter>
@@ -59,7 +59,7 @@
            </intent-filter>
        </activity>
        <activity
            android:name="com.dayu.qihealonelibrary.activity.NFCWreatActivityQHAlone"
            android:name="com.dayu.qihealonelibrary.activity.NFCWreatActivity"
            android:exported="true"
            android:launchMode="singleTop">
            <intent-filter>
@@ -67,17 +67,17 @@
                <data android:mimeType="text/plain" />
            </intent-filter>
        </activity>
        <activity android:name="com.dayu.qihealonelibrary.activity.RechargeListActivityQHAlone" />
        <activity android:name="com.dayu.qihealonelibrary.activity.NewCardListActivityQHAlone" />
        <activity android:name="com.dayu.qihealonelibrary.activity.ParameterActivityQHAlone" />
        <activity android:name="com.dayu.qihealonelibrary.activity.PowerActivityQHAlone" />
        <activity android:name="com.dayu.qihealonelibrary.activity.DomainActivityQHAlone" />
        <activity android:name="com.dayu.qihealonelibrary.activity.ElectricPriceActivityQHAlone" />
        <activity android:name="com.dayu.qihealonelibrary.activity.IdentifyingActivityQHAlone" />
        <activity android:name="com.dayu.qihealonelibrary.activity.ReplacementActivityQHAlone" />
        <activity android:name="com.dayu.qihealonelibrary.activity.RechargeDetail" />
        <activity android:name="com.dayu.qihealonelibrary.activity.PasswordCardActivityQHAlone" />
        <activity android:name="com.dayu.qihealonelibrary.activity.RegionActivityQHAlone" />
        <activity android:name="com.dayu.qihealonelibrary.activity.RechargeListActivity" />
        <activity android:name="com.dayu.qihealonelibrary.activity.NewCardListActivity" />
        <activity android:name="com.dayu.qihealonelibrary.activity.ParameterActivity" />
        <activity android:name="com.dayu.qihealonelibrary.activity.PowerActivity" />
        <activity android:name="com.dayu.qihealonelibrary.activity.DomainActivity" />
        <activity android:name="com.dayu.qihealonelibrary.activity.ElectricPriceActivity" />
        <activity android:name="com.dayu.qihealonelibrary.activity.IdentifyingActivity" />
        <activity android:name="com.dayu.qihealonelibrary.activity.ReplacementActivity" />
        <activity android:name="com.dayu.qihealonelibrary.activity.RechargeDetailActivity" />
        <activity android:name="com.dayu.qihealonelibrary.activity.PasswordCardActivity" />
        <activity android:name="com.dayu.qihealonelibrary.activity.RegionActivity" />
    </application>
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/AdminSetupActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/AdminSetupActivityQHAlone.java
@@ -15,11 +15,11 @@
 * Date: 2023-11-10 19:52
 * Description: 管理员信息设置
 */
public class AdminSetupActivityQHAlone extends BaseActivityQHAlone {
public class AdminSetupActivity extends BaseActivity {
    ActivityAdminSetupQhaBinding adminBinding;
    public static AdminSetupActivityQHAlone adminSetupActivity;
    public static AdminSetupActivity adminSetupActivity;
    AdminDataBean adminData = new AdminDataBean();
    @Override
@@ -44,26 +44,26 @@
            if (!TextUtils.isEmpty(strAddressCode)
                    && !TextUtils.isEmpty(strSerial)) {
                if (Integer.valueOf(adminBinding.adminSerial.getText().toString()) <= 65535) {
                    if (Integer.valueOf(adminBinding.adminSerial.getText().toString()) <= 65535) {
                if (Integer.valueOf(strSerial) <= 65535) {
                    if (Integer.valueOf(strAddressCode) <= 65535) {
                        adminData.setAddressCode(strAddressCode);
                        adminData.setSerial(strSerial);
                        baseDao.adminDao().insert(adminData);
                        TipUtil.show(AdminSetupActivityQHAlone.this, "设置成功", new TipUtil.TipListener() {
                        TipUtil.show(AdminSetupActivity.this, "设置成功", new TipUtil.TipListener() {
                            @Override
                            public void onCancle() {
                                AdminSetupActivityQHAlone.this.finish();
                                AdminSetupActivity.this.finish();
                            }
                        });
                    } else {
                        TipUtil.show(AdminSetupActivityQHAlone.this, "输入的区域号不能超过65535");
                        TipUtil.show(AdminSetupActivity.this, "输入的区域号不能超过65535");
                    }
                } else {
                    TipUtil.show(AdminSetupActivityQHAlone.this, "输入的设备编号不能超过65535");
                    TipUtil.show(AdminSetupActivity.this, "输入的设备编号不能超过65535");
                }
            } else {
                TipUtil.show(AdminSetupActivityQHAlone.this, "请输入完整内容");
                TipUtil.show(AdminSetupActivity.this, "请输入完整内容");
            }
        });
    }
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseActivityQHAlone.java
@@ -7,7 +7,6 @@
import android.util.Log;
import android.view.View;
import com.dayu.baselibrary.activity.BaseActivity;
import com.dayu.baselibrary.view.TitleBar;
import com.dayu.qihealonelibrary.R;
import com.dayu.qihealonelibrary.dao.QHAloneAppDatabase;
@@ -18,7 +17,7 @@
 * Created by zuoxiao on 2018/12/20.
 */
public class BaseActivityQHAlone extends BaseActivity {
public class BaseActivity extends com.dayu.baselibrary.activity.BaseActivity {
    private final String TAG = "BaseActivity";
    public TitleBar titleBar = null;
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseNfcActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseNfcActivityQHAlone.java
@@ -18,14 +18,13 @@
 * 在onNewIntent方法中执行intent传递过来的Tag数据
 * 将NFC标签卡靠近手机后部(NFC标签卡可网上自行购买)
 */
public class BaseNfcActivityQHAlone extends BaseActivityQHAlone {
public class BaseNfcActivity extends BaseActivity {
    protected NfcAdapter mNfcAdapter;
    private PendingIntent mPendingIntent;
    volatile UserCard userCard;
    Handler handler;
    /**
     * onCreat->onStart->onResume->onPause->onStop->onDestroy
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/DomainActivity.java
New file
@@ -0,0 +1,76 @@
package com.dayu.qihealonelibrary.activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import com.dayu.baselibrary.utils.TipUtil;
import com.dayu.qihealonelibrary.databinding.ActivityDomainQhaBinding;
import com.dayu.qihealonelibrary.dbBean.DomainBean;
/**
 * Created by Android Studio.
 * author: zuo
 * Date: 2023-11-14
 * Time: 10:19
 * 备注: 设置卡域名和ip
 */
public class DomainActivity extends BaseActivity {
    ActivityDomainQhaBinding binding;
    DomainBean domainBean;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = ActivityDomainQhaBinding.inflate(LayoutInflater.from(this));
        setContentView(binding.getRoot());
        initData();
        binding.electricOk.setOnClickListener(v -> {
            String domainNumber = binding.domainNumber.getText().toString();
            String domain = binding.domain.getText().toString();
            String port = binding.port.getText().toString();
            int portInt = 0;
            if (TextUtils.isEmpty(domainNumber)) {
                TipUtil.show("请输入正确的域名序号");
                return;
            }
            if (TextUtils.isEmpty(port)) {
                TipUtil.show("请输入正确的端口号");
                return;
            } else {
                portInt = Integer.valueOf(port);
            }
            if (TextUtils.isEmpty(domain)) {
                TipUtil.show("请输入域名");
                return;
            } else if (portInt <= 0 || portInt > 65535) {
                TipUtil.show("请输入正确的端口号");
                return;
            }
            domainBean.setDomainNumber(domainNumber);
            domainBean.setDomain(domain);
            domainBean.setPort(portInt);
            baseDao.domainPortDao().insert(domainBean);
            TipUtil.show("保存成功");
            initData();
        });
        initData();
    }
    private void initData() {
        domainBean = baseDao.domainPortDao().findFirst();
        if (domainBean != null) {
            binding.domainOldTV.setText("序号:" + domainBean.getDomainNumber() + "\n" + "域名:" + domainBean.getDomain() + "\n" + "端口号:" + domainBean.getPort());
        } else {
            domainBean = new DomainBean();
            binding.domainOldTV.setText("请设置新的域名卡信息");
        }
    }
}
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/DomainActivityQHAlone.java
File was deleted
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ElectricPriceActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ElectricPriceActivityQHAlone.java
@@ -19,7 +19,7 @@
 * Date: 2023-11-10 10:18
 * Description: 电量单价设置
 */
public class ElectricPriceActivityQHAlone extends BaseActivityQHAlone {
public class ElectricPriceActivity extends BaseActivity {
    ActivityElectricPriceQhaBinding electricPriceBinding;
    ElectricPriceBean electricPriceBean;
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/HomeActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/HomeActivityQHAlone.java
@@ -19,9 +19,9 @@
 * Date: 2023-11-6 19:52
 * Description: 主界面
 */
public class HomeActivityQHAlone extends BaseActivityQHAlone {
public class HomeActivity extends BaseActivity {
    public static HomeActivityQHAlone homeActivity;
    public static HomeActivity homeActivity;
    ActivityHomeQhaBinding homeBinding;
    @Override
@@ -44,9 +44,9 @@
            public void onClick(View v) {
                AdminDataBean adminData = baseDao.adminDao().findFirst();
                if (adminData != null) {
                    startActivity(new Intent(HomeActivityQHAlone.this, NewCardActivityQHAlone.class));
                    startActivity(new Intent(HomeActivity.this, NewCardActivity.class));
                } else {
                    TipUtil.show("请先设置地址信息");
                    TipUtil.show("请先设置设备编号和区域号");
                }
            }
@@ -56,9 +56,9 @@
            public void onClick(View v) {
                AdminDataBean adminData = baseDao.adminDao().findFirst();
                if (adminData != null) {
                    startActivity(new Intent(HomeActivityQHAlone.this, RechargeActivityQHAlone.class));
                    startActivity(new Intent(HomeActivity.this, RechargeActivity.class));
                } else {
                    TipUtil.show("请先设置地址信息");
                    TipUtil.show("请先设置设备编号和区域号");
                }
            }
@@ -66,28 +66,28 @@
        homeBinding.homeRedCard.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(HomeActivityQHAlone.this, ReadCardAcitivy.class));
                startActivity(new Intent(HomeActivity.this, ReadCardAcitivy.class));
            }
        });
        //管理系统界面
        homeBinding.homeAdmin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(HomeActivityQHAlone.this, SysActivityQHAlone.class));
                startActivity(new Intent(HomeActivity.this, SysActivity.class));
            }
        });
        //参数设置
        homeBinding.homeParameter.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(HomeActivityQHAlone.this, ParameterActivityQHAlone.class));
                startActivity(new Intent(HomeActivity.this, ParameterActivity.class));
            }
        });
        homeBinding.homeMy.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(HomeActivityQHAlone.this, MyActivityQHAlone.class));
                startActivity(new Intent(HomeActivity.this, MyActivity.class));
            }
        });
@@ -107,10 +107,10 @@
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if ((System.currentTimeMillis() - mExitTime) > 2000) {
                Toast.makeText(HomeActivityQHAlone.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
                Toast.makeText(HomeActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
                mExitTime = System.currentTimeMillis();
            } else {
                HomeActivityQHAlone.this.finish();
                HomeActivity.this.finish();
            }
            return true;
        }
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/IdentifyingActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/IdentifyingActivityQHAlone.java
@@ -27,7 +27,7 @@
 * Time: 10:21
 * 备注:卡标识设置
 */
public class IdentifyingActivityQHAlone extends BaseActivityQHAlone {
public class IdentifyingActivity extends BaseActivity {
    ActivityIdentyfyingQhaBinding binding;
@@ -48,7 +48,7 @@
        binding.chooseCardType.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ChooseView.getIntence(IdentifyingActivityQHAlone.this, Arrays.asList(nianfen.clone()), new ChooseView.ChooseCallBack() {
                ChooseView.getIntence(IdentifyingActivity.this, Arrays.asList(nianfen.clone()), new ChooseView.ChooseCallBack() {
                    @Override
                    public void onOptionsSelect(int options1) {
                        chooseData(nianfen[options1]);
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManageSetUpActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManageSetUpActivityQHAlone.java
@@ -8,7 +8,7 @@
 * Date: 2023-11-08 16:52
 * Description:管理卡设置界面
 */
public class ManageSetUpActivityQHAlone extends BaseActivityQHAlone {
public class ManageSetUpActivity extends BaseActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/MyActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/MyActivityQHAlone.java
@@ -34,7 +34,7 @@
 * Date: 2023-11-10 19:52
 * Description: 个人中心
 */
public class MyActivityQHAlone extends BaseActivityQHAlone {
public class MyActivity extends BaseActivity {
    private CustomDatePicker beginDatePicker;
@@ -60,13 +60,13 @@
        myBinding.cardReplacement.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MyActivityQHAlone.this, ReplacementActivityQHAlone.class));
                startActivity(new Intent(MyActivity.this, ReplacementActivity.class));
            }
        });
        myBinding.myAdmin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                PassWordDialog passWordDialog = new PassWordDialog(MyActivityQHAlone.this, new Intent(MyActivityQHAlone.this, AdminSetupActivityQHAlone.class));
                PassWordDialog passWordDialog = new PassWordDialog(MyActivity.this, new Intent(MyActivity.this, AdminSetupActivity.class));
                passWordDialog.show();
//                startActivity(new Intent(MyActivity.this, AdminSetupActivity.class));
            }
@@ -74,19 +74,19 @@
        myBinding.myPsw.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MyActivityQHAlone.this, PassWordActivityQHAlone.class));
                startActivity(new Intent(MyActivity.this, PassWordActivity.class));
            }
        });
        myBinding.myRechargeListLl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MyActivityQHAlone.this, RechargeListActivityQHAlone.class));
                startActivity(new Intent(MyActivity.this, RechargeListActivity.class));
            }
        });
        myBinding.myNewCardListLl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MyActivityQHAlone.this, NewCardListActivityQHAlone.class));
                startActivity(new Intent(MyActivity.this, NewCardListActivity.class));
            }
        });
        myBinding.myNewCardOut.setOnClickListener(new View.OnClickListener() {
@@ -113,13 +113,13 @@
        public boolean handleMessage(@NonNull Message msg) {
            switch (msg.what) {
                case 1:
                    TipUtil.show(MyActivityQHAlone.this, "导出成功!");
                    TipUtil.show(MyActivity.this, "导出成功!");
                    break;
                case 3:
                    TipUtil.show(MyActivityQHAlone.this, "记录为空!");
                    TipUtil.show(MyActivity.this, "记录为空!");
                    break;
                default:
                    TipUtil.show(MyActivityQHAlone.this, "导出失败!");
                    TipUtil.show(MyActivity.this, "导出失败!");
                    break;
            }
            stopAnim();
@@ -159,7 +159,7 @@
                        String[] title;
                        String fileName;
                        if (listData == null || listData.size() == 0) {
                            TipUtil.show(MyActivityQHAlone.this, "记录为空");
                            TipUtil.show(MyActivity.this, "记录为空");
                            return;
                        }
                        if (isRechargeList) {
@@ -170,7 +170,7 @@
                            fileName = file.toString() + "/" + ExcelUtil.outUserPathName;
                        }
                        ExcelUtil.initExcel(fileName, title);
                        ExcelUtil.writeObjListToExcel(listData, fileName, MyActivityQHAlone.this);
                        ExcelUtil.writeObjListToExcel(listData, fileName, MyActivity.this);
                        handler.sendEmptyMessage(1);
                    } catch (Exception e) {
                        handler.sendEmptyMessage(2);
@@ -205,11 +205,11 @@
        try {
            adminData = baseDao.adminDao().findFirst();
            if (adminData != null) {
                myBinding.myAdminName.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
                myBinding.myAdminName.setText(adminData.getAddressCode());
                myBinding.myVillageNum.setText(adminData.getSerial());
            } else {
                myBinding.myAdminName.setText("请点击地址信息设置");
                myBinding.myVillageNum.setText("请点击地址信息设置");
                myBinding.myAdminName.setText("请点击区域号设置");
                myBinding.myVillageNum.setText("请点击区域号设置");
            }
            StringBuilder msgData = new StringBuilder();
@@ -259,7 +259,7 @@
            public void onTimeSelected(long timestamp) {
                endTime = timestamp;
                if ((endTime < beginTime) && endTime != beginTime) {
                    TipUtil.show(MyActivityQHAlone.this, "结束时间不能晚于开始时间");
                    TipUtil.show(MyActivity.this, "结束时间不能晚于开始时间");
                } else {
                    try {
                        endTime = endTime + (1000 * 60 * 60 * 24) - 1;
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() {
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardActivityQHAlone.java
@@ -38,7 +38,7 @@
 * Date: 2023-11-10 19:52
 * Description: 新卡注册
 */
public class NewCardActivityQHAlone extends BaseActivityQHAlone {
public class NewCardActivity extends BaseActivity {
    public static final int SCAN_IDCARD_REQUEST = 1;
    UserCardBean userCardBean;
@@ -46,7 +46,7 @@
    ActivityNewCardQhaBinding newCardBinding;
    AdminDataBean adminData;
    static NewCardActivityQHAlone newCardActivity;
    static NewCardActivity newCardActivity;
    private int defValueMainId = 2;
    private int defValueSubId = 0;
@@ -84,11 +84,11 @@
                    && !TextUtils.isEmpty(phone) && !TextUtils.isEmpty(userID)
            ) {
                if (userName.length() <= 1 || !validateName(userName)) {
                    TipUtil.show(NewCardActivityQHAlone.this, "请输入正确姓名");
                    TipUtil.show(NewCardActivity.this, "请输入正确姓名");
                } else if (phone.length() < 11 || !isValidPhoneNumber(phone)) {
                    TipUtil.show(NewCardActivityQHAlone.this, "请输入正确手机号");
                    TipUtil.show(NewCardActivity.this, "请输入正确手机号");
                } else if (!Utils.check(userID)) {
                    TipUtil.show(NewCardActivityQHAlone.this, "请输入正确身份证号");
                    TipUtil.show(NewCardActivity.this, "请输入正确身份证号");
                } else {
                    userCardBean = new UserCardBean();
                    userCardBean.setUserName(userName);
@@ -96,10 +96,11 @@
                    userCardBean.setSerial(adminData.getSerial());
                    userCardBean.setPhone(phone);
                    userCardBean.setUserID(userID);
                    baseDao.userCardDao().insert(userCardBean);
                    UserCard userCard = new UserCard();
                    userCard.setArerNumber(Short.valueOf(adminData.getSerial()));
                    userCard.setDeviceNumberl(Short.valueOf(adminData.getAddressCode()));
                    userCard.setArerNumber(Integer.valueOf(adminData.getSerial()));
                    userCard.setDeviceNumberl(Integer.valueOf(adminData.getAddressCode()));
                    userCard.setRechargeTimes((byte) 0);
                    userCard.setTotalWater(0);
                    userCard.setTotalElectric(0);
@@ -107,14 +108,14 @@
                    userCard.setSurplusWater(0);
                    userCard.setRechargeDate(Calendar.getInstance());
                    Intent intent = new Intent(NewCardActivityQHAlone.this, NFCWreatActivityQHAlone.class);
                    Intent intent = new Intent(NewCardActivity.this, NFCWreatActivity.class);
                    intent.putExtra("userCard", userCard);
                    intent.putExtra("dbUserCard", userCardBean);
                    startActivity(intent);
                }
            } else {
                TipUtil.show(NewCardActivityQHAlone.this, "请输入完整内容");
                TipUtil.show(NewCardActivity.this, "请输入完整内容");
            }
        });
    }
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivityQHAlone.java
@@ -32,7 +32,7 @@
 * Description: 新卡注册列表界面
 */
public class NewCardListActivityQHAlone extends BaseActivityQHAlone {
public class NewCardListActivity extends BaseActivity {
    ActivityNewcardListQhaBinding newcardListBinding;
@@ -152,7 +152,7 @@
            public void onTimeSelected(long timestamp) {
                endTime = timestamp;
                if ((endTime < beginTime) && endTime != beginTime) {
                    TipUtil.show(NewCardListActivityQHAlone.this, "结束时间不能晚于开始时间");
                    TipUtil.show(NewCardListActivity.this, "结束时间不能晚于开始时间");
                } else {
//                    try {
//                        endTime = endTime + (1000 * 60 * 60 * 24) - 1;
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ParameterActivity.java
New file
@@ -0,0 +1,58 @@
package com.dayu.qihealonelibrary.activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import com.dayu.qihealonelibrary.databinding.ActivityParameterQhaBinding;
/**
 * Copyright (C), 2023,
 * Author: zuo
 * Date: 2023-11-06 11:47
 * Description: 参数设置界面
 */
public class ParameterActivity extends BaseActivity {
    ActivityParameterQhaBinding binding;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = ActivityParameterQhaBinding.inflate(LayoutInflater.from(this));
        setContentView(binding.getRoot());
        initView();
    }
    private void initView() {
        //设置域名卡
        binding.parameterDomain.setOnClickListener(v -> {
            Intent intent = new Intent(ParameterActivity.this, DomainActivity.class);
            startActivity(intent);
        });
//       水泵功率设置
        binding.parameterPower.setOnClickListener(v -> {
            Intent intent = new Intent(ParameterActivity.this, PowerActivity.class);
            startActivity(intent);
        });
        //电量单价设置
        binding.parameterElectricPrice.setOnClickListener(v -> {
            Intent intent = new Intent(ParameterActivity.this, ElectricPriceActivity.class);
            startActivity(intent);
        });
        //卡标识设置
        binding.parameterCardIdentifying.setOnClickListener(v -> {
            Intent intent = new Intent(ParameterActivity.this, IdentifyingActivity.class);
            startActivity(intent);
        });
        //密码卡设置密码
        binding.parameterPassWordCard.setOnClickListener(v -> {
            Intent intent = new Intent(ParameterActivity.this, PasswordCardActivity.class);
            startActivity(intent);
        });
        binding.parameterRegion.setOnClickListener(v -> {
            Intent intent = new Intent(ParameterActivity.this, RegionActivity.class);
            startActivity(intent);
        });
    }
}
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ParameterActivityQHAlone.java
File was deleted
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PassWordActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PassWordActivityQHAlone.java
@@ -17,7 +17,7 @@
 * Date: 2023-11-10 19:52
 * Description: 修改密码界面
 */
public class PassWordActivityQHAlone extends BaseActivityQHAlone {
public class PassWordActivity extends BaseActivity {
    ActivityPswQhaBinding pswBinding;
@@ -44,18 +44,18 @@
                            if (pswBinding.pswNew.getText().toString().equals(pswBinding.pswNewAgin.getText().toString())) {
                                passWordBean.setPassWord(pswBinding.pswNewAgin.getText().toString());
                                baseDao.loginPsDao().insert(passWordBean);
                                TipUtil.show(PassWordActivityQHAlone.this, "密码修改完成", () -> {
                                    PassWordActivityQHAlone.this.finish();
                                TipUtil.show(PassWordActivity.this, "密码修改完成", () -> {
                                    PassWordActivity.this.finish();
                                });
                            } else {
                                TipUtil.show(PassWordActivityQHAlone.this, "两次输入的密码不一致");
                                TipUtil.show(PassWordActivity.this, "两次输入的密码不一致");
                            }
                        } else {
                            TipUtil.show(PassWordActivityQHAlone.this, "旧密码输入错误");
                            TipUtil.show(PassWordActivity.this, "旧密码输入错误");
                        }
                    } else {
                        TipUtil.show(PassWordActivityQHAlone.this, "请输完内容");
                        TipUtil.show(PassWordActivity.this, "请输完内容");
                    }
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PasswordCardActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PasswordCardActivityQHAlone.java
@@ -15,7 +15,7 @@
 * Time: 16:21
 * 备注:密码卡设置界面
 */
public class PasswordCardActivityQHAlone extends BaseActivityQHAlone {
public class PasswordCardActivity extends BaseActivity {
    ActivityPasswordCardQhaBinding binding;
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PowerActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PowerActivityQHAlone.java
@@ -15,7 +15,7 @@
 * Date: 2023-11-08 21:19
 * Description: 功率设置
 */
public class PowerActivityQHAlone extends BaseActivityQHAlone {
public class PowerActivity extends BaseActivity {
    ActivityPowerQhaBinding powerBinding;
    PowerBean powerBean = new PowerBean();
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java
@@ -3,6 +3,7 @@
import android.content.Intent;
import android.nfc.NfcAdapter;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
@@ -16,6 +17,7 @@
import com.dayu.qihealonelibrary.card.RegionCard;
import com.dayu.qihealonelibrary.card.UserCard;
import com.dayu.qihealonelibrary.databinding.ActivityRedCardQhaBinding;
import com.dayu.qihealonelibrary.dbBean.UserCardBean;
import com.dayu.qihealonelibrary.tools.NfcReadHelper;
import com.dayu.qihealonelibrary.utils.CardCommon;
import com.dayu.qihealonelibrary.view.ProgressDialog;
@@ -29,7 +31,7 @@
 * Date: 2023-11-10 19:52
 * Description: 读卡界面
 */
public class ReadCardAcitivy extends BaseNfcActivityQHAlone {
public class ReadCardAcitivy extends BaseNfcActivity {
    volatile UserCard userCard;
    ActivityRedCardQhaBinding redCardBinding;
@@ -45,13 +47,11 @@
    }
    private void setUserData(String userName, int blance, String statu) {
    private void setUserData(String userName, String statu, String cardNumber) {
        viweGone(true);
        redCardBinding.redName.setText("用户姓名:" + userName);
        redCardBinding.redRemainderBlance.setText("剩余金额:" + MornyUtil.changeF2Y(blance) + "元");
        redCardBinding.redStatu.setText("卡状态:" + statu);
        if (userCard != null) {
            Calendar calendar = userCard.getRechargeDate();
            if (calendar != null) {
                int year = calendar.get(Calendar.YEAR);
@@ -60,12 +60,16 @@
                int hour = calendar.get(Calendar.HOUR_OF_DAY);
                int minute = calendar.get(Calendar.MINUTE);
                int second = calendar.get(Calendar.SECOND);
                redCardBinding.redRechargeDate.setText("本卡最后购水日期:" + year + month + day + " " + hour + ":" + minute + ":" + second);
                redCardBinding.redRechargeDate.setText("本卡最后购水日期:" + year + "年" + month + "月" + day + "日");
            } else {
                redCardBinding.redRechargeDate.setText("本卡最后购水日期:无");
            }
            redCardBinding.redInitCode.setText(cardNumber);
            redCardBinding.redRechargeNumber.setText("本卡充值次数:" + userCard.getRechargeTimes() + "");
            redCardBinding.redTotalWater.setText("总用水量:" + userCard.getTotalWater());
            redCardBinding.redTotalPower.setText("总用电量:" + userCard.getTotalElectric());
            redCardBinding.redRemainderBlance.setText("剩余金额:" + MornyUtil.changeF2Y(userCard.getBalance()) + "元");
            redCardBinding.redRemainderWater.setText("剩余水量:" + userCard.getSurplusWater());
        }
    }
@@ -85,115 +89,131 @@
     */
    public void readAllData(Intent intent) {
        NfcReadHelper.getInstence(intent, this)
                .getOneSectorData(new NfcReadHelper.NFCCallListback() {
                    @Override
                    public void callBack(List<byte[]> data) {
                        //获取1扇区数据
                        if (data != null && data.size() > 0) {
                            byte cardType = data.get(0)[0];
                            String cardTypeStr = HexUtil.byteToHex(cardType);
                            switch (cardTypeStr) {
                                case CardCommon.USER_CARD_TYPE_1:
                                case CardCommon.USER_CARD_TYPE_2:
                                case CardCommon.USER_CARD_TYPE_3:
                                    userCard = UserCard.getBean(data);
                                    break;
                                case CardCommon.MANAGE_CRAD:
                                    viweGone(false);
                                    redCardBinding.readCardTypeTV.setText("当前为管理卡");
                                    stopAnim();
                                    break;
                                case CardCommon.CLEAN_CARD_TYPE:
                                    viweGone(false);
                                    redCardBinding.readCardTypeTV.setText("当前为清零卡");
                                    stopAnim();
                                    break;
                                case CardCommon.REGISTERED_CARD_TYPE:
                                    viweGone(false);
                                    redCardBinding.readCardTypeTV.setText("当前为重新注册设备卡");
                                    stopAnim();
                                    break;
                                case CardCommon.CLEAN_ALL_USER_CARD_TYPE:
                                    viweGone(false);
                                    redCardBinding.readCardTypeTV.setText("当前为删除全部用户卡");
                                    stopAnim();
                                    break;
                                case CardCommon.DOMAIN_CARD_TYPE:
                                    viweGone(false);
                                    redCardBinding.readCardTypeTV.setText("当前为设置域名卡");
                                    DomainCard domainCard = DomainCard.toBean(data);
                                    assert domainCard != null;
                                    redCardBinding.readCardDataTV.setText("序号:" + domainCard.getDomainNumber() + "\n" + "域名:" + domainCard.getDomainName() + "\n" + "端口号:" + domainCard.getPort());
                                    stopAnim();
                                    break;
                                case CardCommon.TEST_CARD_TYPE:
                                    viweGone(false);
                                    redCardBinding.readCardTypeTV.setText("当前为测试卡");
                                    stopAnim();
                                    break;
                                case CardCommon.CONFIGURATION_CARD_TYPE:
                                    viweGone(false);
                                    redCardBinding.readCardTypeTV.setText("当前为配置设备注册信息卡");
                                    stopAnim();
                                    break;
                                case CardCommon.CONFIGURATION_POWER_CARD_TYPE:
                                    viweGone(false);
                                    redCardBinding.readCardTypeTV.setText("当前配置水泵功率卡");
                                    ConfigurationPowerCard powerCard = ConfigurationPowerCard.toBean(data.get(0));
                                    redCardBinding.readCardDataTV.setText(powerCard.getPower());
                                    stopAnim();
                                    break;
                                case CardCommon.BLACK:
                                    viweGone(false);
                                    redCardBinding.readCardTypeTV.setText("当前为黑卡");
                                    BlackCard blackCard = BlackCard.getBean(data);
                                    redCardBinding.readCardDataTV.setText("当前黑卡用户号为:" + blackCard.getBlackCard());
                                    break;
                                case CardCommon.REGION:
                                    viweGone(false);
                                    redCardBinding.readCardTypeTV.setText("当前为区域表号卡");
                                    RegionCard regionCard = RegionCard.getBean(data);
                                    StringBuilder stringBuilder = new StringBuilder();
                                    stringBuilder.append("区域地址:").append(regionCard.getRegion()).append("\n");
                                    stringBuilder.append("控制器编号:").append(regionCard.getControllerCodel()).append("\n");
                                    redCardBinding.readCardDataTV.setText(stringBuilder.toString());
                                    break;
                                case CardCommon.ELECTRIC_PRICE:
                                    viweGone(false);
                                    redCardBinding.readCardTypeTV.setText("当前为电量单价卡");
                                    ElectricPriceCard electricPriceCard = ElectricPriceCard.getBean(data);
                                    StringBuilder electricPriceBuilder = new StringBuilder();
                                    electricPriceBuilder.append("电量单价:").append(electricPriceCard.getElectricPrice()).append("\n");
                                    redCardBinding.readCardDataTV.setText(electricPriceBuilder.toString());
                                    break;
                                default:
                                    TipUtil.show(ReadCardAcitivy.this, "卡片无法识别");
                                    stopAnim();
                                    break;
                            }
        String cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber();
        String cardNumber = null;
        String[] cardTypes = cardType.split(",");
        if (cardTypes != null && cardTypes.length == 2) {
            cardNumber = cardType.split(",")[0];
            cardType = cardType.split(",")[1];
        }
        List<byte[]> data = NfcReadHelper.getInstence(intent, this).getOnesectorData();
        switch (cardType) {
            case CardCommon.USER_CARD_TYPE_1:
            case CardCommon.USER_CARD_TYPE_2:
            case CardCommon.USER_CARD_TYPE_3:
                if (!data.isEmpty()) {
                    if (!TextUtils.isEmpty(cardNumber)) {
                        userCard = UserCard.getBean(data);
                        List<UserCardBean> userCardBeans = baseDao.userCardDao().findUserName(cardNumber);
                        if (userCardBeans != null && !userCardBeans.isEmpty()) {
                            UserCardBean userName = userCardBeans.get(0);
                            setUserData(userName.getUserName(), "启用", cardNumber);
                        } else {
                            TipUtil.show(ReadCardAcitivy.this, "卡片无法识别");
                            stopAnim();
                            setUserData("未查询到用户名", "启用", cardNumber);
                        }
                    } else {
                    }
                } else {
                    TipUtil.show("卡片识别错误,请重试!");
                }
                    @Override
                    public void error(int code) {
                        switch (code) {
                            case CardCommon.ERROR_MOVE:
                                stopAnim();
                                TipUtil.show("连接中断,请重新贴合卡片");
                                break;
                            default:
                                stopAnim();
                                TipUtil.show("卡片识别错误,请重试!");
                        }
                    }
                });
                stopAnim();
                break;
            case CardCommon.MANAGE_CRAD:
                viweGone(false);
                redCardBinding.readCardTypeTV.setText("当前为管理卡");
                stopAnim();
                break;
            case CardCommon.CLEAN_CARD_TYPE:
                viweGone(false);
                redCardBinding.readCardTypeTV.setText("当前为清零卡");
                stopAnim();
                break;
            case CardCommon.REGISTERED_CARD_TYPE:
                viweGone(false);
                redCardBinding.readCardTypeTV.setText("当前为重新注册设备卡");
                stopAnim();
                break;
            case CardCommon.CLEAN_ALL_USER_CARD_TYPE:
                viweGone(false);
                redCardBinding.readCardTypeTV.setText("当前为删除全部用户卡");
                stopAnim();
                break;
            case CardCommon.DOMAIN_CARD_TYPE:
                viweGone(false);
                redCardBinding.readCardTypeTV.setText("当前为设置域名卡");
                if (!data.isEmpty()) {
                    DomainCard domainCard = DomainCard.toBean(data);
                    assert domainCard != null;
                    redCardBinding.readCardDataTV.setText("序号:" + domainCard.getDomainNumber() + "\n" + "域名:" + domainCard.getDomainName() + "\n" + "端口号:" + domainCard.getPort());
                } else {
                    TipUtil.show("卡片识别错误,请重试!");
                }
                stopAnim();
                break;
            case CardCommon.TEST_CARD_TYPE:
                viweGone(false);
                redCardBinding.readCardTypeTV.setText("当前为测试卡");
                stopAnim();
                break;
            case CardCommon.CONFIGURATION_CARD_TYPE:
                viweGone(false);
                redCardBinding.readCardTypeTV.setText("当前为配置设备注册信息卡");
                stopAnim();
                break;
            case CardCommon.CONFIGURATION_POWER_CARD_TYPE:
                viweGone(false);
                redCardBinding.readCardTypeTV.setText("当前配置水泵功率卡");
                if (!data.isEmpty()) {
                    ConfigurationPowerCard powerCard = ConfigurationPowerCard.toBean(data.get(0));
                    redCardBinding.readCardDataTV.setText(powerCard.getPower());
                } else {
                    TipUtil.show("卡片识别错误,请重试!");
                }
                stopAnim();
                break;
            case CardCommon.BLACK:
                viweGone(false);
                redCardBinding.readCardTypeTV.setText("当前为黑卡");
                BlackCard blackCard = BlackCard.getBean(data);
                redCardBinding.readCardDataTV.setText("当前黑卡用户号为:" + blackCard.getBlackCard());
                break;
            case CardCommon.REGION:
                viweGone(false);
                redCardBinding.readCardTypeTV.setText("当前为区域表号卡");
                if (!data.isEmpty()) {
                    RegionCard regionCard = RegionCard.getBean(data);
                    StringBuilder stringBuilder = new StringBuilder();
                    stringBuilder.append("区域地址:").append(regionCard.getRegion()).append("\n");
                    stringBuilder.append("控制器编号:").append(regionCard.getControllerCodel()).append("\n");
                    redCardBinding.readCardDataTV.setText(stringBuilder.toString());
                } else {
                    TipUtil.show("卡片识别错误,请重试!");
                }
                break;
            case CardCommon.ELECTRIC_PRICE:
                viweGone(false);
                redCardBinding.readCardTypeTV.setText("当前为电量单价卡");
                if (!data.isEmpty()) {
                    ElectricPriceCard electricPriceCard = ElectricPriceCard.getBean(data);
                    StringBuilder electricPriceBuilder = new StringBuilder();
                    electricPriceBuilder.append("电量单价:").append(electricPriceCard.getElectricPrice()).append("\n");
                    redCardBinding.readCardDataTV.setText(electricPriceBuilder.toString());
                } else {
                    TipUtil.show("卡片识别错误,请重试!");
                }
                break;
            default:
                TipUtil.show(ReadCardAcitivy.this, "卡片无法识别");
                stopAnim();
                break;
        }
    }
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivityQHAlone.java
@@ -23,13 +23,12 @@
 * Date: 2023-11-5 09:52
 * Description: 充值界面
 */
public class RechargeActivityQHAlone extends BaseNfcActivityQHAlone {
public class RechargeActivity extends BaseNfcActivity {
    Intent intent;
    boolean userFlag;
    ActivityRechargeQhaBinding binding;
    public static RechargeActivityQHAlone rechargeActivity;
    public static RechargeActivity rechargeActivity;
    AdminDataBean adminData;
    String userName;
@@ -58,7 +57,7 @@
                ProgressDialog.show(this);
//                selectBalance(userCard.getInitPeasantCode());
            } else {
                TipUtil.show(RechargeActivityQHAlone.this, "卡片读取失败");
                TipUtil.show(RechargeActivity.this, "卡片读取失败");
            }
//            readAllData(intent);
@@ -81,16 +80,16 @@
            if (!TextUtils.isEmpty(morny)) {
                String initCode = DeviceNumberUtils.getDeviceNumber();
                if (TextUtils.isEmpty(initCode)) {
                    TipUtil.show(RechargeActivityQHAlone.this, "设备注册号为空,请先设置IP和管理员地址");
                    TipUtil.show(RechargeActivity.this, "设备注册号为空,请先设置IP和管理员地址");
                    return;
                }
                Intent intent = new Intent(RechargeActivityQHAlone.this, NFCWreatActivityQHAlone.class);
                Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class);
                intent.putExtra("morny", morny);
                intent.putExtra("userName", userName);
                intent.putExtra("userCard", userCard);
                startActivity(intent);
            } else {
                TipUtil.show(RechargeActivityQHAlone.this, "请输入充值金额(元)");
                TipUtil.show(RechargeActivity.this, "请输入充值金额(元)");
            }
        });
    }
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeDetailActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeDetail.java
@@ -18,13 +18,14 @@
 * Time: 15:01
 * 备注:写卡后的详情页
 */
public class RechargeDetail extends BaseActivityQHAlone {
public class RechargeDetailActivity extends BaseActivity {
    ActivityRechargeDetailQhaBinding binding;
    UserCard userCard;
    String statu;
    String userName;
    String morny;
    String cardNumber;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
@@ -39,6 +40,9 @@
            userName = getIntent().getStringExtra("userName");
            if (getIntent().hasExtra("morny")) {
                morny = getIntent().getStringExtra("morny");
            }
            if (getIntent().hasExtra("cardNumber")) {
                cardNumber = getIntent().getStringExtra("cardNumber");
            }
            setUserData(userName, statu);
        } catch (Exception e) {
@@ -62,7 +66,7 @@
        binding.redRemainderBlance.setText("剩余金额:" + MornyUtil.changeF2Y(balance) + " 元");
        binding.redStatu.setText("卡状态:" + statu);
        if (userCard != null) {
//            binding.redInitCode.setText("用户注册编号:" + userCard.getInitPeasantCode());
            binding.redInitCode.setText("当前卡号:" + cardNumber);
            Calendar calendar = userCard.getRechargeDate();
            if (calendar != null) {
                int year = calendar.get(Calendar.YEAR);
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivityQHAlone.java
@@ -33,7 +33,7 @@
 * Date: 2023-11-5 09:52
 * Description: 充值记录
 */
public class RechargeListActivityQHAlone extends BaseActivityQHAlone {
public class RechargeListActivity extends BaseActivity {
    ActivityRechargeListQhaBinding rechargeListBinding;
    RechargeAdapter adapter;
@@ -163,7 +163,7 @@
            public void onTimeSelected(long timestamp) {
                endTime = timestamp;
                if ((endTime < beginTime) && endTime != beginTime) {
                    TipUtil.show(RechargeListActivityQHAlone.this, "结束时间不能晚于开始时间");
                    TipUtil.show(RechargeListActivity.this, "结束时间不能晚于开始时间");
                } else {
                    endTime = endTime + (1000 * 60 * 60 * 24) - 1;
                    rechargeList.clear();
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RegionActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RegionActivityQHAlone.java
@@ -16,7 +16,7 @@
 * Time: 17:28
 * 备注:区域标号卡设置界面
 */
public class RegionActivityQHAlone extends BaseActivityQHAlone {
public class RegionActivity extends BaseActivity {
    ActivityRegionQhaBinding binding;
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReplacementActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReplacementActivityQHAlone.java
@@ -32,7 +32,7 @@
 * Time: 17:32
 * 备注: 补卡界面
 */
public class ReplacementActivityQHAlone extends BaseActivityQHAlone {
public class ReplacementActivity extends BaseActivity {
    ActivityReplacementQhaBinding newcardListBinding;
    List<UserCardBean> userCardBeanList = new ArrayList<>();
    ReplacementAdapter adapter;
@@ -57,7 +57,7 @@
    public void itemClick(View view) {
        UserCardBean userCardBean = userCardBeanList.get((int) view.getTag());
        Intent intent = new Intent(ReplacementActivityQHAlone.this, NFCWreatActivityQHAlone.class);
        Intent intent = new Intent(ReplacementActivity.this, NFCWreatActivity.class);
        intent.putExtra("dbUserCard", userCardBean);
        startActivity(intent);
    }
@@ -123,7 +123,7 @@
        titleBar.setOnItemclickListner(ClickType_RIGHT_TEXT, new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                edtDialog = new EdtDialog(ReplacementActivityQHAlone.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);
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/SysActivity.java
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/SysActivityQHAlone.java
@@ -27,7 +27,7 @@
 * Date: 2023-11-5 09:52
 * Description: 管理系统
 */
public class SysActivityQHAlone extends BaseActivityQHAlone {
public class SysActivity extends BaseActivity {
    ActivityAdminQhaBinding adminBinding;
@@ -47,7 +47,7 @@
        adminBinding.adminAdmin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(SysActivityQHAlone.this, NFCWreatActivityQHAlone.class);
                Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
                ManageCard manageCard = new ManageCard();
                intent.putExtra("manageCard", manageCard);
                startActivity(intent);
@@ -57,7 +57,7 @@
        adminBinding.adminCleanZero.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(SysActivityQHAlone.this, NFCWreatActivityQHAlone.class);
                Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
                CleanCard cleanCard = new CleanCard();
                intent.putExtra("cleanCard", cleanCard);
                startActivity(intent);
@@ -66,7 +66,7 @@
        adminBinding.adminRegistered.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(SysActivityQHAlone.this, NFCWreatActivityQHAlone.class);
                Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
                RegisteredCard registeredCard = new RegisteredCard();
                intent.putExtra("registeredCard", registeredCard);
                startActivity(intent);
@@ -76,7 +76,7 @@
        adminBinding.adminCleanUser.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(SysActivityQHAlone.this, NFCWreatActivityQHAlone.class);
                Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
                CleanUserCard cleanUserCard = new CleanUserCard();
                intent.putExtra("cleanUserCard", cleanUserCard);
                startActivity(intent);
@@ -86,7 +86,7 @@
        adminBinding.adminDomain.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(SysActivityQHAlone.this, NFCWreatActivityQHAlone.class);
                Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
                DomainBean domainBean = baseDao.domainPortDao().findFirst();
                DomainCard domainCard = new DomainCard();
                if (domainBean != null) {
@@ -107,7 +107,7 @@
        adminBinding.adminTest.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(SysActivityQHAlone.this, NFCWreatActivityQHAlone.class);
                Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
                TestCard testCard = new TestCard();
                intent.putExtra("testCard", testCard);
                startActivity(intent);
@@ -118,7 +118,7 @@
        adminBinding.adminConfigDeviceRegistration.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(SysActivityQHAlone.this, NFCWreatActivityQHAlone.class);
                Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
                ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad = new ConfigureDeviceRegistrationCrad();
                intent.putExtra("configureDeviceRegistrationCrad", configureDeviceRegistrationCrad);
                startActivity(intent);
@@ -131,7 +131,7 @@
            public void onClick(View v) {
                PowerBean powerBean = baseDao.powerDao().findFirst();
                if (powerBean != null) {
                    Intent intent = new Intent(SysActivityQHAlone.this, NFCWreatActivityQHAlone.class);
                    Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
                    ConfigurationPowerCard configurationPowerCard = new ConfigurationPowerCard();
                    configurationPowerCard.setPower(powerBean.getPower());
                    intent.putExtra("configurationPowerCard", configurationPowerCard);
@@ -149,7 +149,7 @@
            public void onClick(View v) {
                PassWordCardBean powerBean = baseDao.passWordCardDao().findFirst();
                if (powerBean != null) {
                    Intent intent = new Intent(SysActivityQHAlone.this, NFCWreatActivityQHAlone.class);
                    Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
                    PassWordCard passWordCard = new PassWordCard();
                    passWordCard.setPassWord(powerBean.getPassWord());
                    intent.putExtra("passWordCard", passWordCard);
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/adapter/NewCardAdapter.java
@@ -51,6 +51,7 @@
        if (holder instanceof ViewHolder) {
            if (rechargeList.size() > 0) {
                ((ViewHolder) holder).getBinding().userName.setText("用户名:" + rechargeList.get(position).getUserName());
                ((ViewHolder) holder).getBinding().cardNumber.setText("卡号:" + rechargeList.get(position).getCardNumber());
                ((ViewHolder) holder).getBinding().userNo.setText("身份证号:" + rechargeList.get(position).getUserID());
                ((ViewHolder) holder).getBinding().water.setText("电话:" + rechargeList.get(position).getPhone());
                ((ViewHolder) holder).getBinding().date.setText("日期:" + DateUtil.dateToStamp(rechargeList.get(position).getDate(), DateUtil.type1));
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/adapter/ReplacementAdapter.java
@@ -11,7 +11,7 @@
import com.dayu.baselibrary.databinding.ItemNoMoreBinding;
import com.dayu.baselibrary.utils.DateUtil;
import com.dayu.qihealonelibrary.R;
import com.dayu.qihealonelibrary.activity.ReplacementActivityQHAlone;
import com.dayu.qihealonelibrary.activity.ReplacementActivity;
import com.dayu.qihealonelibrary.databinding.QiheItemReplacementsBinding;
import com.dayu.qihealonelibrary.dbBean.UserCardBean;
@@ -20,9 +20,9 @@
public class ReplacementAdapter extends BaseRecyclerAdapter<RecyclerView.ViewHolder> {
    List<UserCardBean> rechargeList;
    ReplacementActivityQHAlone mContext;
    ReplacementActivity mContext;
    public ReplacementAdapter(ReplacementActivityQHAlone context, List<UserCardBean> rechargeList) {
    public ReplacementAdapter(ReplacementActivity context, List<UserCardBean> rechargeList) {
        mContext = context;
        this.rechargeList = rechargeList;
    }
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/card/UserCard.java
@@ -17,9 +17,9 @@
public class UserCard implements Serializable {
    public String cardType = CardCommon.USER_CARD_TYPE_1;//写卡标志 A1刷卡开泵前 A8刷卡开泵后  A2叠加充值
    public short arerNumber;//区域号(底位在前高位在后)
    public int arerNumber;//区域号(底位在前高位在后)
    public short deviceNumberl;//设备编号(底位在前高位在后)
    public int deviceNumberl;//设备编号(底位在前高位在后)
    public byte rechargeTimes;//充值次数
    public int totalWater;//用户总用水量  底位在前,高位在后2位小数点  含两个小数点的整数
@@ -48,11 +48,11 @@
            byte[] arerNumberByte = new byte[2];
            System.arraycopy(zero, 1, arerNumberByte, 0, arerNumberByte.length);
            userCard.arerNumber = (short) HexUtil.get16to10LowHigh(HexUtil.bytesToHex(arerNumberByte));
            userCard.arerNumber = HexUtil.get16to10LowHigh(HexUtil.bytesToHex(arerNumberByte));
            byte[] deviceNumberlByte = new byte[2];
            System.arraycopy(zero, 3, deviceNumberlByte, 0, deviceNumberlByte.length);
            userCard.deviceNumberl = (short) HexUtil.get16to10LowHigh(HexUtil.bytesToHex(deviceNumberlByte));
            userCard.deviceNumberl =  HexUtil.get16to10LowHigh(HexUtil.bytesToHex(deviceNumberlByte));
            userCard.rechargeTimes = HexUtil.hexToByte(HexUtil.byteToHex(zero[5]));
@@ -242,19 +242,19 @@
        this.cardType = cardType;
    }
    public short getArerNumber() {
    public int getArerNumber() {
        return arerNumber;
    }
    public void setArerNumber(short arerNumber) {
    public void setArerNumber(int arerNumber) {
        this.arerNumber = arerNumber;
    }
    public short getDeviceNumberl() {
    public int getDeviceNumberl() {
        return deviceNumberl;
    }
    public void setDeviceNumberl(short deviceNumberl) {
    public void setDeviceNumberl(int deviceNumberl) {
        this.deviceNumberl = deviceNumberl;
    }
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/dao/UserCardDao.java
@@ -33,11 +33,16 @@
    @Query("select  * from UserCardBean where date>=:beginTime and date<=:endTime")
    List<UserCardBean> findByTime(long beginTime, long endTime);
    @Query("select  * from UserCardBean where userName like :data or userID like :data or  phone like :data")
    List<UserCardBean> findByData(String data);
    @Query("select  * from UserCardBean order by date desc LIMIT :limit OFFSET :offset")
    List<UserCardBean> findAll(int offset,int limit);
    List<UserCardBean> findAll(int offset, int limit);
    @Query("select COUNT(*) from UserCardBean")
    int getUserTotale();
    @Query("select  * from UserCardBean where cardNumber =:data")
    List<UserCardBean> findUserName(String data);
}
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/dbBean/UserCardBean.java
@@ -18,6 +18,8 @@
    private String userName ;//用户名称
    private String userID ;//身份证号
    private String cardNumber;//卡号
    private long date;
    private String phone;
    //状态 0空闲 1使用
@@ -29,6 +31,14 @@
    private String addressCode;//区域号
    public String getCardNumber() {
        return cardNumber;
    }
    public void setCardNumber(String cardNumber) {
        this.cardNumber = cardNumber;
    }
    public String getAddressCode() {
        return addressCode;
    }
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/BaseNFCHelper.java
@@ -38,7 +38,7 @@
    static {
        System.loadLibrary("native-lib");
        System.loadLibrary("qihealone-native-lib");
    }
    public native String getSafeKey(Object object);
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/NfcReadHelper.java
@@ -8,12 +8,14 @@
import android.util.Log;
import com.dayu.baselibrary.tools.HexUtil;
import com.dayu.baselibrary.utils.BaseCommon;
import com.dayu.qihealonelibrary.card.UserCard;
import com.dayu.qihealonelibrary.utils.CardCommon;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -113,13 +115,74 @@
        return null;
    }
    public String getCradType() {
    /**
     * 获取卡号
     *
     * @return
     */
    public String getCardNumber() {
        MifareClassic mfc = MifareClassic.get(tag);
        if (null != mfc) {
            try {
                mfc.connect();
                //获取当前卡号
                boolean isOpen = mfc.authenticateSectorWithKeyA(0, defauleKey);
                if (!isOpen) {
                    isOpen = mfc.authenticateSectorWithKeyA(0, companyKey);
                }
                if (isOpen) {
                    int bIndex = mfc.sectorToBlock(0);
                    byte[] data = mfc.readBlock(bIndex + 0);
                    if (data != null && data.length > 0) {
                        String hex = HexUtil.bytesToHex(Arrays.copyOfRange(data, 0, 4));
                        Log.i("NFCWreatActivity", "hex===" + hex);
                        return hex;
                    }
                }
            } catch (IOException e) {
                return BaseCommon.CARD_TYPE_ERROR1;
            } finally {
                try {
                    mfc.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return "";
    }
    /**
     * 获取卡片类型和卡号
     *
     * @return
     */
    public String getCradTypeAndCardNumber() {
        MifareClassic mfc = MifareClassic.get(tag);
        if (null != mfc) {
            try {
                mfc.connect();
                boolean isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
                StringBuilder strData = new StringBuilder();
                //获取当前卡号
                boolean isOpen = mfc.authenticateSectorWithKeyA(0, defauleKey);
                if (!isOpen) {
                    isOpen = mfc.authenticateSectorWithKeyA(0, companyKey);
                }
                if (isOpen) {
                    int bIndex = mfc.sectorToBlock(0);
                    byte[] data = mfc.readBlock(bIndex + 0);
                    if (data != null && data.length > 0) {
                        String hex = HexUtil.bytesToHex(Arrays.copyOfRange(data, 0, 4));
                        strData.append(hex);
                        strData.append(",");
                        Log.i("NFCWreatActivity", "hex===" + hex);
                    }
                }
                //获取卡片类型
                isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
                if (!isOpen) {
                    isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
                }
@@ -128,16 +191,16 @@
                    byte[] data = mfc.readBlock(bIndex + 0);
                    if (data != null && data.length > 0) {
                        String hex = HexUtil.byteToHex(data[0]);
                        strData.append(hex);
                        Log.i("NFCWreatActivity", "hex===" + hex);
                        return hex;
                        return strData.toString();
                    }
                } else {
                    Log.i("NFCWreatActivity", "isOpen===" + isOpen);
                    return "-1";
                    return BaseCommon.CARD_TYPE_ERROR2;
                }
            } catch (IOException e) {
                return "-1";
                return BaseCommon.CARD_TYPE_ERROR1;
            } finally {
                try {
                    mfc.close();
@@ -217,6 +280,61 @@
    }
    public List<byte[]> getOnesectorData() {
        MifareClassic mfc = null;
        try {
            mfc = MifareClassic.get(tag);
        } catch (Exception e) {
            e.printStackTrace();
        }
        List<byte[]> list = new ArrayList<>();
        if (null != mfc) {
            try {
                //链接NFC
                mfc.connect();
                //用于判断时候有内容读取出来
                boolean flag = false;
                //验证扇区密码,否则会报错(链接失败错误)
                boolean isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
                if (!isOpen) {
                    isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
                }
                if (isOpen) {
                    //获取扇区里面块的数量
                    int bCount = mfc.getBlockCountInSector(1);
                    //获取扇区第一个块对应芯片存储器的位置(我是这样理解的,因为第0扇区的这个值是4而不是0)
                    int bIndex = mfc.sectorToBlock(1);
                    //String data1 = "";
                    for (int j = 0; j < bCount; j++) {
                        //读取数据
                        byte[] data = null;
                        try {
                            data = mfc.readBlock(bIndex);
                            bIndex++;
                            list.add(data);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    mfc.close();
                    return list;
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        return null;
    }
    /**
     * 获取1扇区信息
     *
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/view/ProgressDialog.java
@@ -14,7 +14,7 @@
    static Dialog dialog;
    public static void show(Activity activity) {
        dialog = android.app.ProgressDialog.show(activity, "", "正在通信请稍后", true, true);
        dialog = android.app.ProgressDialog.show(activity, "", "正在读取请稍后", true, true);
    }
    public static void dismiss() {
qihealonelibrary/src/main/res/layout/activity_admin_setup_qha.xml
@@ -44,7 +44,9 @@
                    android:layout_weight="2"
                    android:background="@drawable/editbg"
                    android:inputType="number"
                    android:maxLength="11"
                    android:lines="1"
                    android:maxLength="5"
                    android:paddingLeft="10dp"
                    android:textSize="@dimen/new_card_size" />
@@ -72,6 +74,8 @@
                    android:layout_weight="2"
                    android:background="@drawable/editbg"
                    android:inputType="number"
                    android:lines="1"
                    android:maxLength="5"
                    android:paddingLeft="10dp"
                    android:textSize="@dimen/new_card_size" />
            </LinearLayout>
qihealonelibrary/src/main/res/layout/activity_my_qha.xml
@@ -56,7 +56,7 @@
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="地址信息:"
                    android:text="区域号:"
                    android:textColor="@color/text_selecter"
                    android:textSize="@dimen/text_size" />
qihealonelibrary/src/main/res/layout/activity_new_card_qha.xml
@@ -67,7 +67,6 @@
                    android:id="@+id/newCard_scanBtn"
                    android:layout_width="45dp"
                    android:layout_height="45dp"
                    android:visibility="gone"
                    android:padding="10dp"
                    android:src="@mipmap/icon_scan" />
qihealonelibrary/src/main/res/layout/activity_recharge_detail_qha.xml
@@ -27,14 +27,14 @@
            android:text="用户姓名:"
            android:textSize="@dimen/text_size" />
        <TextView
            android:id="@+id/red_initCode"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:text="用户注册编号:"
            android:text="当前卡号:"
            android:textSize="@dimen/text_size" />
        <TextView
            android:id="@+id/red_remainder_morny"
qihealonelibrary/src/main/res/layout/activity_red_card_qha.xml
@@ -18,7 +18,7 @@
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/titleBar"
        android:visibility="gone">
        android:visibility="visible">
        <LinearLayout
            android:layout_width="match_parent"
@@ -43,7 +43,7 @@
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="用户注册编号:"
                    android:text="卡号:"
                    android:textSize="@dimen/text_size" />
                <TextView
@@ -62,24 +62,49 @@
                android:layout_marginTop="15dp"
                android:text="剩余金额:"
                android:textSize="@dimen/text_size" />
            <TextView
                android:id="@+id/red_remainder_water"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:text="剩余水量:"
                android:textSize="@dimen/text_size" />
            <TextView
                android:id="@+id/red_rechargeDate"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:text="本卡最后购水日期:"
                android:text="最后购水日期:"
                android:textSize="@dimen/text_size"
                android:visibility="gone" />
                android:visibility="visible" />
            <TextView
                android:id="@+id/red_rechargeNumber"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:text="本卡充值次数:"
                android:text="充值次数:"
                android:textSize="@dimen/text_size"
                android:visibility="gone" />
                android:visibility="visible" />
            <TextView
                android:id="@+id/red_total_water"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:text="总用水量:"
                android:textSize="@dimen/text_size"
                android:visibility="visible" />
            <TextView
                android:id="@+id/red_total_power"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:text="总用电量:"
                android:textSize="@dimen/text_size"
                android:visibility="visible" />
            <TextView
                android:id="@+id/red_statu"
@@ -135,7 +160,7 @@
        android:layout_below="@id/titleBar"
        android:background="#ffffff"
        android:orientation="vertical"
        android:visibility="visible">
        android:visibility="gone">
        <TextView
            android:layout_width="match_parent"
qihealonelibrary/src/main/res/layout/qihe_item_new_card.xml
@@ -6,7 +6,7 @@
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <LinearLayout
@@ -27,11 +27,18 @@
                android:textSize="14sp" />
            <TextView
                android:id="@+id/cardNumber"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="卡号:" />
            <TextView
                android:id="@+id/userNo"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="户号:123123"
                android:text="身份证号:123123"
                android:textSize="14sp" />
            <TextView
@@ -39,7 +46,7 @@
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="水量:123123"
                android:text="电话:123123"
                android:textSize="14sp" />
            <TextView
qihealonelibrary/src/main/res/layout/qihe_item_replacements.xml
@@ -7,7 +7,7 @@
        <variable
            name="activity"
            type="com.dayu.qihealonelibrary.activity.ReplacementActivityQHAlone" />
            type="com.dayu.qihealonelibrary.activity.ReplacementActivity" />
    </data>