From 72880a3df304d21b897aecae5ab25a66069c0187 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期一, 16 六月 2025 17:47:18 +0800
Subject: [PATCH] refactor(generallibrary):优化卡片信息展示和处理逻辑- 修改卡片信息展示布局,调整字段顺序和格式 - 优化卡片读取和处理逻辑,增加日志输出 - 调整金额显示和计算方式,确保精度正确 - 修复部分字段解析和填充逻辑
---
generallibrary/src/main/res/layout/activity_card_read.xml | 108 +++++++-------
generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt | 84 ++++++++++-
generallibrary/src/main/java/com/dayu/general/activity/CardReadActivity.kt | 67 ++++++---
generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt | 41 +++--
generallibrary/src/main/java/com/dayu/general/bean/card/UserCard.kt | 28 ++-
generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt | 35 +++-
6 files changed, 235 insertions(+), 128 deletions(-)
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/CardReadActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/CardReadActivity.kt
index 271b476..069d464 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/CardReadActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/CardReadActivity.kt
@@ -38,18 +38,16 @@
super.onCreate(savedInstanceState)
binding = ActivityCardReadBinding.inflate(layoutInflater)
setContentView(binding.root)
-
+
initView()
}
private fun initView() {
- // 璁剧疆鏍囬
- binding.titleBar.setCenterText("璇诲崱")
// 璁剧疆TitleBar鐨勮繑鍥炴寜閽偣鍑讳簨浠�
binding.titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE) {
finish()
}
-
+
}
@@ -73,8 +71,8 @@
}
override fun onNfcBack(intent: Intent?) {
- intent?.let {
- handleNfcIntent(it)
+ intent?.let {
+ handleNfcIntent(it)
} ?: run {
showConfirmDialog("NFC鏁版嵁寮傚父锛岃閲嶆柊鍒峰崱") {
}
@@ -117,12 +115,13 @@
// 鏍规嵁鍗$墖绫诲瀷杩涜涓嶅悓澶勭悊
when (cardType) {
- CardCommon.USER_CARD_TYPE_1,
- CardCommon.USER_CARD_TYPE_2,
+ CardCommon.USER_CARD_TYPE_1,
+ CardCommon.USER_CARD_TYPE_2,
CardCommon.USER_CARD_TYPE_3 -> {
// 鐢ㄦ埛鍗★細瑙f瀽鍗″唴鏁版嵁骞惰皟鐢ㄦ帴鍙�
handleUserCard(cardNumber, cardType, nfcAdapter)
}
+
else -> {
// 绠$悊绫诲崱锛氭樉绀哄崱鐗囩被鍨嬩俊鎭�
handleManagementCard(cardNumber, cardType)
@@ -146,6 +145,23 @@
}
return
}
+ binding.tvCardNumber.text = cardNumber
+ // 杈撳嚭鐢ㄦ埛鍗″唴鎵�鏈変俊鎭埌鏃ュ織
+ android.util.Log.d("CardReadActivity", "=== 鐢ㄦ埛鍗′俊鎭� ===")
+ android.util.Log.d("CardReadActivity", "鍗″彿: $cardNumber")
+ android.util.Log.d("CardReadActivity", "鍗$墖绫诲瀷: $cardType")
+ android.util.Log.d("CardReadActivity", "鍥藉琛屾斂鍖哄煙鍙�: ${userCard.areaNumber}")
+ android.util.Log.d("CardReadActivity", "鐢ㄦ埛缂栧彿: ${userCard.userCode}")
+ android.util.Log.d("CardReadActivity", "鐢ㄦ埛鍗$紪鍙�: ${userCard.userCodeNumber}")
+ android.util.Log.d("CardReadActivity", "瀹屾暣鐢ㄦ埛缂栧彿: ${userCard.getMyUserCode()}")
+ android.util.Log.d("CardReadActivity", "鎵嬫満鍙�: ${userCard.phoneNumber}")
+ android.util.Log.d("CardReadActivity", "椤圭洰缂栫爜: ${userCard.projectCode}")
+ android.util.Log.d("CardReadActivity", "鍗″唴浣欓: ${userCard.balance}")
+ android.util.Log.d("CardReadActivity", "鍓╀綑姘撮噺: ${userCard.surplusWater}")
+ android.util.Log.d("CardReadActivity", "姘撮噺鍗曚环: ${userCard.waterPrice}")
+ android.util.Log.d("CardReadActivity", "鐢甸噺鍗曚环: ${userCard.electricPrice}")
+ android.util.Log.d("CardReadActivity", "鍏呭�兼椂闂�: ${userCard.rechargeDate}")
+ android.util.Log.d("CardReadActivity", "==================")
// 鏍规嵁鍗″彿鑾峰彇鍗$墖璇︾粏淇℃伅
getCardInfo(cardNumber, cardType, userCard)
@@ -156,7 +172,7 @@
*/
private fun handleManagementCard(cardNumber: String, cardType: String) {
val cardTypeName = getCardTypeName(cardType)
-
+
// 鏄剧ず绠$悊鍗′俊鎭�
showManagementCardInfo(cardNumber, cardTypeName)
}
@@ -168,13 +184,12 @@
// 闅愯棌璇诲崱鎻愮ず锛屾樉绀轰俊鎭尯鍩�
binding.cardReadLL.visibility = android.view.View.GONE
binding.cardInfoContainer.visibility = android.view.View.VISIBLE
-
-
+
// 鏄剧ず鍩烘湰淇℃伅
- binding.tvCardNumber.text = cardNumber
+
binding.tvCardType.text = cardTypeName
-
+
// 闅愯棌鐢ㄦ埛鍗$壒鏈夌殑瀛楁
binding.llCardBalance.visibility = android.view.View.GONE
binding.llUserNumber.visibility = android.view.View.GONE
@@ -238,22 +253,26 @@
/**
* 鏄剧ず鐢ㄦ埛鍗$墖淇℃伅锛堝寘鍚崱鍐呮暟鎹拰鎺ュ彛杩斿洖鏁版嵁锛�
*/
- private fun showUserCardInfo(cardInfo: CardInfoResult?, cardNumber: String, cardType: String, userCard: UserCard) {
+ private fun showUserCardInfo(
+ cardInfo: CardInfoResult?,
+ cardNumber: String,
+ cardType: String,
+ userCard: UserCard
+ ) {
// 闅愯棌璇诲崱鎻愮ず锛屾樉绀轰俊鎭尯鍩�
binding.cardReadLL.visibility = android.view.View.GONE
binding.cardInfoContainer.visibility = android.view.View.VISIBLE
val cardTypeName = getCardTypeName(cardType)
-
+
// 鏄剧ず鍗″唴鏁版嵁
- binding.tvCardNumber.text = cardNumber
+
binding.tvCardType.text = cardTypeName
-
// 鏄剧ず鐢ㄦ埛鍗$壒鏈夊瓧娈�
binding.llCardBalance.visibility = android.view.View.VISIBLE
binding.llUserNumber.visibility = android.view.View.VISIBLE
binding.llCardStatus.visibility = android.view.View.VISIBLE
-
+
userCard.let { card ->
// 浣欓杞崲涓哄厓锛堝師濮嬫暟鎹彲鑳芥槸鍒嗭級
val balanceInYuan = if (card.balance > 1000) {
@@ -262,18 +281,19 @@
card.balance.toString()
}
binding.tvCardBalance.text = "${balanceInYuan}鍏�"
-
+
// 浣跨敤瀹屾暣鐨勭敤鎴风紪鍙�
- binding.tvUserNumber.text = card.getMyUserCode()
-
+ binding.tvUserNumber.text = cardInfo?.cardNum
+
// 鍗$墖鐘舵�侊紙鍋囪姝e父鐘舵�侊紝鍥犱负UserCard涓病鏈夌姸鎬佸瓧娈碉級
binding.tvCardStatus.text = "姝e父"
binding.tvCardStatus.setTextColor(android.graphics.Color.parseColor("#4CAF50"))
-
+
// 鍏呭�兼椂闂翠綔涓烘渶鍚庝娇鐢ㄦ椂闂�
if (card.rechargeDate != null) {
binding.llLastUseTime.visibility = android.view.View.VISIBLE
- val dateFormat = java.text.SimpleDateFormat("yyyy-MM-dd HH:mm", java.util.Locale.getDefault())
+ val dateFormat =
+ java.text.SimpleDateFormat("yyyy-MM-dd HH:mm", java.util.Locale.getDefault())
binding.tvLastUseTime.text = dateFormat.format(card.rechargeDate!!.time)
} else {
binding.llLastUseTime.visibility = android.view.View.GONE
@@ -305,6 +325,7 @@
"1001" -> {
"璇ュ崱鐗囨湭鍦ㄧ郴缁熶腑娉ㄥ唽锛岃鍏堣繘琛屽紑鍗℃搷浣溿��"
}
+
else -> {
when {
msg.isNullOrBlank() -> "鑾峰彇鍗′俊鎭け璐ワ紝璇烽噸鏂板埛鍗¢噸璇曘��"
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt b/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
index 045f203..2eb3f4c 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
@@ -60,12 +60,12 @@
// 瀹㈡埛ID
private var clientId: String = ""
- private lateinit var clientInfo : ClientInfo
+ private lateinit var clientInfo: ClientInfo
// 鏄惁宸茶鍗�
private var isReadCard: Boolean = false
- private var orderId:String=""
+ private var orderId: String = ""
companion object {
private const val TAG = "NewCard2Activity"
@@ -335,7 +335,7 @@
object : SubscriberListener<BaseResponse<NewCardDataResult>>() {
override fun onNext(response: BaseResponse<NewCardDataResult>) {
if (response.success) {
- orderId=response.content?.orderNo.toString()
+ orderId = response.content?.orderNo.toString()
// 淇濆瓨寮�鍗′俊鎭埌鏁版嵁搴�
val cardRegistration = CardRegistrationBean(
cardNumber = cardPhysicalId,
@@ -362,16 +362,78 @@
putExtra("orderNumber", orderId)
putExtra("cardAddr", cardPhysicalId)
var userCard = UserCard()
- userCard.areaNumber = response.content?.cardNum?.substring(0, 12).toString()
- userCard.userCode =clientInfo.clientNum
- userCard.phoneNumber =clientInfo.phone
- userCard.userCodeNumber = response.content?.cardNum?.substring(12)?.toInt()!!
+ userCard.areaNumber =
+ response.content?.cardNum?.substring(0, 12).toString()
+ userCard.userCode = clientInfo.clientNum
+ userCard.phoneNumber = clientInfo.phone
+ userCard.userCodeNumber =
+ response.content?.cardNum?.substring(12)?.toInt()!!
userCard.projectCode = response.content?.projectNo!!
- userCard.balance = MornyUtil.changeY2F(response.content?.balance)
+ userCard.balance =
+ MornyUtil.changeY2F(response.content?.balance)
// userCard.surplusWater = response.content?.surplusWater?.toInt()!!
- userCard.waterPrice = response.content?.waterPrice?.toFloat()!!
-// userCard.electricPrice = response.content?.electricPrice?.toFloat()!!
- userCard.rechargeDate = DateUtils.parseStringToCalendar(response.content?.time)
+ userCard.waterPrice =
+ MornyUtil.changeY2F(response.content?.waterPrice)
+ userCard.electricPrice =
+ MornyUtil.changeY2F(response.content?.waterPrice)
+ userCard.rechargeDate =
+ DateUtils.parseStringToCalendar(response.content?.time)
+
+ // 杈撳嚭userCard鐨勬墍鏈変俊鎭埌鏃ュ織
+ android.util.Log.d(
+ "NewCard2Activity",
+ "=== 寮�鍗serCard淇℃伅 ==="
+ )
+ android.util.Log.d(
+ "NewCard2Activity",
+ "鍗$墖绫诲瀷: ${userCard.cardType}"
+ )
+ android.util.Log.d(
+ "NewCard2Activity",
+ "鍥藉琛屾斂鍖哄煙鍙�: ${userCard.areaNumber}"
+ )
+ android.util.Log.d(
+ "NewCard2Activity",
+ "鐢ㄦ埛缂栧彿: ${userCard.userCode}"
+ )
+ android.util.Log.d(
+ "NewCard2Activity",
+ "鐢ㄦ埛鍗$紪鍙�: ${userCard.userCodeNumber}"
+ )
+ android.util.Log.d(
+ "NewCard2Activity",
+ "瀹屾暣鐢ㄦ埛缂栧彿: ${userCard.getMyUserCode()}"
+ )
+ android.util.Log.d(
+ "NewCard2Activity",
+ "鎵嬫満鍙�: ${userCard.phoneNumber}"
+ )
+ android.util.Log.d(
+ "NewCard2Activity",
+ "椤圭洰缂栫爜: ${userCard.projectCode}"
+ )
+ android.util.Log.d(
+ "NewCard2Activity",
+ "鍗″唴浣欓: ${userCard.balance}"
+ )
+ android.util.Log.d(
+ "NewCard2Activity",
+ "鍓╀綑姘撮噺: ${userCard.surplusWater}"
+ )
+ android.util.Log.d(
+ "NewCard2Activity",
+ "姘撮噺鍗曚环: ${userCard.waterPrice}"
+ )
+ android.util.Log.d(
+ "NewCard2Activity",
+ "鐢甸噺鍗曚环: ${userCard.electricPrice}"
+ )
+ android.util.Log.d(
+ "NewCard2Activity",
+ "鍏呭�兼椂闂�: ${userCard.rechargeDate}"
+ )
+ android.util.Log.d("NewCard2Activity", "==================")
+
putExtra("userCard", userCard)
putExtra("operationTypeCode", CardOperationType.OpenCard.code)
putExtra("cardFee", cardFee)
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
index e1c384c..ad1a0c3 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
@@ -5,6 +5,7 @@
import androidx.lifecycle.lifecycleScope
import com.dayu.baselibrary.net.subscribers.SubscriberListener
import com.dayu.baselibrary.tools.nfc.NFCCallBack
+import com.dayu.baselibrary.utils.MornyUtil
import com.dayu.baselibrary.utils.ToastUtil
import com.dayu.general.bean.card.ClearCard
import com.dayu.general.bean.card.UserCard
@@ -30,7 +31,7 @@
var cardType = ""
var cardAddr = ""
var cardFee = 0
-
+
// 鍏呭�肩浉鍏抽噾棰�
private var rechargeAmount = 0.0
private var bonusAmount = 0.0
@@ -57,11 +58,11 @@
operationTypeCode = intent?.getIntExtra("operationTypeCode", -1) ?: -1
orderNumber = intent?.getStringExtra("orderNumber") ?: ""
operationType = CardOperationType.fromCode(operationTypeCode)
-
+
// 鑾峰彇鍏呭�肩浉鍏抽噾棰�
rechargeAmount = intent?.getDoubleExtra("rechargeAmount", 0.0) ?: 0.0
bonusAmount = intent?.getDoubleExtra("bonusAmount", 0.0) ?: 0.0
-
+
if (intent?.hasExtra("cardFee") == true) {
cardFee = intent?.getIntExtra("cardFee", 0) ?: 0
}
@@ -86,7 +87,7 @@
textData.append("宸ユ湰璐癸細" + cardFee + "鍏僜n")
}
if (userCard.balance != 0) {
- textData.append("鍏呭�奸噾棰濓細" + userCard.balance + "鍏�")
+ textData.append("鍏呭�奸噾棰濓細" + MornyUtil.changeF2Y(userCard.balance) + "鍏�")
}
binding?.cardData?.text = textData.toString()
@@ -95,23 +96,33 @@
CardOperationType.Recharge -> {
var textData = StringBuilder()
textData.append("鐢ㄦ埛鍏呭�糪n")
-
+
// 鏄剧ず鍏呭�奸噾棰�
if (rechargeAmount > 0) {
- textData.append("鍏呭�奸噾棰濓細" + String.format("%.2f", rechargeAmount) + "鍏僜n")
+ textData.append(
+ "鍏呭�奸噾棰濓細" + String.format(
+ "%.2f",
+ rechargeAmount
+ ) + "鍏僜n"
+ )
}
-
+
// 鏄剧ず璧犻�侀噾棰�
if (bonusAmount > 0) {
textData.append("璧犻�侀噾棰濓細" + String.format("%.2f", bonusAmount) + "鍏僜n")
}
-
+
// 鏄剧ず鎬婚噾棰濓紙鍐欏叆鍗″唴鐨勬�讳綑棰濓級
if (userCard.balance != 0) {
val totalBalanceInYuan = userCard.balance / 100.0 // 杞崲涓哄厓
- textData.append("鍗″唴鎬讳綑棰濓細" + String.format("%.2f", totalBalanceInYuan) + "鍏�")
+ textData.append(
+ "鍗″唴鎬讳綑棰濓細" + String.format(
+ "%.2f",
+ totalBalanceInYuan
+ ) + "鍏�"
+ )
}
-
+
binding?.cardData?.text = textData.toString()
}
@@ -130,7 +141,7 @@
val nfcReadHelper = NfcReadHelper.getInstance(intent, this)
// 浣跨敤姝e父鐨刧etCardNumber()鏂规硶锛屽畠浼氳嚜鍔ㄥ叧闂繛鎺�
val cardNumber = nfcReadHelper.getCardNumber()
-
+
if (cardNumber.isNotEmpty() && cardNumber == cardAddr) {
val nfcWreatHelper = NfcWreatHelper.getInstance(intent, this)
when (operationType) {
@@ -210,7 +221,7 @@
val updatedCardRegistration = cardRegistration.copy(isCardWritten = true)
// 鏇存柊鏁版嵁搴撹褰�
cardRegistrationDao.update(updatedCardRegistration)
-
+
// 鍦ㄤ富绾跨▼涓叧闂瑼ctivity
runOnUiThread {
setResult(RESULT_OK)
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt
index bd7b9f1..8ea5625 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt
@@ -12,6 +12,7 @@
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.dayu.baselibrary.net.subscribers.SubscriberListener
+import com.dayu.baselibrary.utils.MornyUtil
import com.dayu.baselibrary.utils.ToastUtil
import com.dayu.baselibrary.view.TitleBar
import com.dayu.general.BaseApplication
@@ -45,7 +46,12 @@
private const val EXTRA_CARD_ADDRESS = "extra_card_address"
private const val EXTRA_USER_CARD = "extra_user_card"
- fun start(context: Context, cardInfo: CardInfoResult?, cardAddress: String?, userCard: UserCard?) {
+ fun start(
+ context: Context,
+ cardInfo: CardInfoResult?,
+ cardAddress: String?,
+ userCard: UserCard?
+ ) {
val intent = Intent(context, RechargeDetailActivity::class.java)
intent.putExtra(EXTRA_CARD_INFO, cardInfo)
intent.putExtra(EXTRA_CARD_ADDRESS, cardAddress)
@@ -86,7 +92,7 @@
// 澶勭悊鍏呭�奸�昏緫
handleRecharge()
}
-
+
// 璁剧疆閲戦杈撳叆闄愬埗
setupAmountInputLimit(binding.rechargeMorny)
setupAmountInputLimit(binding.rechargeWater)
@@ -98,13 +104,13 @@
private fun setupAmountInputLimit(editText: EditText) {
editText.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
-
+
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
-
+
override fun afterTextChanged(s: Editable?) {
val text = s.toString()
if (text.isEmpty()) return
-
+
// 妫�鏌ユ槸鍚﹀寘鍚皬鏁扮偣
if (text.contains(".")) {
val parts = text.split(".")
@@ -120,7 +126,7 @@
}
}
}
-
+
// 闃叉杈撳叆澶氫釜灏忔暟鐐�
val dotCount = text.count { it == '.' }
if (dotCount > 1) {
@@ -130,7 +136,7 @@
editText.setSelection(newText.length)
editText.addTextChangedListener(this)
}
-
+
// 闃叉浠ュ皬鏁扮偣寮�澶�
if (text.startsWith(".")) {
editText.removeTextChangedListener(this)
@@ -249,9 +255,9 @@
binding.redInitCode.text = cardAddress ?: ""
binding.userName.text = info.userName ?: ""
binding.redCardNum.text = info.cardNum ?: ""
-
+
// 浣跨敤鐢ㄦ埛鍗′腑鐨勪綑棰濇樉绀�
- val balance = userCard?.let {
+ val balance = userCard?.let {
// 灏嗗垎杞崲涓哄厓锛屼繚鐣欎袱浣嶅皬鏁�
String.format("%.2f", it.balance / 100.0)
} ?: run {
@@ -389,25 +395,30 @@
/**
* 鍚姩鍐欏崱鐣岄潰
*/
- private fun startWriteCardActivity(rechargeResult: RechargeResult, rechargeAmount: Double, bonusAmount: Double) {
+ private fun startWriteCardActivity(
+ rechargeResult: RechargeResult,
+ rechargeAmount: Double,
+ bonusAmount: Double
+ ) {
try {
// 鍒涘缓UserCard瀵硅薄鐢ㄤ簬鍐欏崱
val userCard = UserCard().apply {
// 璁剧疆鐢ㄦ埛鍗′俊鎭�
cardInfo?.let { info ->
userCode = info.cardNum ?: ""
-
+
// 璁$畻鏂颁綑棰濓細鍘熸湁浣欓 + 鍏呭�奸噾棰� + 璧犻�侀噾棰�
- val originalBalance = this@RechargeDetailActivity.userCard?.balance ?: 0 // 鍘熸湁浣欓锛堝垎锛�
+ val originalBalance =
+ this@RechargeDetailActivity.userCard?.balance ?: 0 // 鍘熸湁浣欓锛堝垎锛�
val rechargeAmountInCents = (rechargeAmount * 100).toInt() // 鍏呭�奸噾棰濊浆鍒�
val bonusAmountInCents = (bonusAmount * 100).toInt() // 璧犻�侀噾棰濊浆鍒�
-
+
balance = originalBalance + rechargeAmountInCents + bonusAmountInCents
}
-
+
// 璁剧疆鍏朵粬蹇呰淇℃伅
projectCode = rechargeResult.projectNo
- waterPrice = rechargeResult.waterPrice.toFloat()
+ waterPrice = MornyUtil.changeY2F(rechargeResult.waterPrice.toString())
rechargeDate = java.util.Calendar.getInstance()
}
diff --git a/generallibrary/src/main/java/com/dayu/general/bean/card/UserCard.kt b/generallibrary/src/main/java/com/dayu/general/bean/card/UserCard.kt
index 8e43c3d..3d7168e 100644
--- a/generallibrary/src/main/java/com/dayu/general/bean/card/UserCard.kt
+++ b/generallibrary/src/main/java/com/dayu/general/bean/card/UserCard.kt
@@ -17,10 +17,10 @@
var userCodeNumber: Int = 0 // 鐢ㄦ埛鍗$紪鍙�(HEX)
var phoneNumber: String = "" // 鎵嬫満鍙�(BCD)
var projectCode: Int = 0 // 椤圭洰缂栫爜(HEX 1-255)
- var balance: Int = 0 // 鍓╀綑閲戦(2浣嶅皬鏁扮偣锛屽崟浣嶅厓)
+ var balance: Int = 0 // 鍓╀綑閲戦(2浣嶅皬鏁扮偣锛屽崟浣嶅垎)
var surplusWater: Int = 0 // 鍓╀綑姘撮噺(2浣嶅皬鏁扮偣锛屽崟浣嶇珛鏂圭背)
- var waterPrice: Float = 0f // 姘撮噺鍗曚环(鏈�澶�655.35锛�2浣嶅皬鏁扮偣銆傚崟浣嶏細m3/鍏�)
- var electricPrice: Float = 0f // 鐢甸噺鍗曚环(鏈�澶�655.35锛�2浣嶅皬鏁扮偣銆傚崟浣�: 鍏�/搴�)
+ var waterPrice: Int = 0 // 姘撮噺鍗曚环(2浣嶅皬鏁扮偣锛屽崟浣嶅垎/m3)
+ var electricPrice: Int = 0 // 鐢甸噺鍗曚环(2浣嶅皬鏁扮偣锛屽崟浣嶅垎/搴�)
var rechargeDate: Calendar? = null // 鍏呭�兼椂闂�
/**
@@ -74,7 +74,7 @@
projectCode = HexUtil.get16To10LowHightByBytes(byteArrayOf(one[0]))
balance = HexUtil.get16To10LowHightByBytes(one.copyOfRange(1, 5))
surplusWater = HexUtil.get16To10LowHightByBytes(one.copyOfRange(5, 9))
- electricPrice = HexUtil.hexToFloatLowHigh(one.copyOfRange(9, 11))
+ electricPrice = HexUtil.get16To10LowHightByBytes(one.copyOfRange(9, 11))
// 瑙f瀽鍏呭�兼椂闂�
val year = HexUtil.getBcdToInt(one[11])
@@ -90,7 +90,7 @@
// 瑙f瀽绗�2鍧�
val two = data[2]
userCard.apply {
- waterPrice = HexUtil.hexToFloatLowHigh(two.copyOfRange(9, 11))
+ waterPrice = HexUtil.get16To10LowHightByBytes(two.copyOfRange(9, 11))
}
return userCard
@@ -157,10 +157,11 @@
System.arraycopy(waterPadded, 0, data, 5, 4)
// 璁剧疆鐢典环 - 淇锛氱‘淇濇暟缁勯暱搴︽纭�
- val priceBytes = HexUtil.hexToByteArray(HexUtil.floatToHexLowHigh(electricPrice))
- val pricePadded = ByteArray(2)
- System.arraycopy(priceBytes, 0, pricePadded, 0, minOf(priceBytes.size, 2))
- System.arraycopy(pricePadded, 0, data, 9, 2)
+ val electricPriceHex = HexUtil.get10To16LowHigh(electricPrice)
+ val electricPriceBytes = HexUtil.hexToByteArray(electricPriceHex)
+ val electricPricePadded = ByteArray(2)
+ System.arraycopy(electricPriceBytes, 0, electricPricePadded, 0, minOf(electricPriceBytes.size, 2))
+ System.arraycopy(electricPricePadded, 0, data, 9, 2)
// 璁剧疆鍏呭�兼椂闂�
rechargeDate?.let {
@@ -196,10 +197,11 @@
System.arraycopy(waterPadded, 0, data, 5, 4)
// 璁剧疆姘翠环 - 淇锛氱‘淇濇暟缁勯暱搴︽纭�
- val priceBytes = HexUtil.hexToByteArray(HexUtil.floatToHexLowHigh(waterPrice))
- val pricePadded = ByteArray(2)
- System.arraycopy(priceBytes, 0, pricePadded, 0, minOf(priceBytes.size, 2))
- System.arraycopy(pricePadded, 0, data, 9, 2)
+ val waterPriceHex = HexUtil.get10To16LowHigh(waterPrice)
+ val waterPriceBytes = HexUtil.hexToByteArray(waterPriceHex)
+ val waterPricePadded = ByteArray(2)
+ System.arraycopy(waterPriceBytes, 0, waterPricePadded, 0, minOf(waterPriceBytes.size, 2))
+ System.arraycopy(waterPricePadded, 0, data, 9, 2)
// 璁剧疆鍏呭�兼椂闂�
rechargeDate?.let {
diff --git a/generallibrary/src/main/res/layout/activity_card_read.xml b/generallibrary/src/main/res/layout/activity_card_read.xml
index e6ab761..2e2cf6b 100644
--- a/generallibrary/src/main/res/layout/activity_card_read.xml
+++ b/generallibrary/src/main/res/layout/activity_card_read.xml
@@ -11,7 +11,8 @@
android:layout_height="@dimen/dimen_title_height"
android:background="@color/title_bar_bg"
android:elevation="4dp"
- app:centerText="璇诲崱" />
+ app:centerText="璇诲崱"
+ app:leftImage="@mipmap/icon_back" />
<ScrollView
android:layout_width="match_parent"
@@ -32,7 +33,7 @@
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
- android:visibility="gone">
+ android:visibility="visible">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
@@ -95,7 +96,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
- android:visibility="visible">
+ android:visibility="gone">
<!-- 鍗″唴鏁版嵁鍖哄煙 -->
<androidx.cardview.widget.CardView
@@ -116,9 +117,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
- android:orientation="horizontal"
- android:gravity="center_vertical"
android:background="#F8F9FA"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
android:padding="12dp">
<TextView
@@ -143,15 +144,15 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
- android:orientation="horizontal"
- android:gravity="center_vertical"
android:background="#FFFFFF"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
android:padding="12dp">
<TextView
android:layout_width="105dp"
android:layout_height="wrap_content"
- android:text="鍗″彿锛�"
+ android:text="鍗″湴鍧�锛�"
android:textColor="#333333"
android:textSize="@dimen/text_size" />
@@ -164,15 +165,42 @@
android:textColor="#666666"
android:textSize="@dimen/text_size" />
</LinearLayout>
+ <!-- 鍗$墖鐘舵�� -->
+ <LinearLayout
+ android:id="@+id/ll_card_status"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="2dp"
+ android:background="#FFFFFF"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:padding="12dp"
+ android:visibility="visible">
+ <TextView
+ android:layout_width="105dp"
+ android:layout_height="wrap_content"
+ android:text="鍗$墖鐘舵�侊細"
+ android:textColor="#333333"
+ android:textSize="@dimen/text_size" />
+
+ <TextView
+ android:id="@+id/tv_card_status"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="姝e父"
+ android:textColor="#4CAF50"
+ android:textSize="@dimen/text_size" />
+ </LinearLayout>
<!-- 鍗$墖绫诲瀷 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
- android:orientation="horizontal"
- android:gravity="center_vertical"
android:background="#F8F9FA"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
android:padding="12dp">
<TextView
@@ -198,11 +226,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
- android:orientation="horizontal"
- android:visibility="visible"
- android:gravity="center_vertical"
android:background="#FFFFFF"
- android:padding="12dp">
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:padding="12dp"
+ android:visibility="visible">
<TextView
android:layout_width="105dp"
@@ -228,11 +256,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
- android:orientation="horizontal"
- android:visibility="visible"
- android:gravity="center_vertical"
android:background="#F8F9FA"
- android:padding="12dp">
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:padding="12dp"
+ android:visibility="visible">
<TextView
android:layout_width="105dp"
@@ -256,9 +284,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
- android:orientation="horizontal"
- android:gravity="center_vertical"
android:background="#FFFFFF"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
android:padding="12dp">
<TextView
@@ -283,9 +311,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
- android:orientation="horizontal"
- android:gravity="center_vertical"
android:background="#F8F9FA"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
android:padding="12dp">
<TextView
@@ -305,34 +333,6 @@
android:textSize="@dimen/text_size" />
</LinearLayout>
- <!-- 鍗$墖鐘舵�� -->
- <LinearLayout
- android:id="@+id/ll_card_status"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="2dp"
- android:orientation="horizontal"
- android:visibility="visible"
- android:gravity="center_vertical"
- android:background="#FFFFFF"
- android:padding="12dp">
-
- <TextView
- android:layout_width="105dp"
- android:layout_height="wrap_content"
- android:text="鍗$墖鐘舵�侊細"
- android:textColor="#333333"
- android:textSize="@dimen/text_size" />
-
- <TextView
- android:id="@+id/tv_card_status"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="姝e父"
- android:textColor="#4CAF50"
- android:textSize="@dimen/text_size" />
- </LinearLayout>
<!-- 鏈�鍚庝娇鐢ㄦ椂闂� -->
<LinearLayout
@@ -340,11 +340,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
- android:orientation="horizontal"
- android:visibility="visible"
- android:gravity="center_vertical"
android:background="#F8F9FA"
- android:padding="12dp">
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:padding="12dp"
+ android:visibility="visible">
<TextView
android:layout_width="105dp"
--
Gitblit v1.8.0