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