diff options
author | Torsten Grote <t@grobox.de> | 2022-07-14 15:36:18 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2022-07-14 15:36:18 -0300 |
commit | 757b1db0813ff125708cb3ea3ca9a9ef6a1e4e73 (patch) | |
tree | d6db4bcffeedaac4c96a7b5d3558f0a92ca340b0 /cashier/src/main/java/net/taler/cashier/withdraw | |
parent | d9e76c336d79911d6a8205c2682b8ebcf2f8df60 (diff) | |
download | taler-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.kt | 13 |
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 |