diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/AccountsAdapter.kt b/app/src/main/java/sh/sar/basedbank/ui/home/AccountsAdapter.kt index 3919621..c9df329 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/home/AccountsAdapter.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/home/AccountsAdapter.kt @@ -125,6 +125,14 @@ class AccountsAdapter( binding.tvAccountNumber.text = display.number binding.tvAccountType.text = display.typeLabel binding.tvBalance.text = if (hideAmounts) maskAmount(display.balance) else display.balance + val blocked = display.blockedBalance + if (blocked != null) { + val shown = if (hideAmounts) maskAmount(blocked) else blocked + binding.tvBlocked.text = binding.root.context.getString(R.string.account_blocked_label, shown) + binding.tvBlocked.visibility = View.VISIBLE + } else { + binding.tvBlocked.visibility = View.GONE + } binding.btnTransfer.setOnClickListener { onTransferClick?.invoke(account) } binding.root.setOnClickListener { onAccountClick(account) } binding.root.setOnLongClickListener { diff --git a/app/src/main/java/sh/sar/basedbank/util/AccountListDisplay.kt b/app/src/main/java/sh/sar/basedbank/util/AccountListDisplay.kt index 647d04b..060a814 100644 --- a/app/src/main/java/sh/sar/basedbank/util/AccountListDisplay.kt +++ b/app/src/main/java/sh/sar/basedbank/util/AccountListDisplay.kt @@ -5,6 +5,7 @@ data class AccountListDisplay( val number: String, val typeLabel: String, val balance: String, + val blockedBalance: String? = null, // null when zero or not applicable val isCard: Boolean = false, val cardBrandIcon: Int = 0, // drawable res, only meaningful if isCard val statusLabel: String? = null // null = active; shown as status pill if set diff --git a/app/src/main/java/sh/sar/basedbank/util/bmlapi/BmlDashboardParser.kt b/app/src/main/java/sh/sar/basedbank/util/bmlapi/BmlDashboardParser.kt index a6e747b..47c2f31 100644 --- a/app/src/main/java/sh/sar/basedbank/util/bmlapi/BmlDashboardParser.kt +++ b/app/src/main/java/sh/sar/basedbank/util/bmlapi/BmlDashboardParser.kt @@ -26,11 +26,13 @@ object BmlDashboardParser { statusLabel = if (isActive) null else account.statusDesc ) } else { + val blocked = account.blockedAmount.toDoubleOrNull() ?: 0.0 AccountListDisplay( - name = account.accountBriefName, - number = account.accountNumber, - typeLabel = productLabel(account.accountTypeName), - balance = listBalance(account) + name = account.accountBriefName, + number = account.accountNumber, + typeLabel = productLabel(account.accountTypeName), + balance = listBalance(account), + blockedBalance = if (blocked > 0.0) "${account.currencyName} ${account.blockedAmount}" else null ) } } @@ -52,9 +54,9 @@ object BmlDashboardParser { } } - /** Balance shown in the accounts list — ledger (working) balance for BML CASA. */ + /** Balance shown in the accounts list — available balance, consistent with transfer/contact picker. */ fun listBalance(account: BankAccount): String = - "${account.currencyName} ${account.currentBalance}" + "${account.currencyName} ${account.availableBalance}" fun cardBrandIcon(productName: String): Int = when { productName.contains("AMEX", ignoreCase = true) || diff --git a/app/src/main/res/layout/item_account.xml b/app/src/main/res/layout/item_account.xml index 99cdbc8..6a5a514 100644 --- a/app/src/main/res/layout/item_account.xml +++ b/app/src/main/res/layout/item_account.xml @@ -72,6 +72,15 @@ android:textAppearance="?attr/textAppearanceTitleSmall" android:textColor="?attr/colorOnSurface" /> + + Accounts Cards Available Balance + %1$s blocked Quick Transfer