From 1ffa3cb19f95855d44fbc9485f4eb3286b12e359 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期三, 22 十一月 2023 12:43:17 +0800 Subject: [PATCH] 修改提示方式 修改充值流程 --- app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java | 6 app/src/main/java/com/dayu/recharge/activity/MyActivity.java | 13 app/src/main/res/layout/activity_admin_setup.xml | 58 - app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java | 59 ++ app/src/main/java/com/dayu/recharge/utils/ToastUtil.java | 16 app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java | 43 app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java | 4 app/src/main/java/com/dayu/recharge/tools/WriteCardUtils.java | 30 + app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java | 71 ++ app/src/main/res/layout/activity_recharge.xml | 157 ++++ app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java | 417 ++++++-------- app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java | 10 app/src/main/java/com/dayu/recharge/view/PassWordDialog.java | 5 app/src/main/res/values/colors.xml | 1 app/src/main/java/com/dayu/recharge/activity/SysActivity.java | 6 app/src/main/res/layout/text_dialog.xml | 54 + app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java | 24 app/src/main/java/com/dayu/recharge/activity/DomainActivity.java | 12 app/src/main/java/com/dayu/recharge/activity/RechargeDetail.java | 81 ++ app/src/main/res/layout/activity_my.xml | 2 app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java | 133 ++++ app/src/main/res/layout/activity_recharge_detail.xml | 80 ++ app/src/main/java/com/dayu/recharge/view/TipDialog.java | 91 +++ app/src/main/java/com/dayu/recharge/activity/ElectricPriceActivity.java | 6 app/src/main/res/layout/activity_new_card.xml | 4 app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java | 49 + app/src/main/java/com/dayu/recharge/activity/PowerActivity.java | 6 app/src/main/AndroidManifest.xml | 12 app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java | 4 app/src/main/java/com/dayu/recharge/activity/HomeActivity.java | 21 app/src/main/java/com/dayu/recharge/MyApplication.java | 15 app/src/main/java/com/dayu/recharge/net/SocketNet.java | 32 app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java | 29 app/src/main/java/com/dayu/recharge/utils/TipUtil.java | 38 + app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java | 5 app/src/main/res/layout/activity_home.xml | 2 app/src/main/java/com/dayu/recharge/view/EdtDialog.java | 6 app/src/main/java/com/dayu/recharge/dbBean/RechargeBean.java | 30 app/src/main/res/layout/activity_red_card.xml | 6 39 files changed, 1,158 insertions(+), 480 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9d92012..a680c04 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -78,7 +78,14 @@ <activity android:name=".activity.PassWordActivity" /> <activity android:name=".activity.MyActivity" /> - <activity android:name=".activity.RechargeActivity" /> + <activity + android:name=".activity.RechargeActivity" + android:launchMode="singleTop"> + <intent-filter> + <action android:name="android.nfc.action.TAG_DISCOVERED" /> + <data android:mimeType="text/plain" /> + </intent-filter> + </activity> <activity android:name=".activity.ReadCardAcitivy" @@ -106,7 +113,8 @@ <activity android:name=".activity.DomainActivity" /> <activity android:name=".activity.ElectricPriceActivity" /> <activity android:name=".activity.IdentifyingActivity" /> - <activity android:name=".activity.ReplacementActivity"/> + <activity android:name=".activity.ReplacementActivity" /> + <activity android:name=".activity.RechargeDetail" /> <meta-data diff --git a/app/src/main/java/com/dayu/recharge/MyApplication.java b/app/src/main/java/com/dayu/recharge/MyApplication.java index 2b4e13f..eac3399 100644 --- a/app/src/main/java/com/dayu/recharge/MyApplication.java +++ b/app/src/main/java/com/dayu/recharge/MyApplication.java @@ -9,9 +9,9 @@ import com.dayu.recharge.dao.BaseDaoSingleton; import com.dayu.recharge.dbBean.DeviceNumber; import com.dayu.recharge.dbBean.IpBean; +import com.dayu.recharge.utils.ToastUtil; import com.easysocket.EasySocket; import com.easysocket.config.EasySocketOptions; -import com.easysocket.connection.action.SocketStatus; import com.easysocket.entity.SocketAddress; import com.tencent.bugly.crashreport.CrashReport; import com.dayu.recharge.net.ScoketMessageProtocol; @@ -26,8 +26,7 @@ import com.dayu.recharge.utils.AidlUtil; import com.dayu.recharge.utils.CRC8; import com.dayu.recharge.utils.SocketUtil; -import com.dayu.recharge.utils.ToastUtil; -import com.dayu.recharge.utils.WSHelper; +import com.dayu.recharge.utils.TipUtil; import java.util.Arrays; @@ -100,7 +99,7 @@ createSocket(msg.obj + "", ipBean.getPort()); break; case 2: - ToastUtil.show(MyApplication.this, "DNS瑙f瀽澶辫触"); + ToastUtil.show("DNS瑙f瀽澶辫触"); break; } @@ -186,14 +185,14 @@ BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().insert(deviceNumber); // WSHelper.getInstance(MyApplication.this).put("initCode", initCode); - ToastUtil.show(MyApplication.this, "鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�"); + ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�"); } else { //鏍¢獙CRC閿欒 - ToastUtil.show(MyApplication.this, "纭鏀跺埌娉ㄥ唽鎶ユ枃鐘舵�佸け璐�"); + ToastUtil.show("纭鏀跺埌娉ㄥ唽鎶ユ枃鐘舵�佸け璐�"); } } else { //鏍¢獙CRC閿欒 - ToastUtil.show(MyApplication.this, "纭鏀跺埌娉ㄥ唽鎶ユ枃鏍¢獙CRC閿欒"); + ToastUtil.show("纭鏀跺埌娉ㄥ唽鎶ユ枃鏍¢獙CRC閿欒"); } } @@ -203,7 +202,7 @@ } }); } else {//鏍¢獙CRC閿欒 - ToastUtil.show(MyApplication.this, "鍏呭�肩鐞嗘敞鍐屾姤鏂囨牎楠孋RC閿欒"); + ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囨牎楠孋RC閿欒"); } } diff --git a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java index 91d6565..cfac406 100644 --- a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java @@ -12,7 +12,7 @@ import com.dayu.recharge.databinding.ActivityAdminSetupBinding; import com.dayu.recharge.dbBean.AdminDataBean; import com.dayu.recharge.dbBean.IpBean; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.utils.TipUtil; import com.example.pickerviewlibrary.picker.TeaPickerView; import com.example.pickerviewlibrary.picker.entity.PickerData; import com.example.pickerviewlibrary.picker.listener.OnPickerClickListener; @@ -54,19 +54,21 @@ adminBinding.setupOk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (!TextUtils.isEmpty(adminBinding.adminName.getText().toString()) - && !TextUtils.isEmpty(adminBinding.adminPhone.getText().toString()) - && !TextUtils.isEmpty(adminData.getCun()) + if (!TextUtils.isEmpty(adminData.getCun()) && !TextUtils.isEmpty(adminBinding.adminSerial.getText().toString()) ) { if (Integer.valueOf(adminBinding.adminSerial.getText().toString()) <= 16777215) { - adminData.setName(adminBinding.adminName.getText().toString()); - adminData.setPhone(adminBinding.adminPhone.getText().toString()); + adminBinding.adminAddressCode.setText(adminData.getAddressCode()); adminData.setSerial(adminBinding.adminSerial.getText().toString()); baseDao.adminDao().insert(adminData); MyApplication.myApplication.initEasySocket(false, null); - ToastUtil.show(AdminSetupActivity.this, "璁剧疆鎴愬姛"); + TipUtil.show(AdminSetupActivity.this, "璁剧疆鎴愬姛", new TipUtil.TipListener() { + @Override + public void onCancle() { + AdminSetupActivity.this.finish(); + } + }); setData(); IpBean ipBean = baseDao.ipDao().findFirst(); if (ipBean != null) { @@ -74,10 +76,10 @@ } } else { - ToastUtil.show(AdminSetupActivity.this, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215"); + TipUtil.show(AdminSetupActivity.this, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215"); } } else { - ToastUtil.show(AdminSetupActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�"); + TipUtil.show(AdminSetupActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�"); } } }); @@ -108,8 +110,7 @@ if (adminData != null) { this.adminData = adminData; adminBinding.adminSerial.setText(adminData.getSerial()); - adminBinding.adminPhone.setText(adminData.getPhone()); - adminBinding.adminName.setText(adminData.getName()); + adminBinding.adminAddressCode.setText(adminData.getAddressCode()); adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun()); } else { adminBinding.adminSerial.setText("12" + generateUniqueNumber(getSN())); @@ -151,6 +152,7 @@ adminData.setAddressCode(pickerData.getSecondText().getCode()); } adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun()); + adminBinding.adminAddressCode.setText(adminData.getAddressCode()); pickerView.dismiss(); } }); diff --git a/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java b/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java index 5b1e40b..a27aa80 100644 --- a/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java @@ -9,8 +9,16 @@ import android.content.Context; import android.content.Intent; import android.nfc.NfcAdapter; +import android.os.Handler; +import android.os.Message; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.card.UserCard; +import com.dayu.recharge.tools.NfcReadHelper; +import com.dayu.recharge.utils.TipUtil; +import com.tencent.bugly.crashreport.CrashReport; + +import java.util.List; +import java.util.Map; /** * Author:Created by Ricky on 2017/8/25. @@ -22,8 +30,27 @@ * 灏哊FC鏍囩鍗¢潬杩戞墜鏈哄悗閮紙NFC鏍囩鍗″彲缃戜笂鑷璐拱锛� */ public class BaseNfcActivity extends BaseActivity { + + /** + * 璇ュ崱宸插啓鍏ョ敤鎴蜂俊鎭� + */ + public final static int HAS_USER = 1; + /** + * 璇ュ崱鏈啓鍏ョ敤鎴蜂俊鎭� + */ + public final static int NO_USER = 2; + /** + * 鍏呭�� + */ + public final static int RECHARGE = 3; + + public final static int ERROR = -1; + protected NfcAdapter mNfcAdapter; private PendingIntent mPendingIntent; + + volatile UserCard userCard; + Handler handler; /** * onCreat->onStart->onResume->onPause->onStop->onDestroy @@ -71,13 +98,51 @@ */ protected Boolean ifNFCUse(Context context) { if (mNfcAdapter == null) { - ToastUtil.show(context, "璁惧涓嶆敮鎸丯FC锛�"); + TipUtil.show(context, "璁惧涓嶆敮鎸丯FC锛�"); return false; } if (mNfcAdapter != null && !mNfcAdapter.isEnabled()) { - ToastUtil.show(context, "璇峰湪绯荤粺璁剧疆涓厛鍚敤NFC鍔熻兘锛�"); + TipUtil.show(context, "璇峰湪绯荤粺璁剧疆涓厛鍚敤NFC鍔熻兘锛�"); return false; } return true; } + + /** + * 璇诲彇鍏ㄩ儴鏁版嵁 + */ + public void readAllData(Intent intent) { + try { + NfcReadHelper.getInstence(intent) + .getAllData(new NfcReadHelper.NFCCallListback() { + @Override + public void callBack(Map<String, List<byte[]>> data) { + Message message = new Message(); +// 鑾峰彇1鎵囧尯鏁版嵁 + List<byte[]> oneSector = data.get("1"); + if (oneSector != null && oneSector.size() > 0) { + userCard = UserCard.getBean(oneSector); + message.what = RECHARGE; + } else { + message.what = ERROR; + } + if (handler != null) { + handler.sendMessage(message); + } + } + + @Override + public void error(int code) { + if (handler != null) { + Message message = new Message(); + message.what = ERROR; + handler.sendMessage(message); + } + } + }); + } catch (Exception e) { + e.printStackTrace(); + CrashReport.postCatchedException(e); + } + } } diff --git a/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java b/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java index 9c15735..7cf1cae 100644 --- a/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java @@ -7,7 +7,7 @@ import com.dayu.recharge.databinding.ActivityDomainBinding; import com.dayu.recharge.dbBean.DomainBean; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.utils.TipUtil; /** * Created by Android Studio. @@ -34,27 +34,27 @@ String port = binding.port.getText().toString(); int portInt = 0; if (TextUtils.isEmpty(domainNumber)) { - ToastUtil.show("璇疯緭鍏ユ纭殑鍩熷悕搴忓彿"); + TipUtil.show("璇疯緭鍏ユ纭殑鍩熷悕搴忓彿"); return; } if (TextUtils.isEmpty(port)) { - ToastUtil.show("璇疯緭鍏ユ纭殑绔彛鍙�"); + TipUtil.show("璇疯緭鍏ユ纭殑绔彛鍙�"); return; } else { portInt = Integer.valueOf(port); } if (TextUtils.isEmpty(domain)) { - ToastUtil.show("璇疯緭鍏ュ煙鍚�"); + TipUtil.show("璇疯緭鍏ュ煙鍚�"); return; } else if (portInt <= 0 || portInt > 65535) { - ToastUtil.show("璇疯緭鍏ユ纭殑绔彛鍙�"); + TipUtil.show("璇疯緭鍏ユ纭殑绔彛鍙�"); return; } domainBean.setDomainNumber(domainNumber); domainBean.setDomain(domain); domainBean.setPort(portInt); baseDao.domainPortDao().insert(domainBean); - ToastUtil.show("淇濆瓨鎴愬姛"); + TipUtil.show("淇濆瓨鎴愬姛"); initData(); } }); diff --git a/app/src/main/java/com/dayu/recharge/activity/ElectricPriceActivity.java b/app/src/main/java/com/dayu/recharge/activity/ElectricPriceActivity.java index a49d247..d98ecd5 100644 --- a/app/src/main/java/com/dayu/recharge/activity/ElectricPriceActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/ElectricPriceActivity.java @@ -7,7 +7,7 @@ import com.dayu.recharge.databinding.ActivityElectricPriceBinding; import com.dayu.recharge.dbBean.ElectricPriceBean; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.utils.TipUtil; /** * Copyright (C), 2023, @@ -33,10 +33,10 @@ if (!TextUtils.isEmpty(electricPriceBinding.electricNewNum.getText())) { electricPriceBean.setPrice(Float.parseFloat(electricPriceBinding.electricNewNum.getText().toString())); baseDao.electricPriceDao().insert(electricPriceBean); - ToastUtil.show("淇濆瓨鎴愬姛"); + TipUtil.show("淇濆瓨鎴愬姛"); initData(); } else { - ToastUtil.show("璇疯緭鍏ユ纭噾棰�"); + TipUtil.show("璇疯緭鍏ユ纭噾棰�"); } } }); diff --git a/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java b/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java index ea32a72..cfa7ada 100644 --- a/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java @@ -8,7 +8,7 @@ import com.dayu.recharge.databinding.ActivityHomeBinding; import com.dayu.recharge.dbBean.AdminDataBean; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.utils.TipUtil; import com.permissionx.guolindev.PermissionX; @@ -20,12 +20,13 @@ */ public class HomeActivity extends BaseActivity { - + public static HomeActivity homeActivity; ActivityHomeBinding homeBinding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + homeActivity = this; homeBinding = ActivityHomeBinding.inflate(LayoutInflater.from(this)); setContentView(homeBinding.getRoot()); initView(); @@ -52,11 +53,11 @@ homeBinding.homeNewCard.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - AdminDataBean adminData= baseDao.adminDao().findFirst(); - if (adminData!=null){ + AdminDataBean adminData = baseDao.adminDao().findFirst(); + if (adminData != null) { startActivity(new Intent(HomeActivity.this, NewCardActivity.class)); - }else { - ToastUtil.show("璇峰厛璁剧疆绠$悊鍛樹俊鎭�"); + } else { + TipUtil.show("璇峰厛璁剧疆绠$悊鍛樹俊鎭�"); } } @@ -64,7 +65,13 @@ homeBinding.homeRecharge.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - startActivity(new Intent(HomeActivity.this, RechargeActivity.class)); + AdminDataBean adminData = baseDao.adminDao().findFirst(); + if (adminData != null) { + startActivity(new Intent(HomeActivity.this, RechargeActivity.class)); + } else { + TipUtil.show("璇峰厛璁剧疆绠$悊鍛樹俊鎭�"); + } + } }); homeBinding.homeRedCard.setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java b/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java index 77d30e1..58821bd 100644 --- a/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java @@ -7,7 +7,7 @@ import com.dayu.recharge.databinding.ActivityIdentyfyingBinding; import com.dayu.recharge.dbBean.IdentityBean; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.utils.TipUtil; /** * Created by Android Studio. @@ -41,9 +41,9 @@ if (!TextUtils.isEmpty(data)){ myIdentityBean.setIdentity(binding.electricOldNumber.getText().toString()); baseDao.identityDao().insert(myIdentityBean); - ToastUtil.show("淇濆瓨鎴愬姛"); + TipUtil.show("淇濆瓨鎴愬姛"); }else { - ToastUtil.show("璇疯緭鍏ュ崱鏍囪瘑"); + TipUtil.show("璇疯緭鍏ュ崱鏍囪瘑"); } } diff --git a/app/src/main/java/com/dayu/recharge/activity/MyActivity.java b/app/src/main/java/com/dayu/recharge/activity/MyActivity.java index 758307a..0e9a60f 100644 --- a/app/src/main/java/com/dayu/recharge/activity/MyActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/MyActivity.java @@ -16,8 +16,7 @@ import com.dayu.recharge.net.SocketNet; import com.dayu.recharge.utils.DeviceNumberUtils; import com.dayu.recharge.utils.ExcelUtil; -import com.dayu.recharge.utils.ToastUtil; -import com.dayu.recharge.utils.WSHelper; +import com.dayu.recharge.utils.TipUtil; import com.dayu.recharge.view.PassWordDialog; import com.dayu.recharge.view.datepicker.CustomDatePicker; import com.dayu.recharge.view.datepicker.DateFormatUtils; @@ -143,7 +142,7 @@ String[] title; String fileName; if (listData == null || listData.size() == 0) { - ToastUtil.show(MyActivity.this, "璁板綍涓虹┖"); + TipUtil.show(MyActivity.this, "璁板綍涓虹┖"); return; } if (isRechargeList) { @@ -180,11 +179,11 @@ try { adminData = baseDao.adminDao().findFirst(); if (adminData != null) { - myBinding.myAdminName.setText(adminData.getName()); + myBinding.myAdminName.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun()); myBinding.myVillageNum.setText(adminData.getSerial()); } else { - myBinding.myAdminName.setText("璇风偣鍑荤鐞嗗憳璁剧疆"); - myBinding.myVillageNum.setText("璇风偣鍑荤鐞嗗憳璁剧疆"); + myBinding.myAdminName.setText("璇风偣鍑诲湴鍧�淇℃伅璁剧疆"); + myBinding.myVillageNum.setText("璇风偣鍑诲湴鍧�淇℃伅璁剧疆"); } StringBuilder msgData = new StringBuilder(); if (MyApplication.myApplication.isConncet) { @@ -239,7 +238,7 @@ public void onTimeSelected(long timestamp) { endTime = timestamp; if ((endTime < beginTime) && endTime != beginTime) { - ToastUtil.show(MyActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�"); + TipUtil.show(MyActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�"); } else { try { endTime = endTime + (1000 * 60 * 60 * 24) - 1; diff --git a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java index 5355d4f..eef5996 100644 --- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java @@ -6,6 +6,7 @@ import android.os.Message; import android.text.TextUtils; import android.view.LayoutInflater; +import android.widget.Toast; import com.dayu.recharge.MyApplication; @@ -21,7 +22,6 @@ import com.dayu.recharge.card.UserCard; import com.dayu.recharge.databinding.ActivityWriteTextBinding; import com.dayu.recharge.dbBean.AdminDataBean; -import com.dayu.recharge.dbBean.DeviceNumber; import com.dayu.recharge.dbBean.ElectricPriceBean; import com.dayu.recharge.dbBean.RechargeBean; import com.dayu.recharge.dbBean.UserCardBean; @@ -34,20 +34,18 @@ import com.dayu.recharge.tools.HexUtil; import com.dayu.recharge.tools.NFCWriteHelper; import com.dayu.recharge.tools.NfcReadHelper; +import com.dayu.recharge.tools.WriteCardUtils; import com.dayu.recharge.utils.AidlUtil; import com.dayu.recharge.utils.CRC8; import com.dayu.recharge.utils.DateUtil; import com.dayu.recharge.utils.DeviceNumberUtils; import com.dayu.recharge.utils.MornyUtil; import com.dayu.recharge.utils.SocketUtil; -import com.dayu.recharge.utils.ToastUtil; -import com.dayu.recharge.utils.WSHelper; +import com.dayu.recharge.utils.TipUtil; import com.tencent.bugly.crashreport.CrashReport; import java.util.Arrays; import java.util.Calendar; -import java.util.List; -import java.util.Map; /** * Copyright (C), 2023, @@ -57,21 +55,6 @@ */ public class NFCWreatActivity extends BaseNfcActivity { - - /** - * 璇ュ崱宸插啓鍏ョ敤鎴蜂俊鎭� - */ - public final static int HAS_USER = 1; - /** - * 璇ュ崱鏈啓鍏ョ敤鎴蜂俊鎭� - */ - public final static int NO_USER = 2; - /** - * 鍏呭�� - */ - public final static int RECHARGE = 3; - - public final static int ERROR = -1; boolean cleanFlag = false; boolean userFlag = false; @@ -92,6 +75,7 @@ String morny; + String userName; AdminDataBean adminData; RechargeBean rechargeBean; Intent intent; @@ -99,7 +83,6 @@ RegisteredCard registeredCard; CleanUserCard cleanUserCard; - volatile UserCard userCard; ManageCard manageCard; DomainCard domainCard; @@ -116,6 +99,11 @@ * 鏄惁鏄敤鎴峰崱锛屽亣濡傛槸鐢ㄦ埛鍗$殑璇濋渶瑕佹娴嬪崱鐗囨槸鍚﹀凡缁忓紑杩囨埛锛屽亣濡傚凡寮�鎴峰垯鎶ラ敊涓嶈兘鍐嶅啓鍗� */ boolean isUser = false;// + + //鏄惁鏄厖鍊艰繃绋� + boolean isRecharge = false; + //鍏呭�奸�氫俊鏄惁瀹屾垚 + boolean rechargeIsOk = false; ActivityWriteTextBinding binding; @Override @@ -124,7 +112,7 @@ try { binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this)); setContentView(binding.getRoot()); - + initView(); nfcWreatActivity = this; getData(); baseApp = (MyApplication) getApplication(); @@ -134,12 +122,36 @@ } } + private void initView() { + handler = new Handler(new Handler.Callback() { + @Override + public boolean handleMessage(Message msg) { + switch (msg.what) { + + case HAS_USER://鍒ゆ柇宸插啓鍏ョ敤鎴� + binding.textView.setText("璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖"); + binding.textView.setTextColor(getResources().getColor(R.color.red)); + stopAnim(); + break; + case NO_USER://娌℃湁鍐欒繃鐢ㄦ埛缁х画淇濆瓨 + saveData(); + break; + default: + stopAnim(); + TipUtil.show(NFCWreatActivity.this, "鍗$墖璇诲彇澶辫触"); + break; + + } + return false; + } + }); + } + private void getData() { try { if (this.getIntent().hasExtra("userCard")) { userCard = (UserCard) this.getIntent().getSerializableExtra("userCard"); - isUser = true; } if (this.getIntent().hasExtra("cleanCard")) { cleanCard = (CleanCard) this.getIntent().getSerializableExtra("cleanCard"); @@ -155,6 +167,7 @@ } if (this.getIntent().hasExtra("dbUserCard")) { userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("dbUserCard"); + isUser = true; } if (this.getIntent().hasExtra("cleanUserCard")) { cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard"); @@ -177,8 +190,13 @@ binding.cardData.setText("鍒朵綔閰嶇疆姘存车鍔熺巼鍗�"); } if (this.getIntent().hasExtra("morny")) { + startAnim(); + isRecharge = true; morny = this.getIntent().getStringExtra("morny"); + userName = this.getIntent().getStringExtra("userName"); binding.cardData.setText("鍏呭�奸噾棰濓細" + morny + "鍏�"); + // 鍏呭�奸�昏緫 + recharge(userCard.getInitPeasantCode(), userName, "鍚敤"); } try { @@ -239,8 +257,8 @@ || domainCard != null || testCard != null || configureDeviceRegistrationCrad != null || configurationPowerCard != null) { - if (userCard != null) { - setUser(intent, userCard); + if (userCard != null && TextUtils.isEmpty(morny)) { + userFlag = WriteCardUtils.setUser(intent, userCard); } if (cleanCard != null) { setClean(intent, cleanCard); @@ -269,19 +287,14 @@ if ((configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag)) { try { if (userFlag && userCardBean != null) { - - ToastUtil.show(this, "娉ㄥ唽鎴愬姛"); - NFCWreatActivity.this.finish(); - if (NewCardActivity.newCardActivity != null) { - NewCardActivity.newCardActivity.finish(); - } - + //鐢ㄦ埛鍗� + startDetailActivity(userCardBean.getUserName(), "鍚敤"); } else if (!TextUtils.isEmpty(morny)) { NFCWreatActivity.this.finish(); - ToastUtil.show(this, "鍏呭�兼垚鍔�"); + TipUtil.show("鍏呭�兼垚鍔�"); } else { NFCWreatActivity.this.finish(); - ToastUtil.show(this, "鍐欏崱鎴愬姛"); + TipUtil.show("鍐欏崱鎴愬姛"); } } catch (Exception e) { @@ -289,17 +302,19 @@ CrashReport.postCatchedException(e); } } else { - ToastUtil.show(this, "鍐欏崱澶辫触"); + TipUtil.show("鍐欏崱澶辫触"); } stopAnim(); - } else if (!TextUtils.isEmpty(morny)) { - readAllData(intent); - } else if (userCard == null && userCardBean != null) { + } +// else if (!TextUtils.isEmpty(morny)) { +// +// } + else if (userCard == null && userCardBean != null) { //琛ュ崱閫昏緫 selectBalance(userCardBean.getInitPeasantCode()); } else { stopAnim(); - ToastUtil.show(this, "鍙傛暟閿欒"); + TipUtil.show(this, "鍙傛暟閿欒"); } } catch (Exception e) { e.printStackTrace(); @@ -309,11 +324,19 @@ @Override public void onNewIntent(Intent intent) { + super.onNewIntent(intent); try { this.intent = intent; startAnim(); if (isUser) { checkHasUser(); + } else if (isRecharge) { + if (rechargeIsOk) { + rechargeWrratCard(); + } else { + Toast.makeText(this, "姝e湪閫氫俊璇风◢鍚�", Toast.LENGTH_SHORT).show(); + } + } else { saveData(); } @@ -322,65 +345,6 @@ CrashReport.postCatchedException(e); } } - - - /** - * 璇诲彇鍏ㄩ儴鏁版嵁 - */ - private void readAllData(Intent intent) { - try { - NfcReadHelper.getInstence(intent) - .getAllData(new NfcReadHelper.NFCCallListback() { - @Override - public void callBack(Map<String, List<byte[]>> data) { - Message message = new Message(); -// 鑾峰彇1鎵囧尯鏁版嵁 - List<byte[]> oneSector = data.get("1"); - if (oneSector != null && oneSector.size() > 0) { - userCard = UserCard.getBean(oneSector); - message.what = RECHARGE; - } else { - message.what = ERROR; - } - handler.sendMessage(message); - } - - @Override - public void error(int code) { - Message message = new Message(); - message.what = ERROR; - handler.sendMessage(message); - } - }); - } catch (Exception e) { - e.printStackTrace(); - CrashReport.postCatchedException(e); - } - } - - Handler handler = new Handler(new Handler.Callback() { - @Override - public boolean handleMessage(Message msg) { - switch (msg.what) { - - case HAS_USER://鍒ゆ柇宸插啓鍏ョ敤鎴� - ToastUtil.show(NFCWreatActivity.this, "璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖"); - break; - case NO_USER://娌℃湁鍐欒繃鐢ㄦ埛缁х画淇濆瓨 - saveData(); - break; - case RECHARGE://鍏呭�兼祦绋� - selectBalance(userCard.getInitPeasantCode()); - break; - default: - stopAnim(); - ToastUtil.show(NFCWreatActivity.this, "鍗$墖璇诲彇澶辫触"); - break; - - } - return false; - } - }); /** @@ -426,7 +390,7 @@ //鍏呭�间笂浼狅紙Socket锛� - private void recharge(String initPeasantCode) { + private void recharge(String initPeasantCode, String name, String statu) { try { RechargeRequestBean rechargeRequestBean = new RechargeRequestBean(); rechargeRequestBean.setControl("01"); @@ -436,46 +400,61 @@ rechargeRequestBean.setAFN("95"); rechargeRequestBean.setInitPeasantCode(initPeasantCode); rechargeRequestBean.setBalance(morny); + rechargeRequestBean.setOrderId(SocketUtil.getOrderId(NFCWreatActivity.this)); SocketNet.getInstance().sendTestMessage(rechargeRequestBean.pack(), new SocketCallBack() { @Override public void onSocketResponse(SocketData readData) { + //閲戦 + byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7); + int balance = SocketUtil.get16to10LowHigh(blanceByte); + //濮撳悕 + byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19); + userName = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte)); + byte[] orderByte = Arrays.copyOfRange(readData.getBodyBytes(), 19, 27); + String orderId = BcdUtil.bcdToStr(orderByte); if (CRC8.isCRC8(readData.getOriginDataBytes())) { String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]); //00鍚敤01绂佺敤02闅跺睘淇℃伅涓嶇03鏃犳鍗′俊鎭�04鍏跺畠 if ("00".equalsIgnoreCase(state)) { + rechargeIsOk = true; + binding.cardData.setText("鍏呭�奸�氫俊瀹屾垚锛岃甯栧崱鍏呭��"); + rechargeBean = new RechargeBean(); + rechargeBean.setDate(System.currentTimeMillis()); + rechargeBean.setMorny(morny); + rechargeBean.setUserName(name); + + rechargeBean.setSerial(adminData.getSerial()); + userCard.setRechargeDate(Calendar.getInstance()); + rechargeBean.setBalance(MornyUtil.changeF2Y(balance + MornyUtil.changeY2F(morny)) + ""); + rechargeBean.setInitPeasantCode(initPeasantCode); + rechargeBean.setOrderID(orderId); try { baseDao.rechargeDao().insert(rechargeBean); } catch (Exception e) { e.printStackTrace(); } userCard.setRechargeTimes(userCard.getRechargeTimes() + 1); - setUser(intent, userCard); - // 鎵撳嵃鐩稿叧 - setPrinterData(rechargeBean); - ToastUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛"); - RechargeActivity.rechargeActivity.finish(); - NFCWreatActivity.nfcWreatActivity.finish(); } else if ("01".equalsIgnoreCase(state)) { + userCard.setState("01"); + userFlag = WriteCardUtils.setUser(intent, userCard); NFCWreatActivity.this.finish(); - ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-绂佺敤"); + TipUtil.show("鍏呭�兼姤鏂囬敊璇�-绂佺敤"); } else if ("02".equalsIgnoreCase(state)) { - ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-闅跺睘淇℃伅涓嶇"); + TipUtil.show("鍏呭�兼姤鏂囬敊璇�-闅跺睘淇℃伅涓嶇"); NFCWreatActivity.this.finish(); } else if ("03".equalsIgnoreCase(state)) { - ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-鏃犳鍗′俊鎭�"); + TipUtil.show("鍏呭�兼姤鏂囬敊璇�-鏃犳鍗′俊鎭�"); NFCWreatActivity.this.finish(); } else { - ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-鍏跺畠"); + TipUtil.show("鍏呭�兼姤鏂囬敊璇�-鍏跺畠"); NFCWreatActivity.this.finish(); } - - } else { //鏍¢獙CRC閿欒 - ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇牎楠孋RC閿欒"); + TipUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇牎楠孋RC閿欒"); NFCWreatActivity.this.finish(); } stopAnim(); @@ -484,7 +463,7 @@ @Override public void onSocketError(int code, String msg) { stopAnim(); - ToastUtil.show(NFCWreatActivity.this, msg); + TipUtil.show(NFCWreatActivity.this, msg); } }); } catch (Exception e) { @@ -494,13 +473,31 @@ } - private void setmanageCard(Intent intent, final ManageCard manageCard) { - NFCWriteHelper.getInstence(intent).writeData(manageCard.toZeroByte(), 1, 0, new NFCWriteHelper.NFCCallback() { - @Override - public void isSusses(boolean flag) { - manageCardFlag = flag; + //寰�鍗″唴鍐欏厖鍊煎悗鐨勬暟鎹� + private void rechargeWrratCard() { + UserCard userCardold = NfcReadHelper.getInstence(intent).getUserCardData(); + if (userCardold != null) { + //鍒ゆ柇鏄惁鍏呭�肩殑鏄竴涓崱 + if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode())) { + userCard.setState("00"); + userFlag = WriteCardUtils.setUser(intent, userCard); + // 鎵撳嵃鐩稿叧 + if (userFlag) { + setPrinterData(rechargeBean); + startDetailActivity(userName, "鍚敤"); + } else { + TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶆柊鍐嶈瘯"); + } + } else { + TipUtil.show(NFCWreatActivity.this, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�"); } - }); + } else { + + } + } + + private void setmanageCard(Intent intent, final ManageCard manageCard) { + manageCardFlag = NFCWriteHelper.getInstence(intent).writeData(manageCard.toZeroByte(), 1, 0); } /** @@ -510,41 +507,9 @@ * @param clearOrInitCard */ private void setClean(Intent intent, final CleanCard clearOrInitCard) { - NFCWriteHelper.getInstence(intent).writeData(clearOrInitCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() { - @Override - public void isSusses(boolean flag) { - cleanFlag = flag; - } - }); + cleanFlag = NFCWriteHelper.getInstence(intent).writeData(clearOrInitCard.toByte(), 1, 0); } - //鍚戝崱鍐欏叆鐢ㄦ埛淇℃伅 - private void setUser(Intent intent, UserCard userCard) { - NFCWriteHelper.getInstence(intent).writeData(userCard.getZeroBytes(), 1, 0, new NFCWriteHelper.NFCCallback() { - @Override - public void isSusses(boolean flag) { - userFlag = flag; - } - }); - if (!userFlag) { - return; - } - NFCWriteHelper.getInstence(intent).writeData(userCard.getOneBytes(), 1, 1, new NFCWriteHelper.NFCCallback() { - @Override - public void isSusses(boolean flag) { - userFlag = flag; - } - }); - if (!userFlag) { - return; - } - NFCWriteHelper.getInstence(intent).writeData(userCard.getTwoBytes(), 1, 2, new NFCWriteHelper.NFCCallback() { - @Override - public void isSusses(boolean flag) { - userFlag = flag; - } - }); - } /** * 閲嶆柊娉ㄥ唽璁惧鍗� @@ -553,12 +518,7 @@ * @param registeredCard */ private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) { - NFCWriteHelper.getInstence(intent).writeData(registeredCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() { - @Override - public void isSusses(boolean flag) { - registeredFlag = flag; - } - }); + registeredFlag = NFCWriteHelper.getInstence(intent).writeData(registeredCard.toByte(), 1, 0); } /** @@ -568,12 +528,7 @@ * @param cleanUserCard */ private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) { - NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() { - @Override - public void isSusses(boolean flag) { - cleanUserCardFlag = flag; - } - }); + cleanUserCardFlag = NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0); } /** @@ -584,30 +539,15 @@ */ private void setDomainCard(Intent intent, DomainCard domainCard) { try { - NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0, new NFCWriteHelper.NFCCallback() { - @Override - public void isSusses(boolean flag) { - domainCrdFlag = flag; - } - }); + domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0); if (!domainCrdFlag) { return; } - NFCWriteHelper.getInstence(intent).writeData(domainCard.getOneByte(), 1, 1, new NFCWriteHelper.NFCCallback() { - @Override - public void isSusses(boolean flag) { - domainCrdFlag = flag; - } - }); + domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getOneByte(), 1, 1); if (!domainCrdFlag) { return; } - NFCWriteHelper.getInstence(intent).writeData(domainCard.getTwoByte(), 1, 2, new NFCWriteHelper.NFCCallback() { - @Override - public void isSusses(boolean flag) { - domainCrdFlag = flag; - } - }); + domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getTwoByte(), 1, 2); } catch (Exception e) { domainCrdFlag = false; throw new RuntimeException(e); @@ -615,38 +555,41 @@ } private void setTestCard(Intent intent, TestCard testCard) { - NFCWriteHelper.getInstence(intent).writeData(testCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() { - @Override - public void isSusses(boolean flag) { - testCardFlag = flag; - } - }); + testCardFlag = NFCWriteHelper.getInstence(intent).writeData(testCard.toByte(), 1, 0); } private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) { - NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() { - @Override - public void isSusses(boolean flag) { - configDeviceRegiestFlag = flag; - } - }); + configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0); } private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) { try { - NFCWriteHelper.getInstence(intent).writeData(configurationPowerCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() { - @Override - public void isSusses(boolean flag) { - configPowerFlag = flag; - } - }); + configPowerFlag = NFCWriteHelper.getInstence(intent).writeData(configurationPowerCard.toByte(), 1, 0); } catch (Exception e) { configPowerFlag = false; throw new RuntimeException(e); } } + + private void startDetailActivity(String userName, String statu) { + Intent detail = new Intent(this, RechargeDetail.class); + detail.putExtra("userName", userName); + detail.putExtra("statu", statu); + detail.putExtra("userCard", userCard); + if (!TextUtils.isEmpty(morny)) { + detail.putExtra("morny", morny); + } + startActivity(detail); + if (NewCardActivity.newCardActivity != null) { + NewCardActivity.newCardActivity.finish(); + } + if (RechargeActivity.rechargeActivity != null) { + RechargeActivity.rechargeActivity.finish(); + } + NFCWreatActivity.nfcWreatActivity.finish(); + } /** * 鏌ヨ浣欓 @@ -672,7 +615,6 @@ try { stateText = new StringBuffer(); - stateText.append("鐘� 鎬侊細"); String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]); //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s if (userCard == null) { userCard = new UserCard(); @@ -691,57 +633,32 @@ userCard.setAddressCode(adminData.getAddressCode()); userCard.setInitPeasantCode(initPeasantCode); } - + //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊� + //閲戦 + byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7); + int balance = SocketUtil.get16to10LowHigh(blanceByte); + //濮撳悕 + byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19); + String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte)); if ("00".equals(state)) { - //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊� - //閲戦 - byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7); - int balance = SocketUtil.get16to10LowHigh(blanceByte); - //濮撳悕 - byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19); - String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte)); - userCard.setBalance(balance); - //涓巗ocket鏈嶅姟鍣ㄩ�氫俊鍚庤繘琛屽悗缁搷浣� - - if (!TextUtils.isEmpty(morny)) { - //鍏呭�� - rechargeBean = new RechargeBean(); - rechargeBean.setDate(System.currentTimeMillis()); - rechargeBean.setMorny(morny); - if (userCardBean != null) { - rechargeBean.setUserName(userCardBean.getUserName()); - } else { - rechargeBean.setUserName(name); - } - List<UserCardBean> userCardBeans = baseDao.userCardDao().findAll(); - String userId = ""; - if (userCardBeans != null) { - for (int i = 0; i < userCardBeans.size(); i++) { - if (initPeasantCode.equalsIgnoreCase(userCardBeans.get(i).getInitPeasantCode())) { - userId = userCardBeans.get(i).getUserID(); - } - } - } - rechargeBean.setSerial(adminData.getSerial()); - userCard.setRechargeDate(Calendar.getInstance()); - rechargeBean.setBalance(MornyUtil.changeF2Y(balance + MornyUtil.changeY2F(morny)) + ""); - rechargeBean.setUserId(userId); - recharge(initPeasantCode); - } else { - //琛ュ崱閫昏緫 - setUser(intent, userCard); - if (userFlag) { - NFCWreatActivity.this.finish(); - ToastUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛"); - } - } - stateText.append("鍚敤"); + userCard.setBalance(balance); + userCard.setState("00"); + //琛ュ崱閫昏緫 + userFlag = WriteCardUtils.setUser(intent, userCard); + if (userFlag) { + NFCWreatActivity.this.finish(); + TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛"); + } return; } else if ("01".equals(state)) { stateText.append("绂佺敤"); userCard.setState("01"); - setUser(intent, userCard); + userCard.setBalance(balance); + userFlag = WriteCardUtils.setUser(intent, userCard); + + startDetailActivity(name, stateText.toString()); + } else if ("02".equals(state)) { stateText.append("闅跺睘淇℃伅涓嶇"); } else if ("03".equals(state)) { @@ -749,21 +666,23 @@ } else if ("04".equals(state)) { stateText.append("鍏跺畠"); } - ToastUtil.show(NFCWreatActivity.this, stateText.toString()); + stopAnim(); + binding.cardData.setText(stateText); + TipUtil.show(NFCWreatActivity.this, stateText.toString()); } catch (Exception e) { e.printStackTrace(); stopAnim(); } } else { //鏍¢獙CRC閿欒 - ToastUtil.show(NFCWreatActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒"); + TipUtil.show(NFCWreatActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒"); } } @Override public void onSocketError(int code, String msg) { stopAnim(); - ToastUtil.show(NFCWreatActivity.this, msg); + TipUtil.show(NFCWreatActivity.this, msg); } }); } catch (Exception e) { diff --git a/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java b/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java index 0d0cc7d..007a915 100644 --- a/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java @@ -29,8 +29,7 @@ import com.dayu.recharge.tools.Utils; import com.dayu.recharge.utils.CRC8; import com.dayu.recharge.utils.SocketUtil; -import com.dayu.recharge.utils.ToastUtil; -import com.dayu.recharge.utils.WSHelper; +import com.dayu.recharge.utils.TipUtil; import com.permissionx.guolindev.PermissionX; import org.json.JSONException; @@ -67,7 +66,8 @@ } private void initView() { - newCardBinding.newCardId.setFilters(new InputFilter[] { new AlphaNumericXFilter(),new InputFilter.LengthFilter(18) }); + newCardBinding.newCardName.setFilters(new InputFilter[]{new ChineseInputFilter()}); + newCardBinding.newCardId.setFilters(new InputFilter[]{new AlphaNumericXFilter(), new InputFilter.LengthFilter(18)}); //韬唤璇佽瘑鍒� newCardBinding.newCardScanBtn.setOnClickListener(new View.OnClickListener() { @Override @@ -91,13 +91,13 @@ && !TextUtils.isEmpty(phone) && !TextUtils.isEmpty(userID) ) { if (userName.length() <= 1 || !validateName(userName)) { - ToastUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭鍚�"); + TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭鍚�"); return; } else if (phone.length() < 11) { - ToastUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭墜鏈哄彿"); + TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭墜鏈哄彿"); return; } else if (!Utils.check(userID)) { - ToastUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭韩浠借瘉鍙�"); + TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭韩浠借瘉鍙�"); return; } else { dialog = ProgressDialog.show(NewCardActivity.this, "", "姝e湪閫氫俊璇风◢鍚�", true, true); @@ -111,7 +111,7 @@ } } else { - ToastUtil.show(NewCardActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�"); + TipUtil.show(NewCardActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�"); } } }); @@ -146,7 +146,7 @@ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK){ + if (resultCode == RESULT_OK) { switch (requestCode) { case SCAN_IDCARD_REQUEST: String result = data.getStringExtra("OCRResult"); @@ -197,7 +197,7 @@ String initCode = DeviceNumberUtils.getDeviceNumber(); if (TextUtils.isEmpty(initCode)) { - ToastUtil.show(this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃"); + TipUtil.show(this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃"); IpBean ipBean = baseDao.ipDao().findFirst(); if (ipBean != null && adminData != null) { MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode()); @@ -259,21 +259,21 @@ intent.putExtra("dbUserCard", userCardBean); startActivity(intent); } else if (state.equalsIgnoreCase("01")) { - ToastUtil.show(NewCardActivity.this, "寮�鍗℃姤鏂�--韬唤璇佸凡娉ㄥ唽"); + TipUtil.show(NewCardActivity.this, "寮�鍗℃姤鏂�--韬唤璇佸凡娉ㄥ唽"); } else if (state.equalsIgnoreCase("02")) { - ToastUtil.show(NewCardActivity.this, "寮�鍗℃姤鏂�--鍏朵粬鍘熷洜澶辫触"); + TipUtil.show(NewCardActivity.this, "寮�鍗℃姤鏂�--鍏朵粬鍘熷洜澶辫触"); } } else { //鏍¢獙CRC閿欒 - ToastUtil.show(NewCardActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒"); + TipUtil.show(NewCardActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒"); } } @Override public void onSocketError(int code, String msg) { dialog.dismiss(); - ToastUtil.show(NewCardActivity.this, msg); + TipUtil.show(NewCardActivity.this, msg); } }); @@ -300,4 +300,27 @@ return null; // 鍏佽杈撳叆瀛楃 } } + + public class ChineseInputFilter implements InputFilter { + @Override + public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { + StringBuilder builder = new StringBuilder(); + for (int i = start; i < end; i++) { + char currentChar = source.charAt(i); + // 鍙厑璁告眽瀛� + if (isChineseCharacter(currentChar)) { + builder.append(currentChar); + } + } + return builder.toString(); + } + + private boolean isChineseCharacter(char c) { + // 杩欓噷浣跨敤Unicode鑼冨洿鍒ゆ柇鏄惁涓烘眽瀛� + // 姹夊瓧鐨刄nicode鑼冨洿鏄細0x4e00 - 0x9fa5 + return (c >= 0x4e00 && c <= 0x9fa5); + } + } + + } diff --git a/app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java b/app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java index d8cbaf1..e959fbb 100644 --- a/app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java @@ -5,12 +5,11 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; -import android.widget.AdapterView; import com.dayu.recharge.adapter.NewCardAdapter; import com.dayu.recharge.databinding.ActivityNewcardListBinding; import com.dayu.recharge.dbBean.UserCardBean; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.utils.TipUtil; import com.dayu.recharge.view.datepicker.CustomDatePicker; import com.dayu.recharge.view.datepicker.DateFormatUtils; @@ -90,7 +89,7 @@ public void onTimeSelected(long timestamp) { endTime = timestamp; if ((endTime < beginTime) && endTime != beginTime) { - ToastUtil.show(NewCardListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�"); + TipUtil.show(NewCardListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�"); } else { try { endTime = endTime + (1000 * 60 * 60 * 24) - 1; diff --git a/app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java b/app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java index 493f65d..e89fc9e 100644 --- a/app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java @@ -7,7 +7,7 @@ import com.dayu.recharge.databinding.ActivityPswBinding; import com.dayu.recharge.dbBean.PassWordBean; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.utils.TipUtil; import com.dayu.recharge.utils.WSMD5; /** @@ -44,16 +44,16 @@ if (pswBinding.pswNew.getText().toString().equals(pswBinding.pswNewAgin.getText().toString())) { passWordBean.setPassWord(pswBinding.pswNewAgin.getText().toString()); baseDao.loginPsDao().insert(passWordBean); - ToastUtil.show(PassWordActivity.this, "瀵嗙爜淇敼瀹屾垚"); + TipUtil.show(PassWordActivity.this, "瀵嗙爜淇敼瀹屾垚"); PassWordActivity.this.finish(); } else { - ToastUtil.show(PassWordActivity.this, "涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�"); + TipUtil.show(PassWordActivity.this, "涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�"); } } else { - ToastUtil.show(PassWordActivity.this, "鏃у瘑鐮佽緭鍏ラ敊璇�"); + TipUtil.show(PassWordActivity.this, "鏃у瘑鐮佽緭鍏ラ敊璇�"); } } else { - ToastUtil.show(PassWordActivity.this, "璇疯緭瀹屽唴瀹�"); + TipUtil.show(PassWordActivity.this, "璇疯緭瀹屽唴瀹�"); } diff --git a/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java b/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java index 8220dc7..91452f4 100644 --- a/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java @@ -7,7 +7,7 @@ import com.dayu.recharge.databinding.ActivityPowerBinding; import com.dayu.recharge.dbBean.PowerBean; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.utils.TipUtil; /** * Copyright (C), 2023, @@ -44,11 +44,11 @@ if (!TextUtils.isEmpty(data)) { powerBean.setPower(data); baseDao.powerDao().insert(powerBean); - ToastUtil.show("淇濆瓨鎴愬姛"); + TipUtil.show("淇濆瓨鎴愬姛"); // PowerActivity.this.finish(); initData(); } else { - ToastUtil.show("璇疯緭鍏ユ按娉靛姛鐜�"); + TipUtil.show("璇疯緭鍏ユ按娉靛姛鐜�"); } } }); diff --git a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java index 2913686..6c9fe1d 100644 --- a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java +++ b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java @@ -5,7 +5,6 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; -import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; @@ -14,8 +13,6 @@ import com.dayu.recharge.card.DomainCard; import com.dayu.recharge.card.UserCard; import com.dayu.recharge.databinding.ActivityRedCardBinding; -import com.dayu.recharge.dbBean.RechargeBean; -import com.dayu.recharge.dbBean.UserCardBean; import com.dayu.recharge.net.SocketCallBack; import com.dayu.recharge.net.SocketData; import com.dayu.recharge.net.SocketNet; @@ -23,13 +20,13 @@ import com.dayu.recharge.tools.BcdUtil; import com.dayu.recharge.tools.HexUtil; import com.dayu.recharge.tools.NfcReadHelper; +import com.dayu.recharge.tools.WriteCardUtils; import com.dayu.recharge.utils.CRC8; import com.dayu.recharge.utils.DeviceNumberUtils; import com.dayu.recharge.utils.MornyUtil; import com.dayu.recharge.utils.MyCommon; import com.dayu.recharge.utils.SocketUtil; -import com.dayu.recharge.utils.ToastUtil; -import com.dayu.recharge.utils.WSHelper; +import com.dayu.recharge.utils.TipUtil; import java.util.Arrays; import java.util.Calendar; @@ -60,6 +57,8 @@ volatile UserCard userCard; ActivityRedCardBinding redCardBinding; + + Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { @@ -96,6 +95,8 @@ @Override public void onNewIntent(Intent intent) { + super.onNewIntent(intent); + this.intent = intent; startAnim(); if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) { readAllData(intent); @@ -105,7 +106,8 @@ /** * 璇诲彇鍏ㄩ儴鏁版嵁 */ - private void readAllData(Intent intent) { + + public void readAllData(Intent intent) { NfcReadHelper.getInstence(intent) .getAllData(new NfcReadHelper.NFCCallListback() { @Override @@ -227,10 +229,10 @@ break; case MyCommon.ERROR_MOVE: stopAnim(); - ToastUtil.show("杩炴帴涓柇锛岃閲嶆柊璐村悎鍗$墖"); + TipUtil.show("杩炴帴涓柇锛岃閲嶆柊璐村悎鍗$墖"); break; default: - ToastUtil.show(ReadCardAcitivy.this, "鍗$墖鏃犳硶璇嗗埆"); + TipUtil.show(ReadCardAcitivy.this, "鍗$墖鏃犳硶璇嗗埆"); stopAnim(); break; } @@ -281,11 +283,23 @@ try { stateText = new StringBuffer(); -// stateText.append("鐘� 鎬侊細"); + //閲戦 + byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7); + int balance = SocketUtil.get16to10LowHigh(blanceByte); + //濮撳悕 + byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19); + String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte)); + setUserData(name, balance, stateText.toString()); String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]); //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s if ("00".equals(state)) { + userCard.setBalance(balance); + userCard.setState("00"); + WriteCardUtils.setUser(intent, userCard); stateText.append("鍚敤"); } else if ("01".equals(state)) { + userCard.setBalance(balance); + userCard.setState("01"); + WriteCardUtils.setUser(intent, userCard); stateText.append("绂佺敤"); } else if ("02".equals(state)) { stateText.append("闅跺睘淇℃伅涓嶇"); @@ -294,29 +308,22 @@ } else if ("04".equals(state)) { stateText.append("鍏跺畠"); } - //閲戦 - byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7); - int balance = SocketUtil.get16to10LowHigh(blanceByte); - //濮撳悕 - byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19); - String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte)); - setUserData(name, balance, stateText.toString()); stopAnim(); } catch (Exception e) { e.printStackTrace(); } } else { //鏍¢獙CRC閿欒 - ToastUtil.show(ReadCardAcitivy.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒"); + TipUtil.show(ReadCardAcitivy.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒"); } stopAnim(); } @Override public void onSocketError(int code, String msg) { - ToastUtil.show(ReadCardAcitivy.this, msg); + TipUtil.show(ReadCardAcitivy.this, msg); } }); diff --git a/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java b/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java index 50ca2b4..a0b2a39 100644 --- a/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java @@ -10,10 +10,22 @@ import android.widget.EditText; import com.dayu.recharge.databinding.ActivityRechargeBinding; +import com.dayu.recharge.dbBean.AdminDataBean; +import com.dayu.recharge.net.SocketCallBack; +import com.dayu.recharge.net.SocketData; +import com.dayu.recharge.net.SocketNet; +import com.dayu.recharge.socketBean.BalanceSelecteRequestBean; +import com.dayu.recharge.tools.BcdUtil; +import com.dayu.recharge.tools.NfcReadHelper; +import com.dayu.recharge.tools.WriteCardUtils; +import com.dayu.recharge.utils.CRC8; import com.dayu.recharge.utils.DeviceNumberUtils; -import com.dayu.recharge.utils.ToastUtil; -import com.dayu.recharge.utils.WSHelper; +import com.dayu.recharge.utils.MornyUtil; +import com.dayu.recharge.utils.SocketUtil; +import com.dayu.recharge.utils.TipUtil; import com.tencent.bugly.crashreport.CrashReport; + +import java.util.Arrays; /** @@ -22,11 +34,16 @@ * Date: 2023-11-5 09:52 * Description: 鍏呭�肩晫闈� */ -public class RechargeActivity extends BaseActivity { +public class RechargeActivity extends BaseNfcActivity { + Intent intent; + boolean userFlag; ActivityRechargeBinding binding; public static RechargeActivity rechargeActivity; + + AdminDataBean adminData; + String userName; @Override protected void onCreate(Bundle savedInstanceState) { @@ -43,7 +60,33 @@ } } + public void onNewIntent(Intent intent) { + + try { + this.intent = intent; + userCard = NfcReadHelper.getInstence(intent).getUserCardData(); + if (userCard != null) { + + selectBalance(userCard.getInitPeasantCode()); + } else { + TipUtil.show(RechargeActivity.this, "鍗$墖璇诲彇澶辫触"); + } + + readAllData(intent); + } catch (Exception e) { + e.printStackTrace(); + CrashReport.postCatchedException(e); + } + super.onNewIntent(intent); + } + private void initView() { + try { + adminData = baseDao.adminDao().findFirst(); + } catch (Exception e) { + e.printStackTrace(); + CrashReport.postCatchedException(e); + } binding.rechargeRegistBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -51,20 +94,22 @@ if (!TextUtils.isEmpty(morny)) { String initCode = DeviceNumberUtils.getDeviceNumber(); if (TextUtils.isEmpty(initCode)) { - ToastUtil.show(RechargeActivity.this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃"); -// return; + TipUtil.show(RechargeActivity.this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃"); } Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class); intent.putExtra("morny", morny); + intent.putExtra("userName", userName); + intent.putExtra("userCard", userCard); startActivity(intent); } else { - ToastUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰濓紙鍏冿級"); + TipUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰濓紙鍏冿級"); } } }); } + //鏍¢獙閲戦 public static void setPricePoint(final EditText editText) { editText.addTextChangedListener(new TextWatcher() { @Override @@ -110,5 +155,81 @@ } + /** + * 鏌ヨ浣欓 + * + * @param initPeasantCode 鍐滄埛娉ㄥ唽缂栧彿 + */ + private void selectBalance(String initPeasantCode) { + try { + BalanceSelecteRequestBean requestBean = new BalanceSelecteRequestBean(); + requestBean.setAFN("94"); + requestBean.setControl("01"); + String initCode = DeviceNumberUtils.getDeviceNumber(); + requestBean.setInitCode(initCode); + requestBean.setInitPeasantCode(initPeasantCode); + requestBean.setXuLie(SocketUtil.getXuLie(this)); + SocketNet.getInstance().sendTestMessage(requestBean.pack(), new SocketCallBack() { + @Override + public void onSocketResponse(SocketData readData) { + if (CRC8.isCRC8(readData.getOriginDataBytes())) { + StringBuffer stateText = null; + try { + stateText = new StringBuffer(); + String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]); //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s + + //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊� + //閲戦 + byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7); + int balance = SocketUtil.get16to10LowHigh(blanceByte); + //濮撳悕 + byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19); + userName = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte)); + if ("00".equals(state)) { + stateText.append("鍚敤"); + binding.rechargeReadLL.setVisibility(View.GONE); + binding.rechargeTextLL.setVisibility(View.VISIBLE); + + binding.userName.setText(userName); + binding.redRemainderBlance.setText(MornyUtil.changeF2Y(balance)); + binding.redStatu.setText(stateText.toString()); + binding.redInitCode.setText(initPeasantCode); + userCard.setState("00"); + userCard.setBalance(balance); + return; + } else if ("01".equals(state)) { + stateText.append("绂佺敤"); + userCard.setState("01"); + userCard.setBalance(balance); + userFlag = WriteCardUtils.setUser(intent, userCard); + TipUtil.show("璇ュ崱宸茶绂佺敤"); + } else if ("02".equals(state)) { + stateText.append("闅跺睘淇℃伅涓嶇"); + } else if ("03".equals(state)) { + stateText.append("鏃犳鍗′俊鎭�"); + } else if ("04".equals(state)) { + stateText.append("鍏跺畠"); + } + TipUtil.show(RechargeActivity.this, stateText.toString()); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + //鏍¢獙CRC閿欒 + TipUtil.show(RechargeActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒"); + } + } + + @Override + public void onSocketError(int code, String msg) { + TipUtil.show(RechargeActivity.this, msg); + } + }); + } catch (Exception e) { + e.printStackTrace(); + CrashReport.postCatchedException(e); + } + + } } diff --git a/app/src/main/java/com/dayu/recharge/activity/RechargeDetail.java b/app/src/main/java/com/dayu/recharge/activity/RechargeDetail.java new file mode 100644 index 0000000..7d1f2ac --- /dev/null +++ b/app/src/main/java/com/dayu/recharge/activity/RechargeDetail.java @@ -0,0 +1,81 @@ +package com.dayu.recharge.activity; + +import android.os.Build; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; + +import com.dayu.recharge.card.UserCard; +import com.dayu.recharge.databinding.ActivityRechargeDetailBinding; +import com.dayu.recharge.utils.MornyUtil; + +import java.util.Calendar; + +/** + * Created by Android Studio. + * author: zuo + * Date: 2023-11-21 + * Time: 15:01 + * 澶囨敞锛氬啓鍗″悗鐨勮鎯呴〉 + */ +public class RechargeDetail extends BaseActivity { + + ActivityRechargeDetailBinding binding; + UserCard userCard; + String statu; + String userName; + String morny; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + binding = ActivityRechargeDetailBinding.inflate(LayoutInflater.from(this)); + setContentView(binding.getRoot()); + + try { + userCard = (UserCard) getIntent().getSerializableExtra("userCard"); + statu = getIntent().getStringExtra("statu"); + userName = getIntent().getStringExtra("userName"); + if (getIntent().hasExtra("morny")) { + morny = getIntent().getStringExtra("morny"); + } + setUserData(userName, statu); + } catch (Exception e) { + throw new RuntimeException(e); + } + + } + + private void setUserData(String userName, String statu) { + int balance = userCard.getBalance(); + if (!TextUtils.isEmpty(morny)) { + balance = userCard.getBalance() + MornyUtil.changeY2F(morny); + binding.redRemainderMorny.setText("鍏呭�奸噾棰濓細" + morny + " 鍏�"); + } else { + balance = userCard.getBalance(); + binding.redRemainderMorny.setVisibility(View.GONE); + } + binding.redName.setText("鐢ㄦ埛濮撳悕锛�" + userName); + binding.redRemainderBlance.setText("鍓╀綑閲戦锛�" + MornyUtil.changeF2Y(balance) + " 鍏�"); + binding.redStatu.setText("鍗$姸鎬侊細" + statu); + if (userCard != null) { + binding.redInitCode.setText("鐢ㄦ埛娉ㄥ唽缂栧彿锛�" + userCard.getInitPeasantCode()); + Calendar calendar = userCard.getRechargeDate(); + if (calendar != null) { + int year = calendar.get(Calendar.YEAR); + int month = calendar.get(Calendar.MONTH); // 鏈堜唤浠�0寮�濮嬶紝鎵�浠ラ渶瑕佸姞1 + int day = calendar.get(Calendar.DAY_OF_MONTH); + int hour = calendar.get(Calendar.HOUR_OF_DAY); + int minute = calendar.get(Calendar.MINUTE); + int second = calendar.get(Calendar.SECOND); + binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細" + year + month + day + " " + hour + ":" + minute + ":" + second); + } else { + binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細鏃�"); + } + + binding.redRechargeNumber.setText("鏈崱鍏呭�兼鏁帮細" + userCard.getRechargeTimes() + ""); + } + } +} diff --git a/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java b/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java index 9dd6132..6c0b70e 100644 --- a/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java @@ -10,7 +10,7 @@ import com.dayu.recharge.databinding.ActivityRechargeListBinding; import com.dayu.recharge.dbBean.RechargeBean; import com.dayu.recharge.utils.ArithUtil; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.utils.TipUtil; import com.dayu.recharge.view.datepicker.CustomDatePicker; import com.dayu.recharge.view.datepicker.DateFormatUtils; @@ -100,7 +100,7 @@ public void onTimeSelected(long timestamp) { endTime = timestamp; if ((endTime < beginTime) && endTime != beginTime) { - ToastUtil.show(RechargeListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�"); + TipUtil.show(RechargeListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�"); } else { endTime = endTime + (1000 * 60 * 60 * 24) - 1; List<RechargeBean> userList = baseDao.rechargeDao().findByTime(beginTime, endTime); diff --git a/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java b/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java index 47b2e64..f0aa5d6 100644 --- a/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java @@ -11,7 +11,7 @@ import com.dayu.recharge.adapter.NewCardAdapter; import com.dayu.recharge.databinding.ActivityReplacementBinding; import com.dayu.recharge.dbBean.UserCardBean; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.utils.TipUtil; import com.dayu.recharge.view.EdtDialog; import java.util.List; @@ -73,7 +73,7 @@ userCardBeanList.addAll(beans); adapter.notifyDataSetChanged(); } else { - ToastUtil.show("鏈壘鍒拌鐢ㄦ埛"); + TipUtil.show("鏈壘鍒拌鐢ㄦ埛"); } } diff --git a/app/src/main/java/com/dayu/recharge/activity/SysActivity.java b/app/src/main/java/com/dayu/recharge/activity/SysActivity.java index be7ad6f..5bffa64 100644 --- a/app/src/main/java/com/dayu/recharge/activity/SysActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/SysActivity.java @@ -1,9 +1,7 @@ package com.dayu.recharge.activity; -import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.telephony.TelephonyManager; import android.view.LayoutInflater; import android.view.View; @@ -18,7 +16,7 @@ import com.dayu.recharge.databinding.ActivityAdminBinding; import com.dayu.recharge.dbBean.DomainBean; import com.dayu.recharge.dbBean.PowerBean; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.utils.TipUtil; /** * Copyright (C), 2023, @@ -131,7 +129,7 @@ intent.putExtra("configurationPowerCard", configurationPowerCard); startActivity(intent); } else { - ToastUtil.show("璇峰厛璁剧疆姘存车鍔熺巼"); + TipUtil.show("璇峰厛璁剧疆姘存车鍔熺巼"); } } diff --git a/app/src/main/java/com/dayu/recharge/dbBean/RechargeBean.java b/app/src/main/java/com/dayu/recharge/dbBean/RechargeBean.java index 08b5f6c..c2b8225 100644 --- a/app/src/main/java/com/dayu/recharge/dbBean/RechargeBean.java +++ b/app/src/main/java/com/dayu/recharge/dbBean/RechargeBean.java @@ -16,11 +16,33 @@ public long id; private String serial;//璁惧搴忓垪鍙� public String userName; - public String userId;//鐢ㄦ埛韬唤璇佸彿 public long date; public String morny;//鍏呭�奸噾棰� public String balance;//浣欓 + public String total_morn;//鎬诲厖鍊奸噾棰� + //鐘舵�� 0鏈笂浼� 1鎴愬姛涓婁紶 + public String orderID;//璁㈠崟鍙� + //鏈嶅姟鍣ㄨ繑鍥炵殑鍐滄埛娉ㄥ唽缂栧彿 + private String initPeasantCode; + + public int state = 0; + + public String getOrderID() { + return orderID; + } + + public void setOrderID(String orderID) { + this.orderID = orderID; + } + + public String getInitPeasantCode() { + return initPeasantCode; + } + + public void setInitPeasantCode(String initPeasantCode) { + this.initPeasantCode = initPeasantCode; + } public String getTotal_morn() { return total_morn; @@ -33,12 +55,6 @@ public void setUserId(String userId) { this.userId = userId; } - - public String total_morn;//鎬诲厖鍊奸噾棰� - //鐘舵�� 0鏈笂浼� 1鎴愬姛涓婁紶 - - - public int state = 0; public void setTotal_morn(String total_morn) { this.total_morn = total_morn; diff --git a/app/src/main/java/com/dayu/recharge/net/SocketNet.java b/app/src/main/java/com/dayu/recharge/net/SocketNet.java index 481b320..fe1e5cb 100644 --- a/app/src/main/java/com/dayu/recharge/net/SocketNet.java +++ b/app/src/main/java/com/dayu/recharge/net/SocketNet.java @@ -2,7 +2,6 @@ import android.content.Context; import android.os.Handler; -import android.text.TextUtils; import android.util.Log; import com.dayu.recharge.dao.BaseDaoSingleton; @@ -15,9 +14,6 @@ import com.easysocket.interfaces.conn.ISocketActionListener; import com.easysocket.interfaces.conn.SocketActionListener; import com.dayu.recharge.MyApplication; -import com.dayu.recharge.utils.ToastUtil; -import com.dayu.recharge.utils.WSHelper; -import com.easysocket.utils.LogUtil; /** @@ -29,7 +25,7 @@ public class SocketNet { public static SocketNet socketNet; SocketCallBack myCallBack; - byte[] dataMessage; + // byte[] dataMessage; boolean isTest = false; Context mContext; @@ -53,9 +49,10 @@ // 鍙戦�� // EasySocket.getInstance().upMessage(dataMessage); if (EasySocket.getInstance().getDefconnection() != null) { - EasySocket.getInstance().disconnect(false); - EasySocket.getInstance().connect(); - this.dataMessage = dataMessage; +// EasySocket.getInstance().disconnect(false); +// EasySocket.getInstance().connect(); + EasySocket.getInstance().upMessage(dataMessage); +// this.dataMessage = dataMessage; } else { MyApplication.myApplication.initEasySocket(false, null); } @@ -72,8 +69,8 @@ isTest = true; mContext = context; if (EasySocket.getInstance().getDefOptions().getSocketAddress() != null && !MyApplication.myApplication.isDoInitMachine) { - EasySocket.getInstance().disconnect(false); - EasySocket.getInstance().connect(); +// EasySocket.getInstance().disconnect(false); +// EasySocket.getInstance().connect(); } else { // ToastUtil.show(mContext, "Socket鍦板潃涓虹┖"); } @@ -97,8 +94,9 @@ @Override public void onSocketConnSuccess(SocketAddress socketAddress) { Log.i("SocketActionListener", "杩炴帴鎴愬姛"); + MyApplication.myApplication.isConncet = true; DeviceNumber initCode = BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().findFirst(); - if (initCode==null && !MyApplication.myApplication.isDoInitMachine) { + if (initCode == null && !MyApplication.myApplication.isDoInitMachine) { new Handler().postDelayed(new Runnable() { @Override public void run() { @@ -111,12 +109,12 @@ }, 500); } - if (dataMessage != null) { - EasySocket.getInstance().upMessage(dataMessage); - } +// if (dataMessage != null) { +// EasySocket.getInstance().upMessage(dataMessage); +// } if (isTest) { MyApplication.myApplication.isConncet = true; - EasySocket.getInstance().disconnect(false); +// EasySocket.getInstance().disconnect(false); } else { } @@ -130,7 +128,7 @@ */ @Override public void onSocketConnFail(SocketAddress socketAddress, boolean isNeedReconnect) { -// isConnected = false; + MyApplication.myApplication.isConncet = false; Log.i("SocketActionListener", "socket杩炴帴澶辫触"); if (isTest) { // ToastUtil.show(mContext, "杩炴帴澶辫触,璇锋鏌ョ綉缁�"); @@ -170,7 +168,7 @@ SocketData socketData = new SocketData(); socketData.setBodyData(originReadData.getBodyBytes()); socketData.setHeaderData(originReadData.getHeaderData()); - dataMessage = null; +// dataMessage = null; if (myCallBack != null) { myCallBack.onSocketResponse(socketData); } diff --git a/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java b/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java index 449ebe7..856fc30 100644 --- a/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java +++ b/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java @@ -24,10 +24,10 @@ * email 1058083107@qq.com * description */ -public class NFCWriteHelper extends BaseNFCHelper{ +public class NFCWriteHelper extends BaseNFCHelper { private Tag tag; - private NFCWriteHelper.NFCCallback callback; + private static NFCWriteHelper helper; private static int PASSWORD_LENTH = 6; @@ -67,12 +67,12 @@ /** * 鍐欏崱 * - * @param str 涔﹀啓鍐呭锛�16涓瓧鑺� - * @param a 涔﹀啓鐨勬墖鍖� (浠�0寮�濮嬫暟) - * @param b 涔﹀啓鐨勫潡(浠�0寮�濮嬫暟) - * @param callback 杩斿洖鐩戝惉 + * @param str 涔﹀啓鍐呭锛�16涓瓧鑺� + * @param a 涔﹀啓鐨勬墖鍖� (浠�0寮�濮嬫暟) + * @param b 涔﹀啓鐨勫潡(浠�0寮�濮嬫暟) + * @param */ - public void writeData(byte[] str, int a, int b, NFCWriteHelper.NFCCallback callback) { + public boolean writeData(byte[] str, int a, int b) { if (str.length <= 16) { try { MifareClassic mfc = MifareClassic.get(tag); @@ -84,15 +84,13 @@ int count = mfc.getSectorCount(); //濡傛灉浼犺繘鏉ョ殑鎵囧尯澶т簡鎴栬�呭皬浜嗙洿鎺ラ��鍑烘柟娉� if (a > count - 1 || a < 0) { - callback.isSusses(false); - return; + return false; } //鑾峰彇鍐欑殑鎵囧尯鐨勫潡鐨勬暟閲� int bCount = mfc.getBlockCountInSector(a); //濡傛灉杈撳叆鐨勫潡澶т簡鎴栬�呭皬浜嗕篃鏄洿鎺ラ��鍑� if (b > bCount - 1 || b < 0) { - callback.isSusses(false); - return; + return false; } //楠岃瘉鎵囧尯瀵嗙爜 boolean isOpen = mfc.authenticateSectorWithKeyA(a, bytes); @@ -100,13 +98,12 @@ int bIndex = mfc.sectorToBlock(a); //鍐欏崱 mfc.writeBlock(bIndex + b, str); - callback.isSusses(true); - return; + return true; } - callback.isSusses(false); + return false; } catch (Exception e) { e.printStackTrace(); - callback.isSusses(false); + return false; } finally { try { mfc.close(); @@ -117,8 +114,10 @@ } } catch (Exception e) { e.printStackTrace(); + return false; } } + return false; } diff --git a/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java b/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java index 5e3b08d..428cfd8 100644 --- a/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java +++ b/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java @@ -5,6 +5,7 @@ import android.nfc.Tag; import android.nfc.tech.MifareClassic; +import com.dayu.recharge.card.UserCard; import com.dayu.recharge.utils.MyCommon; import java.io.IOException; @@ -45,6 +46,64 @@ return helper; } + + public UserCard getUserCardData() { + UserCard userCard = null; + Map<String, List<byte[]>> map = new HashMap<>(); + MifareClassic mfc = MifareClassic.get(tag); + if (null != mfc) { + try { + //閾炬帴NFC + mfc.connect(); + //鑾峰彇鎵囧尯鏁伴噺 + int count = mfc.getSectorCount(); + //瀛樺偍绌洪棿 + int size = mfc.getSize(); + //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵 + boolean flag = false; + List<byte[]> list = new ArrayList<>(); + //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級 + boolean isOpen = mfc.authenticateSectorWithKeyA(1, bytes); + if (isOpen) { + //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺 + int bCount = mfc.getBlockCountInSector(1); + //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹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(); + } + } + flag = true; + } + + if (flag) { + userCard = UserCard.getBean(list); + return userCard; + } + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + mfc.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + return null; + } + + /** * 璇诲彇NFC鍗$殑鍏ㄩ儴淇℃伅 * diff --git a/app/src/main/java/com/dayu/recharge/tools/WriteCardUtils.java b/app/src/main/java/com/dayu/recharge/tools/WriteCardUtils.java new file mode 100644 index 0000000..8409f34 --- /dev/null +++ b/app/src/main/java/com/dayu/recharge/tools/WriteCardUtils.java @@ -0,0 +1,30 @@ +package com.dayu.recharge.tools; + +import android.content.Intent; + +import com.dayu.recharge.card.UserCard; + +/** + * Created by Android Studio. + * author: zuo + * Date: 2023-11-21 + * Time: 14:46 + * 澶囨敞锛� + */ +public class WriteCardUtils { + static boolean userFlag = false; + + //鍚戝崱鍐欏叆鐢ㄦ埛淇℃伅 + public static boolean setUser(Intent intent, UserCard userCard) { + userFlag = NFCWriteHelper.getInstence(intent).writeData(userCard.getZeroBytes(), 1, 0); + if (!userFlag) { + return false; + } + userFlag = NFCWriteHelper.getInstence(intent).writeData(userCard.getOneBytes(), 1, 1); + if (!userFlag) { + return false; + } + userFlag = NFCWriteHelper.getInstence(intent).writeData(userCard.getTwoBytes(), 1, 2); + return userFlag; + } +} diff --git a/app/src/main/java/com/dayu/recharge/utils/TipUtil.java b/app/src/main/java/com/dayu/recharge/utils/TipUtil.java new file mode 100644 index 0000000..50b80af --- /dev/null +++ b/app/src/main/java/com/dayu/recharge/utils/TipUtil.java @@ -0,0 +1,38 @@ +package com.dayu.recharge.utils; + +import android.content.Context; + +import com.dayu.recharge.activity.HomeActivity; +import com.dayu.recharge.view.TipDialog; + +public class TipUtil { + public interface TipListener { + public void onCancle(); + } + + public static void show(Context context, String data) { +// Toast.makeText(context, data, Toast.LENGTH_LONG).show(); + TipDialog tipDialog = new TipDialog(context, data); + tipDialog.show(); + + } + + public static void show(Context context, String data, TipListener tipListener) { +// Toast.makeText(context, data, Toast.LENGTH_LONG).show(); + TipDialog tipDialog = new TipDialog(context, data, tipListener); + tipDialog.show(); + + } + + public static void show(String data) { +// Toast.makeText(, data, Toast.LENGTH_LONG).show(); + TipDialog tipDialog = new TipDialog(HomeActivity.homeActivity, data); + tipDialog.show(); + } + + public static void show(String data, TipListener tipListener) { +// Toast.makeText(, data, Toast.LENGTH_LONG).show(); + TipDialog tipDialog = new TipDialog(HomeActivity.homeActivity, data, tipListener); + tipDialog.show(); + } +} diff --git a/app/src/main/java/com/dayu/recharge/utils/ToastUtil.java b/app/src/main/java/com/dayu/recharge/utils/ToastUtil.java index 02f2b15..6a9965a 100644 --- a/app/src/main/java/com/dayu/recharge/utils/ToastUtil.java +++ b/app/src/main/java/com/dayu/recharge/utils/ToastUtil.java @@ -1,18 +1,18 @@ package com.dayu.recharge.utils; -import android.content.Context; import android.widget.Toast; import com.dayu.recharge.MyApplication; +/** + * Created by Android Studio. + * author: zuo + * Date: 2023-11-22 + * Time: 11:49 + * 澶囨敞锛� + */ public class ToastUtil { - - - public static void show(Context context, String data) { - Toast.makeText(context, data, Toast.LENGTH_LONG).show(); - } - public static void show(String data) { - Toast.makeText(MyApplication.myApplication, data, Toast.LENGTH_LONG).show(); + Toast.makeText(MyApplication.myApplication, data, Toast.LENGTH_SHORT).show(); } } diff --git a/app/src/main/java/com/dayu/recharge/view/EdtDialog.java b/app/src/main/java/com/dayu/recharge/view/EdtDialog.java index db16808..544ba21 100644 --- a/app/src/main/java/com/dayu/recharge/view/EdtDialog.java +++ b/app/src/main/java/com/dayu/recharge/view/EdtDialog.java @@ -12,7 +12,7 @@ import android.widget.TextView; import com.dayu.recharge.R; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.utils.TipUtil; /** * Copyright (C), 2022, @@ -52,7 +52,7 @@ public void onClick(View v) { if (intent!=null){ if (TextUtils.isEmpty(editText.getText().toString())) { - ToastUtil.show(mContext, "璇疯緭鍏ュ簭鍒楀彿"); + TipUtil.show(mContext, "璇疯緭鍏ュ簭鍒楀彿"); } else { if (Integer.valueOf(editText.getText().toString()) <= 16777215) { // EquipmentNumber equipmentNumber = (EquipmentNumber) intent.getSerializableExtra("equipmentNumber"); @@ -60,7 +60,7 @@ mContext.startActivity(intent); EdtDialog.this.dismiss(); } else { - ToastUtil.show(mContext, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215"); + TipUtil.show(mContext, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215"); } } diff --git a/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java b/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java index ae91165..634ec23 100644 --- a/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java +++ b/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java @@ -1,6 +1,5 @@ package com.dayu.recharge.view; -import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.content.Intent; @@ -13,7 +12,7 @@ import com.tencent.bugly.crashreport.CrashReport; import com.dayu.recharge.R; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.utils.TipUtil; import com.dayu.recharge.utils.WSMD5; /** @@ -46,7 +45,7 @@ mContext.startActivity(intent); PassWordDialog.this.dismiss(); } else { - ToastUtil.show(mContext, "瀵嗙爜閿欒"); + TipUtil.show(mContext, "瀵嗙爜閿欒"); } } catch (Exception e) { CrashReport.postCatchedException(e); diff --git a/app/src/main/java/com/dayu/recharge/view/TipDialog.java b/app/src/main/java/com/dayu/recharge/view/TipDialog.java new file mode 100644 index 0000000..e1a540d --- /dev/null +++ b/app/src/main/java/com/dayu/recharge/view/TipDialog.java @@ -0,0 +1,91 @@ +package com.dayu.recharge.view; + +import android.app.Dialog; +import android.content.Context; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.TextView; + +import com.dayu.recharge.R; +import com.dayu.recharge.utils.TipUtil; + +/** + * Created by Android Studio. + * author: zuo + * Date: 2023-11-22 + * Time: 9:12 + * 澶囨敞锛� + */ +public class TipDialog extends Dialog { + + + Context mContext; + EdtDialog.DialogBack mDialogBack; + String mData; + TipUtil.TipListener listener; + + public TipDialog(Context context, String data, TipUtil.TipListener tipListener) { + super(context, R.style.ws_pay_showSelfDialog); + mContext = context; + mData = data; + listener = tipListener; + initView(); + } + + public TipDialog(Context context, String data) { + super(context, R.style.ws_pay_showSelfDialog); + mContext = context; + mData = data; + initView(); + } + + public TipDialog(Context context, EdtDialog.DialogBack dialogBack) { + super(context, R.style.ws_pay_showSelfDialog); + mContext = context; + mDialogBack = dialogBack; + initView(); + } + + private void initView() { + getWindow().setGravity(Gravity.CENTER); + setContentView(R.layout.text_dialog); + setCanceledOnTouchOutside(false); + final TextView editText = (TextView) this.findViewById(R.id.textData); + editText.setText(mData); + TextView cannel = (TextView) this.findViewById(R.id.cannel); + + cannel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (listener != null) { + listener.onCancle(); + } + TipDialog.this.dismiss(); + } + }); + + } + + @Override + public void show() { + + super.show(); + /** + * 璁剧疆瀹藉害鍏ㄥ睆锛岃璁剧疆鍦╯how鐨勫悗闈� + */ + WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); + layoutParams.gravity = Gravity.CENTER; + layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT; + layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT; + getWindow().getDecorView().setPadding(0, 0, 0, 0); + getWindow().setAttributes(layoutParams); + } + + public interface DialogBack { + void onOk(String data); + + void onCancel(); + } +} diff --git a/app/src/main/res/layout/activity_admin_setup.xml b/app/src/main/res/layout/activity_admin_setup.xml index 4bc09db..44fa307 100644 --- a/app/src/main/res/layout/activity_admin_setup.xml +++ b/app/src/main/res/layout/activity_admin_setup.xml @@ -45,48 +45,8 @@ </LinearLayout> - <LinearLayout - style="@style/newCardLL" - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="绠$悊鍛樺悕绉帮細" - android:textSize="@dimen/new_card_size" /> - - <EditText - android:id="@+id/admin_name" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:maxLength="5" - android:textSize="@dimen/new_card_size" /> - </LinearLayout> - - <LinearLayout - style="@style/newCardLL" - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="鐢佃瘽锛�" - android:textSize="@dimen/new_card_size" /> - - <EditText - android:id="@+id/admin_phone" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:inputType="number" - android:maxLength="11" - android:textSize="@dimen/new_card_size" /> - - - </LinearLayout> <LinearLayout android:id="@+id/chose_address" @@ -109,6 +69,24 @@ android:textSize="@dimen/new_card_size" /> </LinearLayout> + <LinearLayout + android:id="@+id/chose_address_code" + style="@style/newCardLL" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍦板潃缂栫爜锛�" + android:textSize="@dimen/new_card_size" /> + + <TextView + android:id="@+id/admin_address_code" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textSize="@dimen/new_card_size" /> + </LinearLayout> </LinearLayout> diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml index ea0c492..4eeafd8 100644 --- a/app/src/main/res/layout/activity_home.xml +++ b/app/src/main/res/layout/activity_home.xml @@ -25,7 +25,7 @@ android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" - android:text="鏂板崱娉ㄥ唽" + android:text="鏂板崱寮�鎴�" android:textSize="@dimen/home_text_size" /> <TextView diff --git a/app/src/main/res/layout/activity_my.xml b/app/src/main/res/layout/activity_my.xml index 5763811..3e5c97c 100644 --- a/app/src/main/res/layout/activity_my.xml +++ b/app/src/main/res/layout/activity_my.xml @@ -56,7 +56,7 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="绠$悊鍛橈細" + android:text="鍦板潃淇℃伅锛�" android:textSize="@dimen/text_size" /> <TextView diff --git a/app/src/main/res/layout/activity_new_card.xml b/app/src/main/res/layout/activity_new_card.xml index 40d0c61..c365bc9 100644 --- a/app/src/main/res/layout/activity_new_card.xml +++ b/app/src/main/res/layout/activity_new_card.xml @@ -9,7 +9,7 @@ android:layout_width="match_parent" android:layout_height="@dimen/dimen_title_height" android:background="@drawable/title_bar_bg" - app:centerText="鏂板崱娉ㄥ唽" + app:centerText="鏂板崱寮�鎴�" app:leftImage="@mipmap/icon_back" /> <ScrollView @@ -163,7 +163,7 @@ android:layout_alignParentBottom="true" android:background="@color/title_bg" android:gravity="center" - android:text="娉ㄥ唽" + android:text="寮�鎴�" android:textColor="#000000" android:textSize="@dimen/new_card_size" /> </RelativeLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_recharge.xml b/app/src/main/res/layout/activity_recharge.xml index 3ed91c1..1cbff10 100644 --- a/app/src/main/res/layout/activity_recharge.xml +++ b/app/src/main/res/layout/activity_recharge.xml @@ -12,44 +12,149 @@ app:centerText="鍏呭��" app:leftImage="@mipmap/icon_back" /> - <ScrollView + <LinearLayout + android:id="@+id/recharge_read_LL" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_above="@+id/recharge_registBtn" - android:layout_below="@+id/titleBar"> + android:layout_below="@+id/titleBar" + android:orientation="vertical" + android:visibility="visible"> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="20dp" + android:gravity="center" + android:text="璇峰皢鍗¤创鍦ㄨ澶囦笂杩涜璇诲崱" + android:textSize="@dimen/text_size" /> + + <ImageView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_below="@id/textView" + android:scaleType="center" + android:src="@mipmap/nfc_write" /> + + + </LinearLayout> + + + <LinearLayout + android:id="@+id/recharge_text_LL" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_below="@+id/titleBar" + android:orientation="vertical" + android:padding="20dp" + android:visibility="gone"> + <LinearLayout android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical"> + android:layout_height="wrap_content" + android:orientation="horizontal"> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鐢ㄦ埛濮撳悕锛�" + android:textSize="@dimen/new_card_size" /> - <LinearLayout - style="@style/newCardLL" + <TextView + android:id="@+id/userName" android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="閲戦锛堝厓锛夛細" - android:textSize="@dimen/new_card_size" /> - - <EditText - android:id="@+id/recharge_water" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:inputType="numberDecimal" - android:textSize="@dimen/new_card_size" /> - - - </LinearLayout> - + android:layout_height="wrap_content" + android:textSize="@dimen/new_card_size" /> </LinearLayout> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:orientation="horizontal"> - </ScrollView> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鐢ㄦ埛娉ㄥ唽缂栧彿锛�" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/red_initCode" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="" + android:textSize="@dimen/new_card_size" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:orientation="horizontal"> + + <TextView + + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍓╀綑閲戦锛�" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/red_remainder_blance" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textSize="@dimen/new_card_size" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍗$姸鎬侊細" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/red_statu" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textSize="@dimen/new_card_size" /> + + </LinearLayout> + + <LinearLayout + android:id="@+id/recharge_LL" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:orientation="horizontal"> + + <TextView + android:id="@+id/recharge_tx" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="閲戦锛堝厓锛夛細" + android:textColor="@color/red" + android:textSize="@dimen/new_card_size" /> + + <EditText + android:id="@+id/recharge_water" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:hint="璇疯緭鍏ュ厖鍊肩殑閲戦" + android:inputType="numberDecimal" + android:textSize="@dimen/new_card_size" /> + </LinearLayout> + </LinearLayout> + <TextView android:id="@+id/recharge_registBtn" diff --git a/app/src/main/res/layout/activity_recharge_detail.xml b/app/src/main/res/layout/activity_recharge_detail.xml new file mode 100644 index 0000000..a923fd1 --- /dev/null +++ b/app/src/main/res/layout/activity_recharge_detail.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <com.dayu.recharge.view.TitleBar + android:id="@+id/titleBar" + android:layout_width="match_parent" + android:layout_height="@dimen/dimen_title_height" + android:background="@drawable/title_bar_bg" + app:centerText="鍐欏崱璇︽儏椤�" + app:leftImage="@mipmap/icon_back" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:padding="30dp"> + + <TextView + android:id="@+id/red_name" + android:layout_width="match_parent" + android:layout_height="wrap_content" + + 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:textSize="@dimen/text_size" /> + + + <TextView + android:id="@+id/red_remainder_morny" + 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_remainder_blance" + 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:textSize="@dimen/text_size" + android:visibility="gone" /> + + <TextView + android:id="@+id/red_rechargeNumber" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:text="鏈崱鍏呭�兼鏁帮細" + android:textSize="@dimen/text_size" + android:visibility="gone" /> + + <TextView + android:id="@+id/red_statu" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:text="鍗$姸鎬侊細" + android:textSize="@dimen/text_size" /> + </LinearLayout> +</LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_red_card.xml b/app/src/main/res/layout/activity_red_card.xml index 6b36e64..985f6d9 100644 --- a/app/src/main/res/layout/activity_red_card.xml +++ b/app/src/main/res/layout/activity_red_card.xml @@ -57,7 +57,8 @@ android:layout_height="wrap_content" android:layout_marginTop="15dp" android:text="鏈崱鏈�鍚庤喘姘存棩鏈燂細" - android:textSize="@dimen/text_size" /> + android:textSize="@dimen/text_size" + android:visibility="gone" /> <TextView android:id="@+id/red_rechargeNumber" @@ -65,7 +66,8 @@ android:layout_height="wrap_content" android:layout_marginTop="15dp" android:text="鏈崱鍏呭�兼鏁帮細" - android:textSize="@dimen/text_size" /> + android:textSize="@dimen/text_size" + android:visibility="gone" /> <TextView android:id="@+id/red_statu" diff --git a/app/src/main/res/layout/text_dialog.xml b/app/src/main/res/layout/text_dialog.xml new file mode 100644 index 0000000..bece331 --- /dev/null +++ b/app/src/main/res/layout/text_dialog.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="#00ffffff" + android:gravity="center" + android:orientation="vertical"> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@drawable/ws_pay_bg_dialog_top_stroke" + android:gravity="center" + android:orientation="vertical" + android:padding="20dp"> + + + <TextView + android:id="@+id/textData" + android:layout_width="300dp" + android:layout_height="wrap_content" + android:layout_marginTop="20dp" + android:gravity="center" + android:textColor="#000000" + android:textSize="20sp" /> + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_horizontal" + android:orientation="horizontal"> + + <TextView + android:id="@+id/cannel" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="20dp" + android:background="@drawable/ws_login_red_btn_one" + android:paddingLeft="15dp" + android:paddingTop="5dp" + android:paddingRight="15dp" + android:paddingBottom="5dp" + android:text="纭" + android:textSize="@dimen/text_size" /> + + + </LinearLayout> + + + </LinearLayout> + +</LinearLayout> + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index e74c198..467f1cb 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -19,4 +19,5 @@ <color name="date_picker_text_light">#59B29C</color> <color name="date_picker_text_dark">#333333</color> <color name="ws_pay_alpha">#00000000</color> + <color name="red">#ff0000</color> </resources> -- Gitblit v1.8.0