taler-android

Android apps for GNU Taler (wallet, PoS, cashier)
Log | Files | Refs | README | LICENSE

commit d6aa6d1e2ad4f4a9d8ceee1fb3b1324fbe487ff3
parent 4b58e98a43c7056fae48dd55b1975966fd4bd1fa
Author: Iván Ávalos <avalos@disroot.org>
Date:   Mon, 26 Jan 2026 19:46:55 +0100

[wallet] fix withdrawal currency changing on input

Diffstat:
Mwallet/src/main/java/net/taler/wallet/peer/OutgoingPullComposable.kt | 2+-
Mwallet/src/main/java/net/taler/wallet/withdraw/PromptWithdrawFragment.kt | 8++++++++
Mwallet/src/main/java/net/taler/wallet/withdraw/ReviewExchangeTosFragment.kt | 1-
Mwallet/src/main/java/net/taler/wallet/withdraw/TosSection.kt | 2+-
4 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullComposable.kt b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullComposable.kt @@ -91,7 +91,7 @@ fun OutgoingPullComposable( var option by rememberSaveable { mutableStateOf(DEFAULT_EXPIRY) } var hours by rememberSaveable { mutableLongStateOf(DEFAULT_EXPIRY.hours) } - val tosReview = checkResult != null && checkResult!!.tosStatus!!.isAccepted() + val tosReview = checkResult != null && !checkResult!!.tosStatus!!.isAccepted() amount.amount.useDebounce { if (amount.debounce) { diff --git a/wallet/src/main/java/net/taler/wallet/withdraw/PromptWithdrawFragment.kt b/wallet/src/main/java/net/taler/wallet/withdraw/PromptWithdrawFragment.kt @@ -135,6 +135,14 @@ class PromptWithdrawFragment: Fragment() { } TalerSurface { + // FIXME: hack to prevent initialAmount from changing after preparing withdrawal. + // WithdrawalShowInfo cannot detect changes other than null -> not null, + // otherwise there would be an input loop. + if (status.selectedAmount == null && status.selectedScope == null) { + LoadingScreen() + return@TalerSurface + } + status.let { s -> when (s.status) { Confirming, AlreadyConfirmed -> LoadingScreen() diff --git a/wallet/src/main/java/net/taler/wallet/withdraw/ReviewExchangeTosFragment.kt b/wallet/src/main/java/net/taler/wallet/withdraw/ReviewExchangeTosFragment.kt @@ -141,7 +141,6 @@ class ReviewExchangeTosFragment : Fragment(), AdapterView.OnItemSelectedListener ui.langSpinner.visibility = GONE } - // FIXME: better null handling! val sections = try { parseTos(markwon, tos.content) } catch (e: ParseException) { diff --git a/wallet/src/main/java/net/taler/wallet/withdraw/TosSection.kt b/wallet/src/main/java/net/taler/wallet/withdraw/TosSection.kt @@ -83,7 +83,7 @@ private fun getNodeText(rootNode: Node): String { @Serializable data class TosResponse( - val status: ExchangeTosStatus, + val status: ExchangeTosStatus = ExchangeTosStatus.Unknown, val content: String, val currentEtag: String, val contentLanguage: String? = null,