[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taler-android] 02/02: [wallet] Fix crash when exchange is missing
From: |
gnunet |
Subject: |
[taler-taler-android] 02/02: [wallet] Fix crash when exchange is missing currency |
Date: |
Tue, 03 Jan 2023 14:01:21 +0100 |
This is an automated email from the git hooks/post-receive script.
torsten-grote pushed a commit to branch master
in repository taler-android.
commit 43ad014f54c50fc2fa1cda3e1d6e24229637ad02
Author: Torsten Grote <t@grobox.de>
AuthorDate: Tue Jan 3 10:00:21 2023 -0300
[wallet] Fix crash when exchange is missing currency
Can happen when exchange info in wallet-core was not yet fully loaded
#7480
---
.../main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt | 11 ++++++++---
.../taler/wallet/withdraw/manual/ManualWithdrawFragment.kt | 5 +++--
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt
b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt
index 5b0d947..e0cf5be 100644
--- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt
+++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt
@@ -34,8 +34,9 @@ import
net.taler.wallet.exchanges.ExchangeAdapter.ExchangeItemViewHolder
@Serializable
data class ExchangeItem(
val exchangeBaseUrl: String,
- val currency: String,
- val paytoUris: List<String>
+ // can be null before exchange info in wallet-core was fully loaded
+ val currency: String? = null,
+ val paytoUris: List<String>,
) {
val name: String get() = cleanExchange(exchangeBaseUrl)
}
@@ -79,7 +80,11 @@ internal class ExchangeAdapter(
fun bind(item: ExchangeItem) {
urlView.text = item.name
- currencyView.text =
context.getString(R.string.exchange_list_currency, item.currency)
+ currencyView.text = if (item.currency == null) {
+ context.getString(R.string.settings_version_unknown)
+ } else {
+ context.getString(R.string.exchange_list_currency,
item.currency)
+ }
if (selectOnly) {
itemView.setOnClickListener {
listener.onExchangeSelected(item) }
overflowIcon.visibility = GONE
diff --git
a/wallet/src/main/java/net/taler/wallet/withdraw/manual/ManualWithdrawFragment.kt
b/wallet/src/main/java/net/taler/wallet/withdraw/manual/ManualWithdrawFragment.kt
index 148b8c0..aae8c95 100644
---
a/wallet/src/main/java/net/taler/wallet/withdraw/manual/ManualWithdrawFragment.kt
+++
b/wallet/src/main/java/net/taler/wallet/withdraw/manual/ManualWithdrawFragment.kt
@@ -67,7 +67,8 @@ class ManualWithdrawFragment : Fragment() {
}
private fun onCheckFees() {
- if (ui.amountView.text?.isEmpty() != false) {
+ val currency = exchangeItem.currency
+ if (currency == null || ui.amountView.text?.isEmpty() != false) {
ui.amountLayout.error = getString(R.string.withdraw_amount_error)
return
}
@@ -79,7 +80,7 @@ class ManualWithdrawFragment : Fragment() {
ui.amountLayout.error = getString(R.string.withdraw_amount_error)
return
}
- val amount = Amount.fromDouble(exchangeItem.currency, value)
+ val amount = Amount.fromDouble(currency, value)
ui.amountView.hideKeyboard()
withdrawManager.getWithdrawalDetails(exchangeItem.exchangeBaseUrl,
amount)
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.