From 6aec7efdd65bdee061229853f65d931ad6ae5133 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 27 Jul 2026 13:42:09 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../model/TokenDetailsClickIntents.kt | 8 ------ .../tokendetails/model/TokenDetailsModel.kt | 27 +++++-------------- .../UpdateActionButtonsTransformer.kt | 2 +- .../transformer/UpdateAddFundsTransformer.kt | 2 +- .../transformer/UpdateTransferTransformer.kt | 2 +- .../UpdateZeroBalanceActionsTransformer.kt | 2 +- .../UpdateAddFundsTransformerTest.kt | 2 +- .../UpdateTransferTransformerTest.kt | 2 +- ...UpdateZeroBalanceActionsTransformerTest.kt | 2 +- 9 files changed, 14 insertions(+), 35 deletions(-) diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/model/TokenDetailsClickIntents.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/model/TokenDetailsClickIntents.kt index 81e52f101e..977905b7b4 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/model/TokenDetailsClickIntents.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/model/TokenDetailsClickIntents.kt @@ -20,12 +20,8 @@ interface TokenDetailsClickIntents { fun onSwapClick(unavailabilityReason: ScenarioUnavailabilityReason) - fun onSwapFromClick(unavailabilityReason: ScenarioUnavailabilityReason) - fun onSwapAndSendClick(unavailabilityReason: ScenarioUnavailabilityReason) - fun onSwapToClick(unavailabilityReason: ScenarioUnavailabilityReason) - fun onBuyClick(unavailabilityReason: ScenarioUnavailabilityReason) fun onAddFundsClick() @@ -145,12 +141,8 @@ internal class EmptyTokenDetailsClickIntents : TokenDetailsClickIntents { override fun onSwapClick(unavailabilityReason: ScenarioUnavailabilityReason) { /* no op */ } - override fun onSwapFromClick(unavailabilityReason: ScenarioUnavailabilityReason) { /* no op */ } - override fun onSwapAndSendClick(unavailabilityReason: ScenarioUnavailabilityReason) { /* no op */ } - override fun onSwapToClick(unavailabilityReason: ScenarioUnavailabilityReason) { /* no op */ } - override fun onHideClick() { /* no op */ } override fun onHideConfirmed() { /* no op */ } diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/model/TokenDetailsModel.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/model/TokenDetailsModel.kt index 0b00ceb28b..1895ca6f1d 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/model/TokenDetailsModel.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/model/TokenDetailsModel.kt @@ -16,10 +16,6 @@ import com.tangem.common.routing.deeplink.MarketingDeeplink import com.tangem.common.routing.deeplink.resolveMarketingDeeplink import com.tangem.common.ui.bottomsheet.receive.AddressModel import com.tangem.common.ui.bottomsheet.receive.mapToAddressModels -import com.tangem.features.marketing.api.MarketingBannerRequest -import com.tangem.features.rating.RatingComponent -import com.tangem.feature.swap.domain.SwapFeedbackUseCase -import com.tangem.feature.swap.domain.models.domain.SwapFeedbackParams import com.tangem.common.ui.tokens.getUnavailabilityReasonText import com.tangem.common.ui.userwallet.converter.WalletIconUMConverter import com.tangem.common.ui.userwallet.ext.walletInterationIcon @@ -59,8 +55,8 @@ import com.tangem.domain.dynamicaddresses.IsDynamicAddressesAvailableUseCase import com.tangem.domain.dynamicaddresses.IsXpubSupportedUseCase import com.tangem.domain.dynamicaddresses.repository.DynamicAddressesRepository import com.tangem.domain.feedback.SendBackupProblemEmailUseCase -import com.tangem.domain.models.StatusSource import com.tangem.domain.marketing.models.MarketingScreen +import com.tangem.domain.models.StatusSource import com.tangem.domain.models.TokenReceiveNotification import com.tangem.domain.models.account.Account import com.tangem.domain.models.currency.CryptoCurrency @@ -96,6 +92,8 @@ import com.tangem.domain.txhistory.usecase.GetFixedTxHistoryItemsUseCase import com.tangem.domain.wallets.usecase.* import com.tangem.domain.yield.supply.models.YieldSupplyRewardBalance import com.tangem.domain.yield.supply.usecase.YieldSupplyGetRewardsBalanceUseCase +import com.tangem.feature.swap.domain.SwapFeedbackUseCase +import com.tangem.feature.swap.domain.models.domain.SwapFeedbackParams import com.tangem.feature.tokendetails.deeplink.TokenDetailsDeepLinkActionListener import com.tangem.feature.tokendetails.domain.GetCurrencyWarningsUseCase import com.tangem.feature.tokendetails.presentation.router.InnerTokenDetailsRouter @@ -106,6 +104,8 @@ import com.tangem.feature.tokendetails.presentation.tokendetails.state.* import com.tangem.feature.tokendetails.presentation.tokendetails.state.factory.QuickTopUpBlockFactory import com.tangem.feature.tokendetails.presentation.tokendetails.state.factory.TokenDetailsStateFactory import com.tangem.feature.tokendetails.presentation.tokendetails.state.transformer.* +import com.tangem.features.marketing.api.MarketingBannerRequest +import com.tangem.features.rating.RatingComponent import com.tangem.features.tokendetails.ExpressTransactionsEvent import com.tangem.features.tokendetails.ExpressTransactionsEventListener import com.tangem.features.tokendetails.TokenDetailsComponent @@ -826,7 +826,7 @@ internal class TokenDetailsModel @Inject constructor( } override fun onSwapClick(unavailabilityReason: ScenarioUnavailabilityReason) { - handleSwap(unavailabilityReason, AppRoute.Swap.CurrencyPosition.ANY, checkYieldSupply = true) + handleSwap(unavailabilityReason, checkYieldSupply = true) } /** @@ -852,10 +852,6 @@ internal class TokenDetailsModel @Inject constructor( MarketingDeeplink.EXTERNAL -> false } - override fun onSwapFromClick(unavailabilityReason: ScenarioUnavailabilityReason) { - handleSwap(unavailabilityReason, AppRoute.Swap.CurrencyPosition.FROM, checkYieldSupply = true) - } - override fun onSwapAndSendClick(unavailabilityReason: ScenarioUnavailabilityReason) { if (handleUnavailabilityReason(unavailabilityReason = unavailabilityReason)) { return @@ -870,15 +866,7 @@ internal class TokenDetailsModel @Inject constructor( ) } - override fun onSwapToClick(unavailabilityReason: ScenarioUnavailabilityReason) { - handleSwap(unavailabilityReason, AppRoute.Swap.CurrencyPosition.TO, checkYieldSupply = false) - } - - private fun handleSwap( - unavailabilityReason: ScenarioUnavailabilityReason, - currencyPosition: AppRoute.Swap.CurrencyPosition, - checkYieldSupply: Boolean, - ) { + private fun handleSwap(unavailabilityReason: ScenarioUnavailabilityReason, checkYieldSupply: Boolean) { analyticsEventsHandler.send( TokenScreenAnalyticsEvent.ButtonWithParams.ButtonExchange( token = cryptoCurrency.symbol, @@ -906,7 +894,6 @@ internal class TokenDetailsModel @Inject constructor( fromCryptoCurrency = cryptoCurrency, userWalletId = userWalletId, screenSource = AnalyticsParam.ScreensSources.Token.value, - fromCurrencyPosition = currencyPosition, ), ) } diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateActionButtonsTransformer.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateActionButtonsTransformer.kt index 77e38e9525..d05a95b039 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateActionButtonsTransformer.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateActionButtonsTransformer.kt @@ -31,7 +31,7 @@ internal class UpdateActionButtonsTransformer( } }, ) ?: prev.swapButton.tangemIconUM, - onClick = { clickIntents.onSwapFromClick(swapAction.unavailabilityReason) }, + onClick = { clickIntents.onSwapClick(swapAction.unavailabilityReason) }, ) return prevState.copy(balanceBlockUM = prev.copyButtons(swapButton = updated)) diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateAddFundsTransformer.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateAddFundsTransformer.kt index 26b0608682..7c04996e34 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateAddFundsTransformer.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateAddFundsTransformer.kt @@ -39,7 +39,7 @@ internal class UpdateAddFundsTransformer( isEnabled = action.unavailabilityReason == ScenarioUnavailabilityReason.None, onClick = { onActionDispatched() - clickIntents.onSwapToClick(action.unavailabilityReason) + clickIntents.onSwapClick(action.unavailabilityReason) }, ) } diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateTransferTransformer.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateTransferTransformer.kt index c33785b3a3..396ff2e703 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateTransferTransformer.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateTransferTransformer.kt @@ -44,7 +44,7 @@ internal class UpdateTransferTransformer( onClick = { analyticsEventHandler.send(TransferAnalyticsEvent.ButtonSwap()) onActionDispatched() - clickIntents.onSwapFromClick(action.unavailabilityReason) + clickIntents.onSwapClick(action.unavailabilityReason) }, ) } diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateZeroBalanceActionsTransformer.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateZeroBalanceActionsTransformer.kt index 5ec1dd92d2..1487d7adee 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateZeroBalanceActionsTransformer.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateZeroBalanceActionsTransformer.kt @@ -23,7 +23,7 @@ internal class UpdateZeroBalanceActionsTransformer( return prevState.copy( zeroBalanceActionsUM = ZeroBalanceActionsUM.Content( buy = buyAction?.toRow(onClick = clickIntents::onBuyClick), - swap = swapAction?.toRow(onClick = clickIntents::onSwapToClick), + swap = swapAction?.toRow(onClick = clickIntents::onSwapClick), receive = receiveAction?.toRow( onClick = clickIntents::onReceiveClick, onLongClick = { clickIntents.onCopyAddress() }, diff --git a/features/tokendetails/impl/src/test/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateAddFundsTransformerTest.kt b/features/tokendetails/impl/src/test/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateAddFundsTransformerTest.kt index 455b041287..42f2f8dde0 100644 --- a/features/tokendetails/impl/src/test/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateAddFundsTransformerTest.kt +++ b/features/tokendetails/impl/src/test/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateAddFundsTransformerTest.kt @@ -243,7 +243,7 @@ class UpdateAddFundsTransformerTest { // THEN verifyOrder { onActionDispatched.invoke() - clickIntents.onSwapToClick(ScenarioUnavailabilityReason.None) + clickIntents.onSwapClick(ScenarioUnavailabilityReason.None) } } diff --git a/features/tokendetails/impl/src/test/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateTransferTransformerTest.kt b/features/tokendetails/impl/src/test/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateTransferTransformerTest.kt index 3fcf8b3ee0..b028852e21 100644 --- a/features/tokendetails/impl/src/test/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateTransferTransformerTest.kt +++ b/features/tokendetails/impl/src/test/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateTransferTransformerTest.kt @@ -232,7 +232,7 @@ class UpdateTransferTransformerTest { verifyOrder { analyticsEventHandler.send(ofType()) onActionDispatched.invoke() - clickIntents.onSwapFromClick(ScenarioUnavailabilityReason.None) + clickIntents.onSwapClick(ScenarioUnavailabilityReason.None) } } diff --git a/features/tokendetails/impl/src/test/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateZeroBalanceActionsTransformerTest.kt b/features/tokendetails/impl/src/test/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateZeroBalanceActionsTransformerTest.kt index c9ffb6737e..5ce1a24b72 100644 --- a/features/tokendetails/impl/src/test/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateZeroBalanceActionsTransformerTest.kt +++ b/features/tokendetails/impl/src/test/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/transformer/UpdateZeroBalanceActionsTransformerTest.kt @@ -127,7 +127,7 @@ class UpdateZeroBalanceActionsTransformerTest { content.swap!!.onClick() // THEN - verify(exactly = 1) { clickIntents.onSwapToClick(ScenarioUnavailabilityReason.UsedOutdatedData) } + verify(exactly = 1) { clickIntents.onSwapClick(ScenarioUnavailabilityReason.UsedOutdatedData) } } @Test