diff options
author | Torsten Grote <t@grobox.de> | 2020-03-30 14:17:09 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-03-30 14:17:09 -0300 |
commit | db0cf385fe707091f219cc61fb4e12b5b1fe64d0 (patch) | |
tree | c50aca48f996e0dec20315cde0ae4d278bdf0640 /merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt | |
parent | 1dbc22f1faba07331953d761097d5ad91ffff5ce (diff) | |
download | taler-android-db0cf385fe707091f219cc61fb4e12b5b1fe64d0.tar.gz taler-android-db0cf385fe707091f219cc61fb4e12b5b1fe64d0.tar.bz2 taler-android-db0cf385fe707091f219cc61fb4e12b5b1fe64d0.zip |
Fix amount serialization in PoS app
Diffstat (limited to 'merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt')
-rw-r--r-- | merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt index 609eadd..7652ca4 100644 --- a/merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt +++ b/merchant-terminal/src/main/java/net/taler/merchantpos/history/RefundFragment.kt @@ -28,6 +28,8 @@ import androidx.navigation.fragment.findNavController import com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_LONG import com.google.android.material.snackbar.Snackbar import kotlinx.android.synthetic.main.fragment_refund.* +import net.taler.common.Amount +import net.taler.common.AmountParserException import net.taler.common.fadeIn import net.taler.common.fadeOut import net.taler.common.navigate @@ -52,7 +54,7 @@ class RefundFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { val item = refundManager.toBeRefunded ?: throw IllegalStateException() - amountInputView.setText(item.amount.toString()) + amountInputView.setText(item.amount.amountStr) currencyView.text = item.amount.currency abortButton.setOnClickListener { findNavController().navigateUp() } refundButton.setOnClickListener { onRefundButtonClicked(item) } @@ -63,12 +65,17 @@ class RefundFragment : Fragment() { } private fun onRefundButtonClicked(item: HistoryItem) { - val inputAmount = amountInputView.text.toString().toDouble() - if (inputAmount > item.amountStr.toDouble()) { // TODO real Amount comparision + val inputAmount = try { + Amount.fromString(item.amount.currency, amountInputView.text.toString()) + } catch (e: AmountParserException) { + amountView.error = getString(R.string.refund_error_invalid_amount) + return + } + if (inputAmount > item.amount) { amountView.error = getString(R.string.refund_error_max_amount, item.amountStr) return } - if (inputAmount <= 0.0) { + if (inputAmount.isZero()) { amountView.error = getString(R.string.refund_error_zero) return } |