From 480f4e42d772774705ac04c905c4d3ad7d986380 Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Sat, 16 May 2026 14:19:46 +0500 Subject: [PATCH] add warning for USD to MVR trnasfers --- .../sar/basedbank/ui/home/TransferFragment.kt | 38 +++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/TransferFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/TransferFragment.kt index ba58542..502fe43 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/home/TransferFragment.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/home/TransferFragment.kt @@ -14,6 +14,9 @@ import android.view.ViewGroup import android.widget.BaseAdapter import android.widget.Filter import android.widget.Filterable +import android.graphics.Typeface +import android.widget.LinearLayout +import android.widget.TextView import android.widget.Toast import androidx.appcompat.app.AlertDialog import androidx.core.widget.addTextChangedListener @@ -391,9 +394,18 @@ class TransferFragment : Fragment() { val destDisplay = binding.tvToAccountName.text?.toString() ?: resolvedAccountNumber val bankNameCapture = resolvedBankName val capturedToAvatar = (binding.ivToPhoto.drawable as? android.graphics.drawable.BitmapDrawable)?.bitmap - AlertDialog.Builder(requireContext()) + + val destCurrency = allAccounts.firstOrNull { it.accountNumber == resolvedAccountNumber } + ?.currencyName?.ifBlank { "MVR" } + ?: allContacts.firstOrNull { it.benefAccount == resolvedAccountNumber } + ?.transferCyDesc?.ifBlank { "MVR" } + ?: if (isDestMib) "MVR" else "MVR" + val isUsdToMvr = currency.equals("USD", ignoreCase = true) && destCurrency.equals("MVR", ignoreCase = true) + + val mainMsg = "Send $currency $amountStr to $destDisplay?\n\nFrom: ${src.accountBriefName} · ${src.accountNumber}" + + val dialogBuilder = AlertDialog.Builder(requireContext()) .setTitle(R.string.transfer) - .setMessage("Send $currency $amountStr to $destDisplay?\n\nFrom: ${src.accountBriefName} · ${src.accountNumber}") .setPositiveButton(R.string.transfer_confirm) { _, _ -> binding.btnTransfer.isEnabled = false viewLifecycleOwner.lifecycleScope.launch { @@ -416,7 +428,27 @@ class TransferFragment : Fragment() { } } .setNegativeButton(android.R.string.cancel, null) - .show() + + if (isUsdToMvr) { + val ctx = requireContext() + val dp = resources.displayMetrics.density + val container = LinearLayout(ctx).apply { + orientation = LinearLayout.VERTICAL + setPadding((24 * dp).toInt(), (16 * dp).toInt(), (24 * dp).toInt(), 0) + } + container.addView(TextView(ctx).apply { text = mainMsg }) + container.addView(TextView(ctx).apply { + text = "⚠ You are transferring from a USD account to an MVR account. The currency will be converted at the bank's rate and this cannot be reversed!" + setTextColor(Color.RED) + textSize = 16f + typeface = Typeface.DEFAULT_BOLD + setPadding(0, (16 * dp).toInt(), 0, 0) + }) + dialogBuilder.setView(container) + } else { + dialogBuilder.setMessage(mainMsg) + } + dialogBuilder.show() } private fun doMibTransfer(