UI is more vivid when merchant sets amount
Auto Tag on Version Change / check-version (push) Successful in 3s

This commit is contained in:
2026-09-30 21:52:17 +05:00
parent 9f40c56b49
commit c2f473a6a3
3 changed files with 28 additions and 4 deletions
@@ -498,6 +498,29 @@ class TransferFragment : Fragment() {
updateTransferButton()
}
/**
* Freezes the amount at a merchant's preset value. Unlike disabling the field this keeps it
* at full colour — it's the figure being paid, so it should read clearly — and a lock icon
* says why it can't be typed into.
*/
internal fun setAmountLocked(locked: Boolean) {
binding.etAmount.apply {
isFocusable = !locked
isFocusableInTouchMode = !locked
isCursorVisible = !locked
isLongClickable = !locked
if (locked) clearFocus()
}
binding.tilAmount.apply {
if (locked) {
endIconMode = com.google.android.material.textfield.TextInputLayout.END_ICON_CUSTOM
endIconDrawable = ContextCompat.getDrawable(requireContext(), R.drawable.ic_lock)
} else {
endIconMode = com.google.android.material.textfield.TextInputLayout.END_ICON_NONE
}
}
}
internal fun startLookupLoading() {
val spinner = CircularProgressDrawable(requireContext()).apply {
setStyle(CircularProgressDrawable.DEFAULT)
@@ -1669,6 +1692,7 @@ class TransferFragment : Fragment() {
binding.tilFrom.visibility = View.VISIBLE
binding.tilAmount.prefixText = null
binding.tilAmount.isEnabled = true
setAmountLocked(false)
binding.tilRemarks.isEnabled = true
binding.tilRemarks.alpha = 1f
binding.etAmount.setText("")
@@ -174,7 +174,7 @@ class BmlTransferHandler(
if (qrInfo == null) return
draft.bmlQrInfo = null
draft.bmlGatewayQr = false
binding.tilAmount.isEnabled = true
fragment.setAmountLocked(false)
binding.tilRemarks.isEnabled = true
binding.tilRemarks.alpha = 1f
binding.etAmount.setText("")
@@ -293,7 +293,7 @@ class BmlTransferHandler(
// Pre-fill amount if dynamic QR
if (info.amount > 0.0) {
binding.etAmount.setText("%.2f".format(info.amount))
binding.tilAmount.isEnabled = false
fragment.setAmountLocked(true)
}
// Remarks not applicable for merchant QR payments
@@ -199,7 +199,7 @@ class MfaisaTransferHandler(
fun clearQrMerchant() {
if (qrInfo == null) return
qrInfo = null
binding.tilAmount.isEnabled = true
fragment.setAmountLocked(false)
binding.tilRemarks.isEnabled = true
binding.tilRemarks.alpha = 1f
binding.etAmount.setText("")
@@ -288,7 +288,7 @@ class MfaisaTransferHandler(
val dynamicAmount = merchant.txnAmount?.toDoubleOrNull()
if (dynamicAmount != null && dynamicAmount > 0.0) {
binding.etAmount.setText("%.2f".format(dynamicAmount))
binding.tilAmount.isEnabled = false
fragment.setAmountLocked(true)
}
onRecipientChanged()