optimize contact picker ui to disable forbidden transfers

This commit is contained in:
2026-05-14 05:24:32 +05:00
parent 6ed68df572
commit 8119d554cf
7 changed files with 89 additions and 28 deletions
@@ -164,7 +164,7 @@ class BmlLoginFlow {
val resp = apiClient.newCall(apiRequest(session, "$BASE_URL/api/mobile/dashboard")).execute()
val json = resp.body?.string() ?: return emptyList()
resp.close()
return parseDashboard(json)
return parseDashboard(json, "bml_${session.deviceId}")
}
fun fetchContacts(session: BmlSession): List<MibBeneficiary> {
@@ -181,7 +181,7 @@ class BmlLoginFlow {
.header("x-app-version", APP_VERSION)
.build()
private fun parseDashboard(json: String): List<MibAccount> {
private fun parseDashboard(json: String, loginTag: String): List<MibAccount> {
val root = JSONObject(json)
if (!root.optBoolean("success")) return emptyList()
val dashboard = root.optJSONObject("payload")?.optJSONArray("dashboard") ?: return emptyList()
@@ -211,7 +211,8 @@ class BmlLoginFlow {
blockedAmount = "%.2f".format(item.optDouble("lockedAmount", 0.0)),
mvrBalance = if (currency == "MVR") "%.2f".format(available) else "0.00",
statusDesc = status,
profileImageHash = null
profileImageHash = null,
loginTag = loginTag
))
} else if (accountType == "Card") {
val isPrepaid = item.optBoolean("prepaid_card", false)
@@ -230,7 +231,8 @@ class BmlLoginFlow {
blockedAmount = "0.00",
mvrBalance = if (currency == "MVR") "%.2f".format(available) else "0.00",
statusDesc = status,
profileImageHash = null
profileImageHash = null,
loginTag = loginTag
))
} else {
// Linked debit cards have no independent balance or account link — skip