commit 9d8c7f0f1f80085e2faaa65e1cad30847575fb11 parent 1c0fa1d08b5384ae0b6c3c25103655c6d1a4a780 Author: Iván Ávalos <avalos@disroot.org> Date: Tue, 18 Aug 2026 16:23:58 +0200 [wallet] drop the unreachable OutgoingChecked state The pull screen resets the state on dispose, so refreshPeerPullCreditTos could never find the OutgoingChecked it was written for. The ToS gate lifts because the screen re-checks when it is composed again. Diffstat:
5 files changed, 3 insertions(+), 41 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 @@ -61,7 +61,6 @@ import net.taler.wallet.compose.BottomButtonBox import net.taler.wallet.compose.ErrorComposable import net.taler.wallet.compose.LoadingScreen import net.taler.wallet.compose.TalerSurface -import net.taler.wallet.exchanges.ExchangeTosStatus import net.taler.wallet.systemBarsPaddingBottom import net.taler.wallet.transactions.TransactionInfoComposable import net.taler.wallet.useDebounce @@ -332,7 +331,7 @@ fun PeerPullComposableCheckedPreview() { val amountRaw = Amount.fromString("TESTKUDOS", "42.42") val amountEffective = Amount.fromString("TESTKUDOS", "42.23") OutgoingPullComposable( - state = OutgoingChecked(amountRaw, amountEffective, "https://exchange.demo.taler.net/", ExchangeTosStatus.Accepted), + state = OutgoingIntro, defaultScope = ScopeInfo.Exchange("KUDOS", "https://exchange.demo.taler.net/"), scopes = listOf( ScopeInfo.Exchange("KUDOS", "https://exchange.demo.taler.net/"), diff --git a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullScreen.kt b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullScreen.kt @@ -52,7 +52,6 @@ fun OutgoingPullScreen( val state by peerManager.pullState.collectAsStateLifecycleAware() val viewMode by model.viewMode.collectAsStateLifecycleAware() val devMode by model.devMode.observeAsState(false) - val exchanges by exchangeManager.exchanges.observeAsState() DisposableEffect(Unit) { onDispose { @@ -60,12 +59,6 @@ fun OutgoingPullScreen( } } - LaunchedEffect(exchanges) { - exchanges?.let { - peerManager.refreshPeerPullCreditTos(it) - } - } - LaunchedEffect(state) { val s = state if (s is OutgoingResponse) { diff --git a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushComposable.kt b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushComposable.kt @@ -62,7 +62,6 @@ import net.taler.wallet.compose.BottomButtonBox import net.taler.wallet.compose.ErrorComposable import net.taler.wallet.compose.LoadingScreen import net.taler.wallet.compose.TalerSurface -import net.taler.wallet.exchanges.ExchangeTosStatus import net.taler.wallet.payment.stringResId import net.taler.wallet.peer.CheckFeeResult.InsufficientBalance import net.taler.wallet.peer.CheckFeeResult.None @@ -85,7 +84,7 @@ fun OutgoingPushComposable( ) { when(state) { is OutgoingChecking, is OutgoingCreating, is OutgoingResponse -> LoadingScreen(modifier) - is OutgoingIntro, is OutgoingChecked, is OutgoingError -> OutgoingPushIntroComposable( + is OutgoingIntro, is OutgoingError -> OutgoingPushIntroComposable( state = state, defaultScope = defaultScope, scopes = scopes, @@ -375,7 +374,7 @@ fun PeerPushComposableCheckedPreview() { TalerSurface { val amountEffective = Amount.fromString("TESTKUDOS", "42.42") val amountRaw = Amount.fromString("TESTKUDOS", "42.23") - val state = OutgoingChecked(amountRaw, amountEffective, "https://exchange.demo.taler.net", ExchangeTosStatus.Accepted) + val state = OutgoingIntro OutgoingPushComposable( state = state, devMode = true, diff --git a/wallet/src/main/java/net/taler/wallet/peer/OutgoingState.kt b/wallet/src/main/java/net/taler/wallet/peer/OutgoingState.kt @@ -31,13 +31,6 @@ data object OutgoingIntro : OutgoingState() data object OutgoingChecking : OutgoingState() -data class OutgoingChecked( - val amountRaw: Amount, - val amountEffective: Amount, - val exchangeBaseUrl: String, - val tosStatus: ExchangeTosStatus?, -) : OutgoingState() - data object OutgoingCreating : OutgoingState() data class OutgoingResponse( diff --git a/wallet/src/main/java/net/taler/wallet/peer/PeerManager.kt b/wallet/src/main/java/net/taler/wallet/peer/PeerManager.kt @@ -381,26 +381,4 @@ class PeerManager( newState } } - - @UiThread - fun refreshPeerPullCreditTos(exchanges: List<ExchangeItem>) = scope.launch { - _outgoingPullState.update { state -> - var newState = state - if (state is OutgoingChecked) { - exchanges.find { it.exchangeBaseUrl == state.exchangeBaseUrl }?.let { exchange -> - if (exchange.tosStatus.isAccepted()) { - newState = OutgoingChecked( - amountRaw = state.amountRaw, - amountEffective = state.amountEffective, - exchangeBaseUrl = state.exchangeBaseUrl, - tosStatus = exchange.tosStatus, - ) - } - } ?: run { - Log.d(TAG, "could not refresh ToS status, exchange ${state.exchangeBaseUrl} was not found") - } - } - newState - } - } }