From 4cac26e62838ddd71966468ee77d2440b8e5c663 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 31 Jul 2025 16:31:37 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../swap/v2/impl/amount/model/SwapAmountModel.kt | 3 +++ .../transformers/SwapAmountSetQuotesTransformer.kt | 2 +- .../transformers/SwapQuoteLoadingStateTransformer.kt | 1 + .../swap/v2/impl/amount/ui/SwapAmountContent.kt | 10 +++++----- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/model/SwapAmountModel.kt b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/model/SwapAmountModel.kt index fa265d5e1c..efc0561da2 100644 --- a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/model/SwapAmountModel.kt +++ b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/model/SwapAmountModel.kt @@ -51,6 +51,7 @@ import com.tangem.utils.coroutines.CoroutineDispatcherProvider import com.tangem.utils.coroutines.Debouncer import com.tangem.utils.coroutines.PeriodicTask import com.tangem.utils.coroutines.SingleTaskScheduler +import com.tangem.utils.extensions.isZero import com.tangem.utils.extensions.orZero import com.tangem.utils.transformer.update import kotlinx.coroutines.async @@ -481,6 +482,8 @@ internal class SwapAmountModel @Inject constructor( val fromAmountValue = fromAmount?.amountTextField?.cryptoAmount?.value ?: return + if (fromAmountValue.isZero()) return + val swapGroups = state.swapCurrencies.getGroupWithDirection(state.swapDirection) uiState.transformerUpdate(SwapQuoteLoadingStateTransformer) diff --git a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/model/transformers/SwapAmountSetQuotesTransformer.kt b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/model/transformers/SwapAmountSetQuotesTransformer.kt index 665a6a37fb..a3f6263d18 100644 --- a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/model/transformers/SwapAmountSetQuotesTransformer.kt +++ b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/model/transformers/SwapAmountSetQuotesTransformer.kt @@ -26,7 +26,7 @@ internal class SwapAmountSetQuotesTransformer( val sortedQuotes = quotes.sortedWith(SwapQuotesComparator) val bestQuote = findBestQuote(quotes) ?: SwapQuoteUM.Empty - val selectedQuote = if (isSilentReload) { + val selectedQuote = if (isSilentReload && prevState.selectedQuote !is SwapQuoteUM.Loading) { prevState.selectedQuote } else { (bestQuote as? SwapQuoteUM.Content)?.copy(diffPercent = DifferencePercent.Best) ?: bestQuote diff --git a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/model/transformers/SwapQuoteLoadingStateTransformer.kt b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/model/transformers/SwapQuoteLoadingStateTransformer.kt index a26deaf753..b431b0472a 100644 --- a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/model/transformers/SwapQuoteLoadingStateTransformer.kt +++ b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/model/transformers/SwapQuoteLoadingStateTransformer.kt @@ -16,6 +16,7 @@ internal object SwapQuoteLoadingStateTransformer : Transformer { } return prevState.copy( selectedQuote = SwapQuoteUM.Loading, + isPrimaryButtonEnabled = false, ) } } \ No newline at end of file diff --git a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/ui/SwapAmountContent.kt b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/ui/SwapAmountContent.kt index 1ac34a19e2..199921a753 100644 --- a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/ui/SwapAmountContent.kt +++ b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/ui/SwapAmountContent.kt @@ -240,12 +240,12 @@ private fun SwapAmountInfo( SwapAmountInfoMain(amountFieldUM = amountFieldUM) SpacerWMax() AnimatedContent( - amountUM, - ) { wrappedAmountUM -> - if (wrappedAmountUM is SwapAmountUM.Content) { + amountFieldUM, + ) { wrappedFieldAmountUM -> + if (amountUM is SwapAmountUM.Content) { SwapAmountInfoExtra( - amountUM = wrappedAmountUM, - amountFieldUM = amountFieldUM, + amountUM = amountUM, + amountFieldUM = wrappedFieldAmountUM, onMaxAmountClick = onMaxAmountClick, onSelectTokenClick = onSelectTokenClick, )