From f08687d9850e7825169c59d7d2cbc8f79154f4f9 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 16 Jan 2026 13:35:48 +0300 Subject: [PATCH] Updated on 2026-08-14 --- features/feed/api/build.gradle.kts | 3 ++ .../portfolio/add}/AddToPortfolioComponent.kt | 7 ++-- .../portfolio/add}/AddToPortfolioManager.kt | 15 +++++--- .../portfolio/add}/AvailableToAddData.kt | 12 +++---- .../portfolio/add/impl/AddTokenComponent.kt | 4 +-- .../add/impl/ChooseNetworkComponent.kt | 2 +- .../impl/DefaultAddToPortfolioComponent.kt | 2 +- .../converter/AvailableToAddDataConverter.kt | 6 ++-- .../impl/di/AddToPortfolioComponentModule.kt | 4 +-- .../add/impl/model/AddToPortfolioModel.kt | 34 +++++++++++++------ .../add/impl/model/AddToPortfolioRoutes.kt | 2 +- .../portfolio/add/impl/model/AddTokenModel.kt | 4 +-- .../add/impl/model/AddTokenUiBuilder.kt | 4 +-- .../impl/ui/DefaultAddToPortfolioManager.kt | 7 ++-- .../impl/DefaultMarketsPortfolioComponent.kt | 2 +- .../impl/model/MarketsPortfolioModel.kt | 7 ++-- 16 files changed, 70 insertions(+), 45 deletions(-) rename features/feed/{impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/api => api/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add}/AddToPortfolioComponent.kt (64%) rename features/feed/{impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/api => api/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add}/AddToPortfolioManager.kt (76%) rename features/feed/{impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/api => api/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add}/AvailableToAddData.kt (89%) diff --git a/features/feed/api/build.gradle.kts b/features/feed/api/build.gradle.kts index 73aa93625c..890d5aefad 100644 --- a/features/feed/api/build.gradle.kts +++ b/features/feed/api/build.gradle.kts @@ -13,6 +13,9 @@ android { dependencies { implementation(deps.compose.foundation) + /* Project - API */ + api(projects.features.account.api) + /* Project - Core */ implementation(projects.core.decompose) implementation(projects.core.ui) diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/api/AddToPortfolioComponent.kt b/features/feed/api/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/AddToPortfolioComponent.kt similarity index 64% rename from features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/api/AddToPortfolioComponent.kt rename to features/feed/api/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/AddToPortfolioComponent.kt index 38afdb8400..902f38339d 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/api/AddToPortfolioComponent.kt +++ b/features/feed/api/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/AddToPortfolioComponent.kt @@ -1,17 +1,20 @@ -package com.tangem.features.feed.components.market.details.portfolio.add.api +package com.tangem.features.feed.components.market.details.portfolio.add import com.tangem.core.decompose.factory.ComponentFactory import com.tangem.core.ui.decompose.ComposableBottomSheetComponent +import com.tangem.domain.models.currency.CryptoCurrency -internal interface AddToPortfolioComponent : ComposableBottomSheetComponent { +interface AddToPortfolioComponent : ComposableBottomSheetComponent { data class Params( val addToPortfolioManager: AddToPortfolioManager, val callback: Callback, + val shouldSkipTokenActionsScreen: Boolean = false, ) interface Callback { fun onDismiss() + fun onSuccess(addedToken: CryptoCurrency) } interface Factory : ComponentFactory diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/api/AddToPortfolioManager.kt b/features/feed/api/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/AddToPortfolioManager.kt similarity index 76% rename from features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/api/AddToPortfolioManager.kt rename to features/feed/api/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/AddToPortfolioManager.kt index bcad1f6cb9..8d4e35e9ce 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/api/AddToPortfolioManager.kt +++ b/features/feed/api/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/AddToPortfolioManager.kt @@ -1,17 +1,17 @@ -package com.tangem.features.feed.components.market.details.portfolio.add.api +package com.tangem.features.feed.components.market.details.portfolio.add import com.tangem.domain.markets.TokenMarketInfo import com.tangem.domain.markets.TokenMarketParams import com.tangem.features.account.PortfolioFetcher -import com.tangem.features.feed.components.market.details.portfolio.api.MarketsPortfolioComponent import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow +import kotlinx.serialization.Serializable -internal interface AddToPortfolioManager { +interface AddToPortfolioManager { val token: TokenMarketParams - val analyticsParams: MarketsPortfolioComponent.AnalyticsParams? + val analyticsParams: AnalyticsParams? val portfolioFetcher: PortfolioFetcher val state: StateFlow @@ -28,11 +28,16 @@ internal interface AddToPortfolioManager { data object NothingToAdd : State } + @Serializable + data class AnalyticsParams( + val source: String, + ) + interface Factory { fun create( scope: CoroutineScope, token: TokenMarketParams, - analyticsParams: MarketsPortfolioComponent.AnalyticsParams?, + analyticsParams: AnalyticsParams?, ): AddToPortfolioManager } } \ No newline at end of file diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/api/AvailableToAddData.kt b/features/feed/api/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/AvailableToAddData.kt similarity index 89% rename from features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/api/AvailableToAddData.kt rename to features/feed/api/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/AvailableToAddData.kt index 94006d470e..9d221287dd 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/api/AvailableToAddData.kt +++ b/features/feed/api/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/AvailableToAddData.kt @@ -1,4 +1,4 @@ -package com.tangem.features.feed.components.market.details.portfolio.add.api +package com.tangem.features.feed.components.market.details.portfolio.add import com.tangem.domain.markets.TokenMarketInfo import com.tangem.domain.models.account.AccountId @@ -9,7 +9,7 @@ import com.tangem.domain.models.wallet.UserWallet import com.tangem.domain.models.wallet.UserWalletId import kotlinx.serialization.Serializable -internal data class AvailableToAddData( +data class AvailableToAddData( val availableToAddWallets: Map, ) { val isAvailableToAdd: Boolean @@ -18,7 +18,7 @@ internal data class AvailableToAddData( get() = availableToAddWallets.size == 1 && availableToAddWallets.values.first().accounts.size == 1 } -internal data class AvailableToAddWallet( +data class AvailableToAddWallet( val userWallet: UserWallet, val accounts: List, val availableNetworks: Set, @@ -26,7 +26,7 @@ internal data class AvailableToAddWallet( ) @Serializable -internal data class AvailableToAddAccount( +data class AvailableToAddAccount( val account: AccountStatus, val availableNetworks: Set, val addedNetworks: Set, @@ -44,14 +44,14 @@ internal data class AvailableToAddAccount( } @Serializable -internal data class SelectedPortfolio( +data class SelectedPortfolio( val userWallet: UserWallet, val account: AvailableToAddAccount, val isAccountMode: Boolean, val isAvailableMorePortfolio: Boolean, ) -internal data class SelectedNetwork( +data class SelectedNetwork( val selectedNetwork: TokenMarketInfo.Network, val cryptoCurrency: CryptoCurrency, val isAvailableMoreNetwork: Boolean, diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/AddTokenComponent.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/AddTokenComponent.kt index 808dcceab5..b762aa9727 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/AddTokenComponent.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/AddTokenComponent.kt @@ -9,8 +9,8 @@ import com.tangem.core.decompose.factory.ComponentFactory import com.tangem.core.decompose.model.getOrCreateModel import com.tangem.core.ui.decompose.ComposableContentComponent import com.tangem.domain.models.currency.CryptoCurrencyStatus -import com.tangem.features.feed.components.market.details.portfolio.add.api.SelectedNetwork -import com.tangem.features.feed.components.market.details.portfolio.add.api.SelectedPortfolio +import com.tangem.features.feed.components.market.details.portfolio.add.SelectedNetwork +import com.tangem.features.feed.components.market.details.portfolio.add.SelectedPortfolio import com.tangem.features.feed.components.market.details.portfolio.add.impl.model.AddTokenModel import com.tangem.features.feed.components.market.details.portfolio.impl.analytics.PortfolioAnalyticsEvent import dagger.assisted.Assisted diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/ChooseNetworkComponent.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/ChooseNetworkComponent.kt index 727f08f7cf..71c5a6dc55 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/ChooseNetworkComponent.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/ChooseNetworkComponent.kt @@ -9,7 +9,7 @@ import com.tangem.core.decompose.factory.ComponentFactory import com.tangem.core.decompose.model.getOrCreateModel import com.tangem.core.ui.decompose.ComposableContentComponent import com.tangem.domain.markets.TokenMarketInfo -import com.tangem.features.feed.components.market.details.portfolio.add.api.SelectedPortfolio +import com.tangem.features.feed.components.market.details.portfolio.add.SelectedPortfolio import com.tangem.features.feed.components.market.details.portfolio.add.impl.model.ChooseNetworkModel import com.tangem.features.feed.components.market.details.portfolio.add.impl.ui.ChooseNetworkContent import dagger.assisted.Assisted diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/DefaultAddToPortfolioComponent.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/DefaultAddToPortfolioComponent.kt index 174bdcf21b..edd7f01ef5 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/DefaultAddToPortfolioComponent.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/DefaultAddToPortfolioComponent.kt @@ -32,7 +32,7 @@ import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.res.TangemTheme import com.tangem.features.account.PortfolioSelectorComponent -import com.tangem.features.feed.components.market.details.portfolio.add.api.AddToPortfolioComponent +import com.tangem.features.feed.components.market.details.portfolio.add.AddToPortfolioComponent import com.tangem.features.feed.components.market.details.portfolio.add.impl.model.AddToPortfolioModel import com.tangem.features.feed.components.market.details.portfolio.add.impl.model.AddToPortfolioRoutes import com.tangem.features.feed.impl.R diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/converter/AvailableToAddDataConverter.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/converter/AvailableToAddDataConverter.kt index d42d22f23c..dd013d17ba 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/converter/AvailableToAddDataConverter.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/converter/AvailableToAddDataConverter.kt @@ -12,9 +12,9 @@ import com.tangem.domain.models.currency.CryptoCurrency import com.tangem.domain.models.wallet.UserWallet import com.tangem.domain.models.wallet.UserWalletId import com.tangem.features.account.PortfolioFetcher -import com.tangem.features.feed.components.market.details.portfolio.add.api.AvailableToAddAccount -import com.tangem.features.feed.components.market.details.portfolio.add.api.AvailableToAddData -import com.tangem.features.feed.components.market.details.portfolio.add.api.AvailableToAddWallet +import com.tangem.features.feed.components.market.details.portfolio.add.AvailableToAddAccount +import com.tangem.features.feed.components.market.details.portfolio.add.AvailableToAddData +import com.tangem.features.feed.components.market.details.portfolio.add.AvailableToAddWallet import javax.inject.Inject internal class AvailableToAddDataConverter @Inject constructor( diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/di/AddToPortfolioComponentModule.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/di/AddToPortfolioComponentModule.kt index f074c0d167..b522e1b6e3 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/di/AddToPortfolioComponentModule.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/di/AddToPortfolioComponentModule.kt @@ -1,7 +1,7 @@ package com.tangem.features.feed.components.market.details.portfolio.add.impl.di -import com.tangem.features.feed.components.market.details.portfolio.add.api.AddToPortfolioComponent -import com.tangem.features.feed.components.market.details.portfolio.add.api.AddToPortfolioManager +import com.tangem.features.feed.components.market.details.portfolio.add.AddToPortfolioComponent +import com.tangem.features.feed.components.market.details.portfolio.add.AddToPortfolioManager import com.tangem.features.feed.components.market.details.portfolio.add.impl.DefaultAddToPortfolioComponent import com.tangem.features.feed.components.market.details.portfolio.add.impl.ui.DefaultAddToPortfolioManager import dagger.Binds diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddToPortfolioModel.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddToPortfolioModel.kt index 2a9b23cdd5..4e71735618 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddToPortfolioModel.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddToPortfolioModel.kt @@ -19,7 +19,12 @@ import com.tangem.domain.models.currency.CryptoCurrency import com.tangem.domain.models.currency.CryptoCurrencyStatus import com.tangem.domain.models.wallet.UserWallet import com.tangem.features.account.PortfolioSelectorController -import com.tangem.features.feed.components.market.details.portfolio.add.api.* +import com.tangem.features.feed.components.market.details.portfolio.add.AddToPortfolioComponent +import com.tangem.features.feed.components.market.details.portfolio.add.AddToPortfolioManager +import com.tangem.features.feed.components.market.details.portfolio.add.AvailableToAddAccount +import com.tangem.features.feed.components.market.details.portfolio.add.AvailableToAddData +import com.tangem.features.feed.components.market.details.portfolio.add.SelectedNetwork +import com.tangem.features.feed.components.market.details.portfolio.add.SelectedPortfolio import com.tangem.features.feed.components.market.details.portfolio.add.impl.AddTokenComponent import com.tangem.features.feed.components.market.details.portfolio.add.impl.ChooseNetworkComponent import com.tangem.features.feed.components.market.details.portfolio.add.impl.TokenActionsComponent @@ -91,6 +96,11 @@ internal class AddToPortfolioModel @Inject constructor( channel.close() } + fun finishSuccessFlow(addedToken: CryptoCurrencyStatus) { + params.callback.onSuccess(addedToken.currency) + channel.close() + } + val featureDataFlow: StateFlow = featureData .filterIsInstance() .map { it.availableToAddData } @@ -183,13 +193,17 @@ internal class AddToPortfolioModel @Inject constructor( messageSender.send(ToastMessage(message = resourceReference(R.string.markets_token_added))) - setupTokenActionsFlow(selectedPortfolio, addedToken) - .onEach { cryptoCurrencyData -> - tokenActionsData.emit(cryptoCurrencyData) - navigation.replaceAll(AddToPortfolioRoutes.TokenActions) - } - .onEmpty { finishFlow() } - .launchIn(this) + if (params.shouldSkipTokenActionsScreen) { + finishSuccessFlow(addedToken) + } else { + setupTokenActionsFlow(selectedPortfolio, addedToken) + .onEach { cryptoCurrencyData -> + tokenActionsData.emit(cryptoCurrencyData) + navigation.replaceAll(AddToPortfolioRoutes.TokenActions) + } + .onEmpty { finishFlow() } + .launchIn(this) + } callbackDelegate.onLaterClick.receiveAsFlow().first() finishFlow() @@ -316,8 +330,8 @@ internal class AddToPortfolioModel @Inject constructor( network: TokenMarketInfo.Network, account: AvailableToAddAccount, ): CryptoCurrency? { - val accountIndex = when (account.account) { - is AccountStatus.CryptoPortfolio -> account.account.account.derivationIndex + val accountIndex = when (val accountStatus = account.account) { + is AccountStatus.CryptoPortfolio -> accountStatus.account.derivationIndex } return getTokenMarketCryptoCurrency( userWalletId = userWallet.walletId, diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddToPortfolioRoutes.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddToPortfolioRoutes.kt index 3d954d2239..a8c2acb3aa 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddToPortfolioRoutes.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddToPortfolioRoutes.kt @@ -2,7 +2,7 @@ package com.tangem.features.feed.components.market.details.portfolio.add.impl.mo import androidx.compose.runtime.Immutable import com.tangem.core.decompose.navigation.Route -import com.tangem.features.feed.components.market.details.portfolio.add.api.SelectedPortfolio +import com.tangem.features.feed.components.market.details.portfolio.add.SelectedPortfolio import kotlinx.serialization.Serializable @Serializable diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddTokenModel.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddTokenModel.kt index 830e71e6de..cedc618422 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddTokenModel.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddTokenModel.kt @@ -13,8 +13,8 @@ import com.tangem.domain.account.status.usecase.GetAccountCurrencyStatusUseCase import com.tangem.domain.account.status.usecase.ManageCryptoCurrenciesUseCase import com.tangem.domain.models.account.Account import com.tangem.domain.wallets.usecase.ColdWalletAndHasMissedDerivationsUseCase -import com.tangem.features.feed.components.market.details.portfolio.add.api.SelectedNetwork -import com.tangem.features.feed.components.market.details.portfolio.add.api.SelectedPortfolio +import com.tangem.features.feed.components.market.details.portfolio.add.SelectedNetwork +import com.tangem.features.feed.components.market.details.portfolio.add.SelectedPortfolio import com.tangem.features.feed.components.market.details.portfolio.add.impl.AddTokenComponent import com.tangem.features.feed.components.market.details.portfolio.add.impl.model.AddTokenUiBuilder.Companion.toggleProgress import com.tangem.features.feed.impl.R diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddTokenUiBuilder.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddTokenUiBuilder.kt index 24b4079240..b6ad346e0c 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddTokenUiBuilder.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/model/AddTokenUiBuilder.kt @@ -13,8 +13,8 @@ import com.tangem.core.ui.extensions.iconResId import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.stringReference import com.tangem.domain.models.account.AccountStatus -import com.tangem.features.feed.components.market.details.portfolio.add.api.SelectedNetwork -import com.tangem.features.feed.components.market.details.portfolio.add.api.SelectedPortfolio +import com.tangem.features.feed.components.market.details.portfolio.add.SelectedNetwork +import com.tangem.features.feed.components.market.details.portfolio.add.SelectedPortfolio import com.tangem.features.feed.components.market.details.portfolio.add.impl.AddTokenComponent import com.tangem.features.feed.impl.R import javax.inject.Inject diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/ui/DefaultAddToPortfolioManager.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/ui/DefaultAddToPortfolioManager.kt index f286f46e40..8c27a3929d 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/ui/DefaultAddToPortfolioManager.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/add/impl/ui/DefaultAddToPortfolioManager.kt @@ -3,9 +3,8 @@ package com.tangem.features.feed.components.market.details.portfolio.add.impl.ui import com.tangem.domain.markets.TokenMarketInfo import com.tangem.domain.markets.TokenMarketParams import com.tangem.features.account.PortfolioFetcher -import com.tangem.features.feed.components.market.details.portfolio.add.api.AddToPortfolioManager +import com.tangem.features.feed.components.market.details.portfolio.add.AddToPortfolioManager import com.tangem.features.feed.components.market.details.portfolio.add.impl.converter.AvailableToAddDataConverter -import com.tangem.features.feed.components.market.details.portfolio.api.MarketsPortfolioComponent import com.tangem.utils.coroutines.CoroutineDispatcherProvider import dagger.assisted.Assisted import dagger.assisted.AssistedFactory @@ -17,7 +16,7 @@ import kotlinx.coroutines.flow.* internal class DefaultAddToPortfolioManager @AssistedInject constructor( private val availableToAddDataConverter: AvailableToAddDataConverter, @Assisted override val token: TokenMarketParams, - @Assisted override val analyticsParams: MarketsPortfolioComponent.AnalyticsParams?, + @Assisted override val analyticsParams: AddToPortfolioManager.AnalyticsParams?, @Assisted val scope: CoroutineScope, dispatchers: CoroutineDispatcherProvider, portfolioFetcherFactory: PortfolioFetcher.Factory, @@ -66,7 +65,7 @@ internal class DefaultAddToPortfolioManager @AssistedInject constructor( override fun create( scope: CoroutineScope, token: TokenMarketParams, - analyticsParams: MarketsPortfolioComponent.AnalyticsParams?, + analyticsParams: AddToPortfolioManager.AnalyticsParams?, ): DefaultAddToPortfolioManager } } \ No newline at end of file diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/impl/DefaultMarketsPortfolioComponent.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/impl/DefaultMarketsPortfolioComponent.kt index cd1eb2d9ee..6df78dda91 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/impl/DefaultMarketsPortfolioComponent.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/impl/DefaultMarketsPortfolioComponent.kt @@ -14,7 +14,7 @@ import com.tangem.core.decompose.context.childByContext import com.tangem.core.decompose.model.getOrCreateModel import com.tangem.core.ui.decompose.ComposableBottomSheetComponent import com.tangem.domain.markets.TokenMarketInfo -import com.tangem.features.feed.components.market.details.portfolio.add.api.AddToPortfolioComponent +import com.tangem.features.feed.components.market.details.portfolio.add.AddToPortfolioComponent import com.tangem.features.feed.components.market.details.portfolio.api.MarketsPortfolioComponent import com.tangem.features.feed.components.market.details.portfolio.impl.model.MarketsPortfolioModel import com.tangem.features.feed.components.market.details.portfolio.impl.model.MarketsPortfolioRoute diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/impl/model/MarketsPortfolioModel.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/impl/model/MarketsPortfolioModel.kt index 550f17efbc..1715e60e47 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/impl/model/MarketsPortfolioModel.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/components/market/details/portfolio/impl/model/MarketsPortfolioModel.kt @@ -31,7 +31,7 @@ import com.tangem.domain.models.wallet.isMultiCurrency import com.tangem.domain.transaction.usecase.ReceiveAddressesFactory import com.tangem.domain.wallets.usecase.ColdWalletAndHasMissedDerivationsUseCase import com.tangem.domain.wallets.usecase.GetSelectedWalletUseCase -import com.tangem.features.feed.components.market.details.portfolio.add.api.AddToPortfolioComponent +import com.tangem.features.feed.components.market.details.portfolio.add.AddToPortfolioComponent import com.tangem.features.feed.components.market.details.portfolio.api.MarketsPortfolioComponent import com.tangem.features.feed.components.market.details.portfolio.impl.analytics.PortfolioAnalyticsEvent import com.tangem.features.feed.components.market.details.portfolio.impl.loader.PortfolioData @@ -50,7 +50,7 @@ import kotlinx.coroutines.flow.* import kotlinx.coroutines.launch import timber.log.Timber import javax.inject.Inject -import com.tangem.features.feed.components.market.details.portfolio.add.api.AddToPortfolioManager as NewAddToPortfolioManager +import com.tangem.features.feed.components.market.details.portfolio.add.AddToPortfolioManager as NewAddToPortfolioManager @Suppress("LongParameterList", "LargeClass") @Stable @@ -96,6 +96,7 @@ internal class MarketsPortfolioModel @Inject constructor( val bottomSheetNavigation: SlotNavigation = SlotNavigation() val addToPortfolioCallback = object : AddToPortfolioComponent.Callback { override fun onDismiss() = bottomSheetNavigation.dismiss() + override fun onSuccess(addedToken: CryptoCurrency) = bottomSheetNavigation.dismiss() } private val currentAppCurrency = getSelectedAppCurrencyUseCase() @@ -184,7 +185,7 @@ internal class MarketsPortfolioModel @Inject constructor( .create( modelScope, params.token, - params.analyticsParams, + params.analyticsParams?.source?.let { NewAddToPortfolioManager.AnalyticsParams(it) }, ) newMarketsPortfolioDelegate = newMarketsPortfolioDelegateFactory.create( scope = modelScope,