From 7efaa644602b67d70d01d5947116f08104983b7c Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 2 Sep 2025 14:36:35 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../destination/entity/DestinationUM.kt | 1 + .../SendDestinationInitialStateTransformer.kt | 1 + .../SendDestinationRecentListTransformer.kt | 2 +- .../SendDestinationValidationResultTransformer.kt | 1 + .../destination/ui/DestinationBlock.kt | 1 + .../destination/ui/SendDestinationContent.kt | 15 +++++++++------ .../v2/impl/amount/SwapAmountComponentParams.kt | 3 ++- .../swap/v2/impl/amount/model/SwapAmountModel.kt | 3 ++- .../sendviaswap/DefaultSendWithSwapComponent.kt | 2 +- .../success/ui/SendWithSwapSuccessContent.kt | 1 + 10 files changed, 20 insertions(+), 10 deletions(-) diff --git a/features/send-v2/api/src/main/java/com/tangem/features/send/v2/api/subcomponents/destination/entity/DestinationUM.kt b/features/send-v2/api/src/main/java/com/tangem/features/send/v2/api/subcomponents/destination/entity/DestinationUM.kt index f6ebfe61be..ed79e08793 100644 --- a/features/send-v2/api/src/main/java/com/tangem/features/send/v2/api/subcomponents/destination/entity/DestinationUM.kt +++ b/features/send-v2/api/src/main/java/com/tangem/features/send/v2/api/subcomponents/destination/entity/DestinationUM.kt @@ -18,6 +18,7 @@ sealed class DestinationUM { val isValidating: Boolean = false, val isInitialized: Boolean = false, val isRedesignEnabled: Boolean = false, + val isRecentHidden: Boolean, ) : DestinationUM() data class Empty( diff --git a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/model/transformers/SendDestinationInitialStateTransformer.kt b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/model/transformers/SendDestinationInitialStateTransformer.kt index 39cb1fd77b..e1ee0f98fe 100644 --- a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/model/transformers/SendDestinationInitialStateTransformer.kt +++ b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/model/transformers/SendDestinationInitialStateTransformer.kt @@ -60,6 +60,7 @@ internal class SendDestinationInitialStateTransformer( networkName = cryptoCurrency.network.name, isValidating = false, isRedesignEnabled = isRedesignEnabled, + isRecentHidden = false, ) } } \ No newline at end of file diff --git a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/model/transformers/SendDestinationRecentListTransformer.kt b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/model/transformers/SendDestinationRecentListTransformer.kt index 90dbda803c..aaa18babfe 100644 --- a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/model/transformers/SendDestinationRecentListTransformer.kt +++ b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/model/transformers/SendDestinationRecentListTransformer.kt @@ -2,9 +2,9 @@ package com.tangem.features.send.v2.subcomponents.destination.model.transformers import com.tangem.domain.models.currency.CryptoCurrency import com.tangem.domain.models.network.TxInfo +import com.tangem.features.send.v2.api.subcomponents.destination.entity.DestinationUM import com.tangem.features.send.v2.subcomponents.destination.model.converters.SendRecipientHistoryListConverter import com.tangem.features.send.v2.subcomponents.destination.model.converters.SendRecipientWalletListConverter -import com.tangem.features.send.v2.api.subcomponents.destination.entity.DestinationUM import com.tangem.features.send.v2.subcomponents.destination.ui.state.DestinationWalletUM import com.tangem.utils.transformer.Transformer diff --git a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/model/transformers/SendDestinationValidationResultTransformer.kt b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/model/transformers/SendDestinationValidationResultTransformer.kt index 3ae7039b38..da3d010f3f 100644 --- a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/model/transformers/SendDestinationValidationResultTransformer.kt +++ b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/model/transformers/SendDestinationValidationResultTransformer.kt @@ -54,6 +54,7 @@ internal class SendDestinationValidationResultTransformer( wallets = state.wallets.map { wallet -> wallet.copy(isVisible = !isValidAddress && (wallet.isLoading || wallet.title != TextReference.EMPTY)) }.toPersistentList(), + isRecentHidden = isValidAddress, ) } diff --git a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/ui/DestinationBlock.kt b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/ui/DestinationBlock.kt index f8cf59bdb0..f4e4cb31b7 100644 --- a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/ui/DestinationBlock.kt +++ b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/ui/DestinationBlock.kt @@ -211,6 +211,7 @@ private class DestinationBlockPreviewProvider : PreviewParameterProvider diff --git a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/ui/SendDestinationContent.kt b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/ui/SendDestinationContent.kt index da247fa248..6f655f90bf 100644 --- a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/ui/SendDestinationContent.kt +++ b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/destination/ui/SendDestinationContent.kt @@ -25,12 +25,12 @@ import com.tangem.core.ui.components.containers.FooterContainer import com.tangem.core.ui.components.inputrow.InputRowRecipient import com.tangem.core.ui.extensions.* import com.tangem.core.ui.res.TangemTheme -import com.tangem.features.send.v2.impl.R -import com.tangem.features.send.v2.subcomponents.destination.analytics.EnterAddressSource -import com.tangem.features.send.v2.subcomponents.destination.model.SendDestinationClickIntents import com.tangem.features.send.v2.api.subcomponents.destination.entity.DestinationRecipientListUM import com.tangem.features.send.v2.api.subcomponents.destination.entity.DestinationTextFieldUM import com.tangem.features.send.v2.api.subcomponents.destination.entity.DestinationUM +import com.tangem.features.send.v2.impl.R +import com.tangem.features.send.v2.subcomponents.destination.analytics.EnterAddressSource +import com.tangem.features.send.v2.subcomponents.destination.model.SendDestinationClickIntents import kotlinx.collections.immutable.ImmutableList private const val ADDRESS_FIELD_KEY = "ADDRESS_FIELD_KEY" @@ -74,13 +74,14 @@ internal fun SendDestinationContent( ) listHeaderItem( titleRes = R.string.send_recipient_wallets_title, - isVisible = wallets.isNotEmpty() && wallets.first().isVisible, + isVisible = wallets.isNotEmpty() && wallets.first().isVisible && !state.isRecentHidden, isFirst = true, ) listItem( list = wallets, isLast = recipients.any { !it.isVisible }, isBalanceHidden = isBalanceHidden, + isRecentHidden = state.isRecentHidden, onClick = { title -> clickIntents.onRecipientAddressValueChange( title, @@ -90,13 +91,14 @@ internal fun SendDestinationContent( ) listHeaderItem( titleRes = R.string.send_recent_transactions, - isVisible = recipients.isNotEmpty() && recipients.first().isVisible, + isVisible = recipients.isNotEmpty() && recipients.first().isVisible && !state.isRecentHidden, isFirst = wallets.any { !it.isVisible }, ) listItem( list = recipients, isLast = true, isBalanceHidden = isBalanceHidden, + isRecentHidden = state.isRecentHidden, onClick = { title -> clickIntents.onRecipientAddressValueChange( title, @@ -257,6 +259,7 @@ private fun LazyListScope.listItem( list: ImmutableList, isLast: Boolean, isBalanceHidden: Boolean, + isRecentHidden: Boolean, onClick: (String) -> Unit, ) { items( @@ -267,7 +270,7 @@ private fun LazyListScope.listItem( val item = list[index] val title = item.title.resolveReference() - if (item.isVisible) { + if (item.isVisible && !isRecentHidden) { ListItemWithIcon( title = title, subtitle = item.subtitle.orMaskWithStars(isBalanceHidden).resolveReference(), diff --git a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/SwapAmountComponentParams.kt b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/SwapAmountComponentParams.kt index 109c84dd81..2eca8f1a8e 100644 --- a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/SwapAmountComponentParams.kt +++ b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/amount/SwapAmountComponentParams.kt @@ -7,6 +7,7 @@ import com.tangem.domain.models.currency.CryptoCurrencyStatus import com.tangem.domain.models.wallet.UserWallet import com.tangem.domain.swap.models.SwapDirection import com.tangem.features.swap.v2.impl.amount.entity.SwapAmountUM +import com.tangem.features.swap.v2.impl.sendviaswap.SendWithSwapRoute import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow @@ -32,7 +33,7 @@ internal sealed class SwapAmountComponentParams { override val filterProviderTypes: List = emptyList(), val title: TextReference, val callback: SwapAmountComponent.ModelCallback, - val currentRoute: Flow, + val currentRoute: Flow, ) : SwapAmountComponentParams() data class AmountBlockParams( 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 ca3b3093f2..a6f5cf8206 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 @@ -53,6 +53,7 @@ import com.tangem.features.swap.v2.impl.amount.model.transformers.* import com.tangem.features.swap.v2.impl.chooseprovider.SwapChooseProviderComponent import com.tangem.features.swap.v2.impl.common.SwapAlertFactory import com.tangem.features.swap.v2.impl.common.entity.SwapQuoteUM +import com.tangem.features.swap.v2.impl.sendviaswap.SendWithSwapRoute import com.tangem.utils.coroutines.CoroutineDispatcherProvider import com.tangem.utils.coroutines.Debouncer import com.tangem.utils.coroutines.PeriodicTask @@ -689,7 +690,7 @@ internal class SwapAmountModel @Inject constructor( flow = uiState, flow2 = params.currentRoute, transform = { state, route -> state to route }, - ).onEach { (state, route) -> + ).filter { (_, route) -> route is SendWithSwapRoute.Amount }.onEach { (state, route) -> params.callback.onNavigationResult( NavigationUM.Content( title = resourceReference(R.string.common_amount), diff --git a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/sendviaswap/DefaultSendWithSwapComponent.kt b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/sendviaswap/DefaultSendWithSwapComponent.kt index 712782f490..b59ca862d9 100644 --- a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/sendviaswap/DefaultSendWithSwapComponent.kt +++ b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/sendviaswap/DefaultSendWithSwapComponent.kt @@ -136,7 +136,7 @@ internal class DefaultSendWithSwapComponent @AssistedInject constructor( params = SwapAmountComponentParams.AmountParams( amountUM = model.uiState.value.amountUM, title = resourceReference(R.string.common_send), - currentRoute = model.currentRoute.filterIsInstance(), + currentRoute = model.currentRoute, isBalanceHidingFlow = model.isBalanceHiddenFlow, analyticsCategoryName = model.analyticCategoryName, primaryCryptoCurrencyStatusFlow = model.primaryCryptoCurrencyStatusFlow, diff --git a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/sendviaswap/success/ui/SendWithSwapSuccessContent.kt b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/sendviaswap/success/ui/SendWithSwapSuccessContent.kt index 6e5406b9e6..252e841b90 100644 --- a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/sendviaswap/success/ui/SendWithSwapSuccessContent.kt +++ b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/sendviaswap/success/ui/SendWithSwapSuccessContent.kt @@ -301,6 +301,7 @@ private fun SendWithSwapSuccessContent_Preview() { isValidating = false, isInitialized = false, isRedesignEnabled = false, + isRecentHidden = false, ), feeSelectorUM = FeeSelectorUM.Content( fees = TransactionFee.Single(