diff options
author | Torsten Grote <t@grobox.de> | 2023-04-11 17:33:16 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2023-04-11 17:33:16 -0300 |
commit | 7cd48e38a0d502fb0748c9b1e04738be43c8c1cf (patch) | |
tree | d96623f75fc3be4096ff2af16fbc8279c6bc6554 /merchant-terminal/src/main/java/net | |
parent | 14cd3ad23f6e7008fae506df1e8894c977f61516 (diff) | |
download | taler-android-7cd48e38a0d502fb0748c9b1e04738be43c8c1cf.tar.gz taler-android-7cd48e38a0d502fb0748c9b1e04738be43c8c1cf.tar.bz2 taler-android-7cd48e38a0d502fb0748c9b1e04738be43c8c1cf.zip |
[pos] Don't crash when adding custom product with huge invalid amount
Diffstat (limited to 'merchant-terminal/src/main/java/net')
-rw-r--r-- | merchant-terminal/src/main/java/net/taler/merchantpos/order/CustomDialogFragment.kt | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/order/CustomDialogFragment.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/order/CustomDialogFragment.kt index bf14aae..45aaf06 100644 --- a/merchant-terminal/src/main/java/net/taler/merchantpos/order/CustomDialogFragment.kt +++ b/merchant-terminal/src/main/java/net/taler/merchantpos/order/CustomDialogFragment.kt @@ -20,10 +20,14 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Toast +import android.widget.Toast.LENGTH_LONG import androidx.fragment.app.DialogFragment import androidx.fragment.app.activityViewModels import net.taler.common.Amount +import net.taler.common.AmountParserException import net.taler.merchantpos.MainViewModel +import net.taler.merchantpos.R import net.taler.merchantpos.config.ConfigProduct import net.taler.merchantpos.databinding.FragmentCustomDialogBinding @@ -52,9 +56,16 @@ class CustomDialogFragment : DialogFragment() { ui.addButton.setOnClickListener { val currentOrderId = viewModel.orderManager.currentOrderId.value ?: return@setOnClickListener + val amount = try { + Amount.fromString(currency, ui.amountLayout.editText!!.text.toString()) + } catch (e: AmountParserException) { + Toast.makeText(requireContext(), R.string.refund_error_invalid_amount, LENGTH_LONG) + .show() + return@setOnClickListener + } val product = ConfigProduct( description = ui.productNameLayout.editText!!.text.toString(), - price = Amount.fromString(currency, ui.amountLayout.editText!!.text.toString()), + price = amount, categories = listOf(Int.MIN_VALUE), ) viewModel.orderManager.addProduct(currentOrderId, product) |