[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taler-android] branch master updated: [cashier] show error messag
From: |
gnunet |
Subject: |
[taler-taler-android] branch master updated: [cashier] show error message when bank is reporting mismatching currencies |
Date: |
Thu, 14 Jul 2022 20:38:37 +0200 |
This is an automated email from the git hooks/post-receive script.
torsten-grote pushed a commit to branch master
in repository taler-android.
The following commit(s) were added to refs/heads/master by this push:
new 757b1db [cashier] show error message when bank is reporting
mismatching currencies
757b1db is described below
commit 757b1db0813ff125708cb3ea3ca9a9ef6a1e4e73
Author: Torsten Grote <t@grobox.de>
AuthorDate: Thu Jul 14 15:36:18 2022 -0300
[cashier] show error message when bank is reporting mismatching currencies
---
.idea/gradle.xml | 2 --
.../main/java/net/taler/cashier/BalanceFragment.kt | 20 +++++++++++++-------
.../net/taler/cashier/withdraw/WithdrawManager.kt | 13 +++++++++++--
cashier/src/main/res/values/strings.xml | 1 +
4 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 4cc0060..2277df3 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -15,8 +15,6 @@
<option value="$PROJECT_DIR$/cashier" />
<option value="$PROJECT_DIR$/merchant-lib" />
<option value="$PROJECT_DIR$/merchant-terminal" />
- <option value="$PROJECT_DIR$/multiplatform" />
- <option value="$PROJECT_DIR$/multiplatform/common" />
<option value="$PROJECT_DIR$/taler-kotlin-android" />
<option value="$PROJECT_DIR$/wallet" />
</set>
diff --git a/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt
b/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt
index fa9600b..c0e2aca 100644
--- a/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt
+++ b/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt
@@ -164,13 +164,19 @@ class BalanceFragment : Fragment() {
private fun onAmountConfirmed(amount: Amount) {
if (amount.isZero()) {
ui.amountView.error = getString(R.string.withdraw_error_zero)
- } else if (!withdrawManager.hasSufficientBalance(amount)) {
- ui.amountView.error =
getString(R.string.withdraw_error_insufficient_balance)
- } else {
- ui.amountView.error = null
- withdrawManager.withdraw(amount)
- actionBalanceFragmentToTransactionFragment().let {
- findNavController().navigate(it)
+ } else when (withdrawManager.hasSufficientBalance(amount)) {
+ true -> {
+ ui.amountView.error = null
+ withdrawManager.withdraw(amount)
+ actionBalanceFragmentToTransactionFragment().let {
+ findNavController().navigate(it)
+ }
+ }
+ false -> {
+ ui.amountView.error =
getString(R.string.withdraw_error_insufficient_balance)
+ }
+ null -> {
+ ui.amountView.error =
getString(R.string.withdraw_error_currency_mismatch)
}
}
}
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
diff --git a/cashier/src/main/res/values/strings.xml
b/cashier/src/main/res/values/strings.xml
index bcaab74..8e28d28 100644
--- a/cashier/src/main/res/values/strings.xml
+++ b/cashier/src/main/res/values/strings.xml
@@ -26,6 +26,7 @@
<string name="withdraw_into">How much e-cash should be withdrawn?</string>
<string name="withdraw_error_zero">Enter positive amount!</string>
<string name="withdraw_error_insufficient_balance">Insufficient
balance</string>
+ <string name="withdraw_error_currency_mismatch">Error: Bank reported a
different currency</string>
<string name="withdraw_error_fetch">Error communicating with bank:
%s</string>
<string name="withdraw_error_timeout">No wallet tried to withdraw. Please
try again.</string>
<string name="withdraw_error_offline"
translatable="false">@string/balance_offline</string>
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-taler-android] branch master updated: [cashier] show error message when bank is reporting mismatching currencies,
gnunet <=