forked from thijooree/android
UI is more vivid when merchant sets amount
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user