From 21fbd8b12c9946ed3558ca916b72f1b6d8f61e05 Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Wed, 10 Jun 2026 01:50:05 +0500 Subject: [PATCH] reoder cards BML active > MIB > BML not active address #38 --- .../sar/basedbank/ui/home/DashboardFragment.kt | 2 +- .../basedbank/ui/home/PayWithCardFragment.kt | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/DashboardFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/DashboardFragment.kt index 39d5fac..c030a67 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/home/DashboardFragment.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/home/DashboardFragment.kt @@ -121,7 +121,7 @@ class DashboardFragment : Fragment() { val bmlItems = (viewModel.accounts.value ?: emptyList()) .filter { (it.profileType == "BML_PREPAID" || it.profileType == "BML_CREDIT" || it.profileType == "BML_DEBIT") && it.statusDesc.equals("Active", ignoreCase = true) && !hidden.contains(it.accountNumber) } .map { CardItem.Bml(it) } - val all = mibItems + bmlItems + val all = bmlItems + mibItems val defaultNum = credStore.getDefaultCardAccountNumber() val ordered = if (defaultNum != null) { val def = all.filterIsInstance().firstOrNull { it.account.accountNumber == defaultNum } diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/PayWithCardFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/PayWithCardFragment.kt index 0b6b05f..f9c4041 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/home/PayWithCardFragment.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/home/PayWithCardFragment.kt @@ -333,6 +333,16 @@ ViewCompat.setOnApplyWindowInsetsListener(binding.contentLayout) { v, insets -> } } + val isInactiveBml = item is CardItem.Bml && !item.account.statusDesc.equals("Active", ignoreCase = true) + binding.switchDefaultCard.isEnabled = !isInactiveBml + if (isInactiveBml) { + binding.switchHideFromDashboard.setOnCheckedChangeListener(null) + binding.switchHideFromDashboard.isChecked = true + binding.switchHideFromDashboard.isEnabled = false + } else { + binding.switchHideFromDashboard.isEnabled = true + } + // After layout pass, compute offsets, save carousel snapshot, and animate binding.contentLayout.doOnNextLayout { val mgr = binding.manageCardView.root @@ -704,7 +714,9 @@ ViewCompat.setOnApplyWindowInsetsListener(binding.contentLayout) { v, insets -> val bmlItems = (viewModel.accounts.value ?: emptyList()) .filter { it.profileType == "BML_PREPAID" || it.profileType == "BML_CREDIT" || it.profileType == "BML_DEBIT" } .map { CardItem.Bml(it) } - val all: List = mibItems + bmlItems + val bmlActive = bmlItems.filter { it.account.statusDesc.equals("Active", ignoreCase = true) } + val bmlInactive = bmlItems.filter { !it.account.statusDesc.equals("Active", ignoreCase = true) } + val all: List = bmlActive + mibItems + bmlInactive // Move default BML card to front cards = if (defaultNum != null) { val def = all.filterIsInstance().firstOrNull { it.account.accountNumber == defaultNum } @@ -809,6 +821,10 @@ ViewCompat.setOnApplyWindowInsetsListener(binding.contentLayout) { v, insets -> is CardItem.Mib -> item.card.cardTypeDesc is CardItem.Bml -> item.account.accountTypeName } + val isInactiveBml = item is CardItem.Bml && !item.account.statusDesc.equals("Active", ignoreCase = true) + val nfcAvailable = android.nfc.NfcAdapter.getDefaultAdapter(requireContext()) != null + binding.btnTapToPay.isEnabled = !isInactiveBml && nfcAvailable + binding.btnScanToPay.isEnabled = !isInactiveBml } fun onBackPressed(): Boolean {