summaryrefslogtreecommitdiff
path: root/cashier/src/main/java/net/taler/cashier/withdraw
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2022-07-14 15:36:18 -0300
committerTorsten Grote <t@grobox.de>2022-07-14 15:36:18 -0300
commit757b1db0813ff125708cb3ea3ca9a9ef6a1e4e73 (patch)
treed6db4bcffeedaac4c96a7b5d3558f0a92ca340b0 /cashier/src/main/java/net/taler/cashier/withdraw
parentd9e76c336d79911d6a8205c2682b8ebcf2f8df60 (diff)
downloadtaler-android-757b1db0813ff125708cb3ea3ca9a9ef6a1e4e73.tar.gz
taler-android-757b1db0813ff125708cb3ea3ca9a9ef6a1e4e73.tar.bz2
taler-android-757b1db0813ff125708cb3ea3ca9a9ef6a1e4e73.zip
[cashier] show error message when bank is reporting mismatching currencies
Diffstat (limited to 'cashier/src/main/java/net/taler/cashier/withdraw')
-rw-r--r--cashier/src/main/java/net/taler/cashier/withdraw/WithdrawManager.kt13
1 files changed, 11 insertions, 2 deletions
diff --git a/cashier/src/main/java/net/taler/cashier/withdraw/WithdrawManager.kt b/cashier/src/main/java/net/taler/cashier/withdraw/WithdrawManager.kt
index 1b809bb..601b59a 100644
--- a/cashier/src/main/java/net/taler/cashier/withdraw/WithdrawManager.kt
+++ b/cashier/src/main/java/net/taler/cashier/withdraw/WithdrawManager.kt
@@ -73,11 +73,20 @@ class WithdrawManager(
private val mLastTransaction = MutableLiveData<LastTransaction>()
val lastTransaction: LiveData<LastTransaction> = mLastTransaction
+ /**
+ * Returns null if the given [amount] can't be compared to the balance
+ * e.g. due to mismatching currency.
+ */
@UiThread
- fun hasSufficientBalance(amount: Amount): Boolean {
+ fun hasSufficientBalance(amount: Amount): Boolean? {
val balanceResult = viewModel.balance.value
if (balanceResult !is BalanceResult.Success) return false
- return balanceResult.amount.positive && amount <= balanceResult.amount.amount
+ return try {
+ balanceResult.amount.positive && amount <= balanceResult.amount.amount
+ } catch (e : IllegalStateException) {
+ Log.e(TAG, "Error comparing amounts", e)
+ null
+ }
}
@UiThread