1.修复开卡列表显示异常bug
2.实现读卡界面相关功能
3.所有Activity去掉齐河后缀
20 文件已重命名
23个文件已修改
2个文件已添加
2个文件已删除
| | |
| | | |
| | | 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; |
| | |
| | | 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 { |
| | |
| | | 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"; |
| | | |
| | | } |
| | |
| | | int type; |
| | | String data; |
| | | |
| | | ConfirmDialog confirmDialog; |
| | | |
| | | public LibraryDialog(Activity context, libraryBack libraryBack) { |
| | | super(context, com.dayu.baselibrary.R.style.ws_pay_showSelfDialog); |
| | | mContext = context; |
| | |
| | | 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(); |
| | |
| | | |
| | | 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; |
| | |
| | | ) { |
| | | 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(); |
| | | } |
| | |
| | | |
| | | |
| | | static { |
| | | System.loadLibrary("native-lib"); |
| | | System.loadLibrary("henan-native-lib"); |
| | | } |
| | | |
| | | public native String getSafeKey(Object object); |
| | |
| | | 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; |
| | | |
| | |
| | | |
| | | } 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(); |
| | |
| | | |
| | | |
| | | <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"> |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | | |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/AdminSetupActivityQHAlone.java |
| | |
| | | * 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 |
| | |
| | | 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, "请输入完整内容"); |
| | | } |
| | | }); |
| | | } |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseActivityQHAlone.java |
| | |
| | | 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; |
| | |
| | | * 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; |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseNfcActivityQHAlone.java |
| | |
| | | * 在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 |
New file |
| | |
| | | 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("请设置新的域名卡信息"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ElectricPriceActivityQHAlone.java |
| | |
| | | * Date: 2023-11-10 10:18 |
| | | * Description: 电量单价设置 |
| | | */ |
| | | public class ElectricPriceActivityQHAlone extends BaseActivityQHAlone { |
| | | public class ElectricPriceActivity extends BaseActivity { |
| | | |
| | | ActivityElectricPriceQhaBinding electricPriceBinding; |
| | | ElectricPriceBean electricPriceBean; |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/HomeActivityQHAlone.java |
| | |
| | | * 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 |
| | |
| | | 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("请先设置设备编号和区域号"); |
| | | } |
| | | |
| | | } |
| | |
| | | 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("请先设置设备编号和区域号"); |
| | | } |
| | | |
| | | } |
| | |
| | | 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)); |
| | | |
| | | } |
| | | }); |
| | |
| | | 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; |
| | | } |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/IdentifyingActivityQHAlone.java |
| | |
| | | * Time: 10:21 |
| | | * 备注:卡标识设置 |
| | | */ |
| | | public class IdentifyingActivityQHAlone extends BaseActivityQHAlone { |
| | | public class IdentifyingActivity extends BaseActivity { |
| | | |
| | | ActivityIdentyfyingQhaBinding binding; |
| | | |
| | |
| | | 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]); |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManageSetUpActivityQHAlone.java |
| | |
| | | * 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); |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/MyActivityQHAlone.java |
| | |
| | | * Date: 2023-11-10 19:52 |
| | | * Description: 个人中心 |
| | | */ |
| | | public class MyActivityQHAlone extends BaseActivityQHAlone { |
| | | public class MyActivity extends BaseActivity { |
| | | |
| | | |
| | | private CustomDatePicker beginDatePicker; |
| | |
| | | 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)); |
| | | } |
| | |
| | | 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() { |
| | |
| | | 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(); |
| | |
| | | String[] title; |
| | | String fileName; |
| | | if (listData == null || listData.size() == 0) { |
| | | TipUtil.show(MyActivityQHAlone.this, "记录为空"); |
| | | TipUtil.show(MyActivity.this, "记录为空"); |
| | | return; |
| | | } |
| | | if (isRechargeList) { |
| | |
| | | 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); |
| | |
| | | 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(); |
| | | |
| | |
| | | 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; |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivityQHAlone.java |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | * Date: 2023-11-08 21:19 |
| | | * Description: nfc写卡界面 |
| | | */ |
| | | public class NFCWreatActivityQHAlone extends BaseNfcActivityQHAlone { |
| | | public class NFCWreatActivity extends BaseNfcActivity { |
| | | |
| | | |
| | | boolean cleanFlag = false; |
| | |
| | | //打印 |
| | | QHAloneApplication baseApp; |
| | | |
| | | public static NFCWreatActivityQHAlone nfcWreatActivity; |
| | | public static NFCWreatActivity nfcWreatActivity; |
| | | /** |
| | | * 是否是用户卡,假如是用户卡的话需要检测卡片是否已经开过户,假如已开户则报错不能再写卡 |
| | | */ |
| | |
| | | |
| | | //是否是充值过程 |
| | | boolean isRecharge = false; |
| | | //充值通信是否完成 |
| | | boolean rechargeIsOk = false; |
| | | |
| | | ActivityWriteTextQhaBinding binding; |
| | | |
| | | //当前卡的物理卡号 |
| | | String cardNumber; |
| | | |
| | | @Override |
| | | protected void onCreate(Bundle savedInstanceState) { |
| | |
| | | */ |
| | | 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(); |
| | |
| | | || configureDeviceRegistrationCrad != null |
| | | || configurationPowerCard != null) { |
| | | if (userCard != null && TextUtils.isEmpty(morny)) { |
| | | |
| | | userFlag = WriteCardUtils.setUser(intent, userCard, this); |
| | | } |
| | | if (cleanCard != null) { |
| | |
| | | //用户卡 |
| | | 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) { |
| | |
| | | CrashReport.postCatchedException(e); |
| | | } |
| | | } else { |
| | | TipUtil.show(NFCWreatActivityQHAlone.this, "写卡失败"); |
| | | TipUtil.show(NFCWreatActivity.this, "写卡失败"); |
| | | } |
| | | stopAnim(); |
| | | } else if (userCard == null && userCardBean != null) { |
| | |
| | | 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) { |
| | |
| | | AidlUtil.getInstance().printText(data.toString(), size, true, false); |
| | | AidlUtil.getInstance().print3Line(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | |
| | | binding.avi.hide(); |
| | | // or avi.smoothToHide(); |
| | | } |
| | | |
| | | |
| | | |
| | | //往卡内写充值后的数据 |
| | |
| | | |
| | | |
| | | 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() { |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardActivityQHAlone.java |
| | |
| | | * 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; |
| | |
| | | ActivityNewCardQhaBinding newCardBinding; |
| | | AdminDataBean adminData; |
| | | |
| | | static NewCardActivityQHAlone newCardActivity; |
| | | static NewCardActivity newCardActivity; |
| | | private int defValueMainId = 2; |
| | | private int defValueSubId = 0; |
| | | |
| | |
| | | && !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); |
| | |
| | | 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); |
| | |
| | | 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, "请输入完整内容"); |
| | | } |
| | | }); |
| | | } |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivityQHAlone.java |
| | |
| | | * Description: 新卡注册列表界面 |
| | | */ |
| | | |
| | | public class NewCardListActivityQHAlone extends BaseActivityQHAlone { |
| | | public class NewCardListActivity extends BaseActivity { |
| | | |
| | | |
| | | ActivityNewcardListQhaBinding newcardListBinding; |
| | |
| | | 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; |
New file |
| | |
| | | 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); |
| | | }); |
| | | } |
| | | } |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PassWordActivityQHAlone.java |
| | |
| | | * Date: 2023-11-10 19:52 |
| | | * Description: 修改密码界面 |
| | | */ |
| | | public class PassWordActivityQHAlone extends BaseActivityQHAlone { |
| | | public class PassWordActivity extends BaseActivity { |
| | | |
| | | ActivityPswQhaBinding pswBinding; |
| | | |
| | |
| | | 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, "请输完内容"); |
| | | } |
| | | |
| | | |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PasswordCardActivityQHAlone.java |
| | |
| | | * Time: 16:21 |
| | | * 备注:密码卡设置界面 |
| | | */ |
| | | public class PasswordCardActivityQHAlone extends BaseActivityQHAlone { |
| | | public class PasswordCardActivity extends BaseActivity { |
| | | |
| | | ActivityPasswordCardQhaBinding binding; |
| | | |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PowerActivityQHAlone.java |
| | |
| | | * Date: 2023-11-08 21:19 |
| | | * Description: 功率设置 |
| | | */ |
| | | public class PowerActivityQHAlone extends BaseActivityQHAlone { |
| | | public class PowerActivity extends BaseActivity { |
| | | ActivityPowerQhaBinding powerBinding; |
| | | PowerBean powerBean = new PowerBean(); |
| | | |
| | |
| | | import android.content.Intent; |
| | | import android.nfc.NfcAdapter; |
| | | import android.os.Bundle; |
| | | import android.text.TextUtils; |
| | | import android.view.LayoutInflater; |
| | | import android.view.View; |
| | | |
| | |
| | | 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; |
| | |
| | | * Date: 2023-11-10 19:52 |
| | | * Description: 读卡界面 |
| | | */ |
| | | public class ReadCardAcitivy extends BaseNfcActivityQHAlone { |
| | | public class ReadCardAcitivy extends BaseNfcActivity { |
| | | |
| | | volatile UserCard userCard; |
| | | ActivityRedCardQhaBinding redCardBinding; |
| | |
| | | } |
| | | |
| | | |
| | | 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); |
| | |
| | | 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()); |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | |
| | | 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; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivityQHAlone.java |
| | |
| | | * 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; |
| | |
| | | ProgressDialog.show(this); |
| | | // selectBalance(userCard.getInitPeasantCode()); |
| | | } else { |
| | | TipUtil.show(RechargeActivityQHAlone.this, "卡片读取失败"); |
| | | TipUtil.show(RechargeActivity.this, "卡片读取失败"); |
| | | } |
| | | |
| | | // readAllData(intent); |
| | |
| | | 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, "请输入充值金额(元)"); |
| | | } |
| | | }); |
| | | } |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeDetail.java |
| | |
| | | * 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) { |
| | |
| | | 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) { |
| | |
| | | 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); |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivityQHAlone.java |
| | |
| | | * Date: 2023-11-5 09:52 |
| | | * Description: 充值记录 |
| | | */ |
| | | public class RechargeListActivityQHAlone extends BaseActivityQHAlone { |
| | | public class RechargeListActivity extends BaseActivity { |
| | | |
| | | ActivityRechargeListQhaBinding rechargeListBinding; |
| | | RechargeAdapter adapter; |
| | |
| | | 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(); |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RegionActivityQHAlone.java |
| | |
| | | * Time: 17:28 |
| | | * 备注:区域标号卡设置界面 |
| | | */ |
| | | public class RegionActivityQHAlone extends BaseActivityQHAlone { |
| | | public class RegionActivity extends BaseActivity { |
| | | |
| | | |
| | | ActivityRegionQhaBinding binding; |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReplacementActivityQHAlone.java |
| | |
| | | * Time: 17:32 |
| | | * 备注: 补卡界面 |
| | | */ |
| | | public class ReplacementActivityQHAlone extends BaseActivityQHAlone { |
| | | public class ReplacementActivity extends BaseActivity { |
| | | ActivityReplacementQhaBinding newcardListBinding; |
| | | List<UserCardBean> userCardBeanList = new ArrayList<>(); |
| | | ReplacementAdapter adapter; |
| | |
| | | |
| | | 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); |
| | | } |
| | |
| | | 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); |
File was renamed from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/SysActivityQHAlone.java |
| | |
| | | * Date: 2023-11-5 09:52 |
| | | * Description: 管理系统 |
| | | */ |
| | | public class SysActivityQHAlone extends BaseActivityQHAlone { |
| | | public class SysActivity extends BaseActivity { |
| | | |
| | | ActivityAdminQhaBinding adminBinding; |
| | | |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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) { |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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)); |
| | |
| | | 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; |
| | | |
| | |
| | | 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; |
| | | } |
| | |
| | | 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位小数点 含两个小数点的整数 |
| | |
| | | |
| | | 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])); |
| | | |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | |
| | | @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); |
| | | } |
| | |
| | | private String userName ;//用户名称 |
| | | private String userID ;//身份证号 |
| | | |
| | | private String cardNumber;//卡号 |
| | | |
| | | private long date; |
| | | private String phone; |
| | | //状态 0空闲 1使用 |
| | |
| | | |
| | | private String addressCode;//区域号 |
| | | |
| | | public String getCardNumber() { |
| | | return cardNumber; |
| | | } |
| | | |
| | | public void setCardNumber(String cardNumber) { |
| | | this.cardNumber = cardNumber; |
| | | } |
| | | |
| | | public String getAddressCode() { |
| | | return addressCode; |
| | | } |
| | |
| | | |
| | | |
| | | static { |
| | | System.loadLibrary("native-lib"); |
| | | System.loadLibrary("qihealone-native-lib"); |
| | | } |
| | | |
| | | public native String getSafeKey(Object object); |
| | |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | |
| | | 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(); |
| | |
| | | } |
| | | |
| | | |
| | | 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扇区信息 |
| | | * |
| | |
| | | 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() { |
| | |
| | | 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" /> |
| | | |
| | |
| | | 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> |
| | |
| | | <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" /> |
| | | |
| | |
| | | android:id="@+id/newCard_scanBtn" |
| | | android:layout_width="45dp" |
| | | android:layout_height="45dp" |
| | | android:visibility="gone" |
| | | android:padding="10dp" |
| | | android:src="@mipmap/icon_scan" /> |
| | | |
| | |
| | | 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" |
| | |
| | | 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" |
| | |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:text="用户注册编号:" |
| | | android:text="卡号:" |
| | | android:textSize="@dimen/text_size" /> |
| | | |
| | | <TextView |
| | |
| | | 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" |
| | |
| | | android:layout_below="@id/titleBar" |
| | | android:background="#ffffff" |
| | | android:orientation="vertical" |
| | | android:visibility="visible"> |
| | | android:visibility="gone"> |
| | | |
| | | <TextView |
| | | android:layout_width="match_parent" |
| | |
| | | |
| | | <LinearLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:orientation="vertical"> |
| | | |
| | | <LinearLayout |
| | |
| | | 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 |
| | |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:layout_weight="1" |
| | | android:text="水量:123123" |
| | | android:text="电话:123123" |
| | | android:textSize="14sp" /> |
| | | |
| | | <TextView |
| | |
| | | |
| | | <variable |
| | | name="activity" |
| | | type="com.dayu.qihealonelibrary.activity.ReplacementActivityQHAlone" /> |
| | | type="com.dayu.qihealonelibrary.activity.ReplacementActivity" /> |
| | | |
| | | </data> |
| | | |