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:
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,