diff --git a/features/onramp/impl/build.gradle.kts b/features/onramp/impl/build.gradle.kts index 94b9c2785a..8de571b7a7 100644 --- a/features/onramp/impl/build.gradle.kts +++ b/features/onramp/impl/build.gradle.kts @@ -20,8 +20,21 @@ dependencies { implementation(projects.core.ui) implementation(projects.core.featuretoggles) + /** Project - Common */ + implementation(projects.common.ui) + + /** Project - Domain */ + implementation(projects.domain.appCurrency) + implementation(projects.domain.appCurrency.models) + implementation(projects.domain.balanceHiding) + implementation(projects.domain.balanceHiding.models) + implementation(projects.domain.tokens) + implementation(projects.domain.tokens.models) + implementation(projects.domain.wallets.models) + /** DI */ implementation(deps.hilt.android) + implementation(project(":common:ui")) kapt(deps.hilt.kapt) /** AndroidX */ @@ -40,4 +53,6 @@ dependencies { /** Other */ implementation(deps.decompose.ext.compose) + implementation(deps.kotlin.immutable.collections) + implementation(deps.timber) } \ No newline at end of file diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/selecttoken/DefaultOnrampSelectTokenComponent.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/selecttoken/DefaultOnrampSelectTokenComponent.kt new file mode 100644 index 0000000000..50ec027209 --- /dev/null +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/selecttoken/DefaultOnrampSelectTokenComponent.kt @@ -0,0 +1,46 @@ +package com.tangem.features.onramp.selecttoken + +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.tangem.core.decompose.context.AppComponentContext +import com.tangem.core.decompose.context.child +import com.tangem.features.onramp.selecttoken.ui.OnrampSelectToken +import com.tangem.features.onramp.tokenlist.OnrampTokenListComponent +import dagger.assisted.Assisted +import dagger.assisted.AssistedFactory +import dagger.assisted.AssistedInject + +internal class DefaultOnrampSelectTokenComponent @AssistedInject constructor( + @Assisted appComponentContext: AppComponentContext, + onrampTokenListComponentFactory: OnrampTokenListComponent.Factory, + @Assisted private val params: OnrampSelectTokenComponent.Params, +) : AppComponentContext by appComponentContext, OnrampSelectTokenComponent { + + private val onrampTokenListComponent: OnrampTokenListComponent = onrampTokenListComponentFactory.create( + context = child(key = "token_list"), + params = OnrampTokenListComponent.Params( + hasSearchBar = params.hasSearchBar, + userWalletId = params.userWalletId, + onTokenClick = params.onTokenClick, + ), + ) + + @Composable + override fun Content(modifier: Modifier) { + OnrampSelectToken( + titleResId = params.titleResId, + onBackClick = router::pop, + onrampTokenListComponent = onrampTokenListComponent, + modifier = modifier, + ) + } + + @AssistedFactory + interface Factory : OnrampSelectTokenComponent.Factory { + + override fun create( + context: AppComponentContext, + params: OnrampSelectTokenComponent.Params, + ): DefaultOnrampSelectTokenComponent + } +} \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/selecttoken/SelectTokenComponent.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/selecttoken/OnrampSelectTokenComponent.kt similarity index 80% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/selecttoken/SelectTokenComponent.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/selecttoken/OnrampSelectTokenComponent.kt index ff36917781..69aa520462 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/selecttoken/SelectTokenComponent.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/selecttoken/OnrampSelectTokenComponent.kt @@ -1,4 +1,4 @@ -package com.tangem.feature.wallet.presentation.selecttoken +package com.tangem.features.onramp.selecttoken import androidx.annotation.StringRes import com.tangem.core.decompose.factory.ComponentFactory @@ -11,9 +11,9 @@ import com.tangem.domain.wallets.models.UserWalletId * [REDACTED_AUTHOR] */ -interface SelectTokenComponent : ComposableContentComponent { +interface OnrampSelectTokenComponent : ComposableContentComponent { - interface Factory : ComponentFactory + interface Factory : ComponentFactory /** * Params diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/selecttoken/di/OnrampSelectTokenComponentModule.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/selecttoken/di/OnrampSelectTokenComponentModule.kt new file mode 100644 index 0000000000..01bece010d --- /dev/null +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/selecttoken/di/OnrampSelectTokenComponentModule.kt @@ -0,0 +1,20 @@ +package com.tangem.features.onramp.selecttoken.di + +import com.tangem.features.onramp.selecttoken.DefaultOnrampSelectTokenComponent +import com.tangem.features.onramp.selecttoken.OnrampSelectTokenComponent +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +internal interface OnrampSelectTokenComponentModule { + + @Binds + @Singleton + fun bindOnrampSelectTokenComponentFactory( + factory: DefaultOnrampSelectTokenComponent.Factory, + ): OnrampSelectTokenComponent.Factory +} \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/selecttoken/ui/SelectToken.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/selecttoken/ui/OnrampSelectToken.kt similarity index 81% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/selecttoken/ui/SelectToken.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/selecttoken/ui/OnrampSelectToken.kt index 56c6872198..653883fb90 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/selecttoken/ui/SelectToken.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/selecttoken/ui/OnrampSelectToken.kt @@ -1,4 +1,4 @@ -package com.tangem.feature.wallet.presentation.selecttoken.ui +package com.tangem.features.onramp.selecttoken.ui import androidx.activity.compose.BackHandler import androidx.annotation.StringRes @@ -13,14 +13,14 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.tangem.core.ui.components.appbar.AppBarWithBackButton import com.tangem.core.ui.res.TangemTheme -import com.tangem.feature.wallet.impl.R -import com.tangem.feature.wallet.presentation.tokenlist.TokenListComponent +import com.tangem.features.onramp.impl.R +import com.tangem.features.onramp.tokenlist.OnrampTokenListComponent @Composable -internal fun SelectToken( +internal fun OnrampSelectToken( @StringRes titleResId: Int, onBackClick: () -> Unit, - tokenListComponent: TokenListComponent, + onrampTokenListComponent: OnrampTokenListComponent, modifier: Modifier = Modifier, ) { BackHandler(onBack = onBackClick) @@ -37,7 +37,7 @@ internal fun SelectToken( iconRes = R.drawable.ic_close_24, ) - tokenListComponent.Content( + onrampTokenListComponent.Content( contentPadding = PaddingValues(vertical = 8.dp, horizontal = 16.dp), modifier = Modifier, ) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/DefaultTokenListComponent.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/DefaultOnrampTokenListComponent.kt similarity index 55% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/DefaultTokenListComponent.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/DefaultOnrampTokenListComponent.kt index 86dfa0a67f..67ada9b94b 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/DefaultTokenListComponent.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/DefaultOnrampTokenListComponent.kt @@ -1,4 +1,4 @@ -package com.tangem.feature.wallet.presentation.tokenlist +package com.tangem.features.onramp.tokenlist import androidx.compose.foundation.layout.PaddingValues import androidx.compose.runtime.Composable @@ -8,19 +8,19 @@ import androidx.compose.ui.Modifier import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.tangem.core.decompose.context.AppComponentContext import com.tangem.core.decompose.model.getOrCreateModel -import com.tangem.feature.wallet.presentation.tokenlist.model.TokenListModel -import com.tangem.feature.wallet.presentation.tokenlist.ui.TokenList +import com.tangem.features.onramp.tokenlist.model.OnrampTokenListModel +import com.tangem.features.onramp.tokenlist.ui.TokenList import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @Stable -internal class DefaultTokenListComponent @AssistedInject constructor( +internal class DefaultOnrampTokenListComponent @AssistedInject constructor( @Assisted context: AppComponentContext, - @Assisted params: TokenListComponent.Params, -) : TokenListComponent, AppComponentContext by context { + @Assisted params: OnrampTokenListComponent.Params, +) : OnrampTokenListComponent, AppComponentContext by context { - private val model: TokenListModel = getOrCreateModel(params) + private val model: OnrampTokenListModel = getOrCreateModel(params) @Composable override fun Content(contentPadding: PaddingValues, modifier: Modifier) { @@ -30,7 +30,10 @@ internal class DefaultTokenListComponent @AssistedInject constructor( } @AssistedFactory - interface Factory : TokenListComponent.Factory { - override fun create(context: AppComponentContext, params: TokenListComponent.Params): DefaultTokenListComponent + interface Factory : OnrampTokenListComponent.Factory { + override fun create( + context: AppComponentContext, + params: OnrampTokenListComponent.Params, + ): DefaultOnrampTokenListComponent } } \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/TokenListComponent.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/OnrampTokenListComponent.kt similarity index 85% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/TokenListComponent.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/OnrampTokenListComponent.kt index 4bb85444e3..8b924c893e 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/TokenListComponent.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/OnrampTokenListComponent.kt @@ -1,4 +1,4 @@ -package com.tangem.feature.wallet.presentation.tokenlist +package com.tangem.features.onramp.tokenlist import androidx.compose.foundation.layout.PaddingValues import androidx.compose.runtime.Composable @@ -10,13 +10,13 @@ import com.tangem.domain.wallets.models.UserWalletId /** Token list component that present list of token for multi-currency wallet */ @Stable -internal interface TokenListComponent { +internal interface OnrampTokenListComponent { @Composable fun Content(contentPadding: PaddingValues, modifier: Modifier) /** Component factory */ - interface Factory : ComponentFactory + interface Factory : ComponentFactory /** * Params diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/di/OnrampTokenListComponentModule.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/di/OnrampTokenListComponentModule.kt new file mode 100644 index 0000000000..913817a3e6 --- /dev/null +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/di/OnrampTokenListComponentModule.kt @@ -0,0 +1,20 @@ +package com.tangem.features.onramp.tokenlist.di + +import com.tangem.features.onramp.tokenlist.DefaultOnrampTokenListComponent +import com.tangem.features.onramp.tokenlist.OnrampTokenListComponent +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +internal interface OnrampTokenListComponentModule { + + @Binds + @Singleton + fun bindOnrampTokenListComponentFactory( + factory: DefaultOnrampTokenListComponent.Factory, + ): OnrampTokenListComponent.Factory +} \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/di/TokenListModelModule.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/di/OnrampTokenListModelModule.kt similarity index 53% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/di/TokenListModelModule.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/di/OnrampTokenListModelModule.kt index 732340f818..7977384f55 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/di/TokenListModelModule.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/di/OnrampTokenListModelModule.kt @@ -1,8 +1,8 @@ -package com.tangem.feature.wallet.presentation.tokenlist.di +package com.tangem.features.onramp.tokenlist.di import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.model.Model -import com.tangem.feature.wallet.presentation.tokenlist.model.TokenListModel +import com.tangem.features.onramp.tokenlist.model.OnrampTokenListModel import dagger.Binds import dagger.Module import dagger.hilt.InstallIn @@ -11,10 +11,10 @@ import dagger.multibindings.IntoMap @Module @InstallIn(DecomposeComponent::class) -internal interface TokenListModelModule { +internal interface OnrampTokenListModelModule { @Binds @IntoMap - @ClassKey(TokenListModel::class) - fun provideTokenListModel(model: TokenListModel): Model + @ClassKey(OnrampTokenListModel::class) + fun bindOnrampTokenListModel(model: OnrampTokenListModel): Model } \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/TokenListUM.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/TokenListUM.kt similarity index 93% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/TokenListUM.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/TokenListUM.kt index c86dc9a2f9..bb9e8f3562 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/TokenListUM.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/TokenListUM.kt @@ -1,4 +1,4 @@ -package com.tangem.feature.wallet.presentation.tokenlist.entity +package com.tangem.features.onramp.tokenlist.entity import com.tangem.core.ui.components.tokenlist.state.TokensListItemUM import kotlinx.collections.immutable.ImmutableList diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/TokenListUMController.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/TokenListUMController.kt similarity index 94% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/TokenListUMController.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/TokenListUMController.kt index 43c5bb75b8..bb662a5b7a 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/TokenListUMController.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/TokenListUMController.kt @@ -1,4 +1,4 @@ -package com.tangem.feature.wallet.presentation.tokenlist.entity +package com.tangem.features.onramp.tokenlist.entity import com.tangem.core.ui.components.tokenlist.state.TokensListItemUM import kotlinx.collections.immutable.persistentListOf diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/TokenListUMTransformer.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/TokenListUMTransformer.kt similarity index 73% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/TokenListUMTransformer.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/TokenListUMTransformer.kt index 49678c022f..4ffbf26c31 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/TokenListUMTransformer.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/TokenListUMTransformer.kt @@ -1,4 +1,4 @@ -package com.tangem.feature.wallet.presentation.tokenlist.entity +package com.tangem.features.onramp.tokenlist.entity import com.tangem.utils.transformer.Transformer diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/transformer/SearchBarUMTransformer.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/transformer/SearchBarUMTransformer.kt similarity index 78% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/transformer/SearchBarUMTransformer.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/transformer/SearchBarUMTransformer.kt index a177307b2c..db17cb19ea 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/transformer/SearchBarUMTransformer.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/transformer/SearchBarUMTransformer.kt @@ -1,8 +1,8 @@ -package com.tangem.feature.wallet.presentation.tokenlist.entity.transformer +package com.tangem.features.onramp.tokenlist.entity.transformer import com.tangem.core.ui.components.fields.entity.SearchBarUM -import com.tangem.feature.wallet.presentation.tokenlist.entity.TokenListUM -import com.tangem.feature.wallet.presentation.tokenlist.entity.TokenListUMTransformer +import com.tangem.features.onramp.tokenlist.entity.TokenListUM +import com.tangem.features.onramp.tokenlist.entity.TokenListUMTransformer import kotlinx.collections.immutable.persistentListOf /** diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/transformer/UpdateSearchBarActiveStateTransformer.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/transformer/UpdateSearchBarActiveStateTransformer.kt similarity index 84% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/transformer/UpdateSearchBarActiveStateTransformer.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/transformer/UpdateSearchBarActiveStateTransformer.kt index f33d3ea4ee..cf69073114 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/transformer/UpdateSearchBarActiveStateTransformer.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/transformer/UpdateSearchBarActiveStateTransformer.kt @@ -1,9 +1,9 @@ -package com.tangem.feature.wallet.presentation.tokenlist.entity.transformer +package com.tangem.features.onramp.tokenlist.entity.transformer import com.tangem.core.ui.components.fields.entity.SearchBarUM import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.resourceReference -import com.tangem.feature.wallet.impl.R +import com.tangem.features.onramp.impl.R internal class UpdateSearchBarActiveStateTransformer(private val isActive: Boolean) : SearchBarUMTransformer() { diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/transformer/UpdateSearchQueryTransformer.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/transformer/UpdateSearchQueryTransformer.kt similarity index 79% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/transformer/UpdateSearchQueryTransformer.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/transformer/UpdateSearchQueryTransformer.kt index 93a6a20675..3e463d159a 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/transformer/UpdateSearchQueryTransformer.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/transformer/UpdateSearchQueryTransformer.kt @@ -1,4 +1,4 @@ -package com.tangem.feature.wallet.presentation.tokenlist.entity.transformer +package com.tangem.features.onramp.tokenlist.entity.transformer import com.tangem.core.ui.components.fields.entity.SearchBarUM diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/transformer/UpdateTokenItemsTransformer.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/transformer/UpdateTokenItemsTransformer.kt similarity index 85% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/transformer/UpdateTokenItemsTransformer.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/transformer/UpdateTokenItemsTransformer.kt index 0fe02a9f42..b6065912be 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/entity/transformer/UpdateTokenItemsTransformer.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/entity/transformer/UpdateTokenItemsTransformer.kt @@ -1,13 +1,13 @@ -package com.tangem.feature.wallet.presentation.tokenlist.entity.transformer +package com.tangem.features.onramp.tokenlist.entity.transformer import com.tangem.common.ui.tokens.TokenItemStateConverter import com.tangem.core.ui.components.fields.entity.SearchBarUM import com.tangem.core.ui.components.tokenlist.state.TokensListItemUM import com.tangem.core.ui.extensions.resourceReference import com.tangem.domain.tokens.model.CryptoCurrencyStatus -import com.tangem.feature.wallet.impl.R -import com.tangem.feature.wallet.presentation.tokenlist.entity.TokenListUM -import com.tangem.feature.wallet.presentation.tokenlist.entity.TokenListUMTransformer +import com.tangem.features.onramp.impl.R +import com.tangem.features.onramp.tokenlist.entity.TokenListUM +import com.tangem.features.onramp.tokenlist.entity.TokenListUMTransformer import kotlinx.collections.immutable.toImmutableList internal class UpdateTokenItemsTransformer( diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/model/TokenListModel.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/model/OnrampTokenListModel.kt similarity index 82% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/model/TokenListModel.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/model/OnrampTokenListModel.kt index fb13ef8d9d..efbb04ac25 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/model/TokenListModel.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/model/OnrampTokenListModel.kt @@ -1,4 +1,4 @@ -package com.tangem.feature.wallet.presentation.tokenlist.model +package com.tangem.features.onramp.tokenlist.model import arrow.core.getOrElse import com.tangem.common.ui.tokens.TokenItemStateConverter @@ -11,20 +11,20 @@ import com.tangem.domain.core.utils.getOrElse import com.tangem.domain.tokens.GetTokenListUseCase import com.tangem.domain.tokens.model.CryptoCurrencyStatus import com.tangem.domain.tokens.model.TokenList -import com.tangem.feature.wallet.presentation.tokenlist.TokenListComponent -import com.tangem.feature.wallet.presentation.tokenlist.entity.TokenListUM -import com.tangem.feature.wallet.presentation.tokenlist.entity.TokenListUMController -import com.tangem.feature.wallet.presentation.tokenlist.entity.transformer.UpdateSearchBarActiveStateTransformer -import com.tangem.feature.wallet.presentation.tokenlist.entity.transformer.UpdateSearchQueryTransformer -import com.tangem.feature.wallet.presentation.tokenlist.entity.transformer.UpdateTokenItemsTransformer -import com.tangem.feature.wallet.presentation.tokenlist.utils.SearchTokensManager +import com.tangem.features.onramp.tokenlist.OnrampTokenListComponent +import com.tangem.features.onramp.tokenlist.entity.TokenListUM +import com.tangem.features.onramp.tokenlist.entity.TokenListUMController +import com.tangem.features.onramp.tokenlist.entity.transformer.UpdateSearchBarActiveStateTransformer +import com.tangem.features.onramp.tokenlist.entity.transformer.UpdateSearchQueryTransformer +import com.tangem.features.onramp.tokenlist.entity.transformer.UpdateTokenItemsTransformer +import com.tangem.features.onramp.tokenlist.utils.SearchTokensManager import com.tangem.utils.coroutines.CoroutineDispatcherProvider import kotlinx.coroutines.flow.* import kotlinx.coroutines.launch import javax.inject.Inject @Suppress("LongParameterList") -internal class TokenListModel @Inject constructor( +internal class OnrampTokenListModel @Inject constructor( paramsContainer: ParamsContainer, override val dispatchers: CoroutineDispatcherProvider, private val tokenListUMController: TokenListUMController, @@ -36,7 +36,7 @@ internal class TokenListModel @Inject constructor( val state: StateFlow = tokenListUMController.state - private val params: TokenListComponent.Params = paramsContainer.require() + private val params: OnrampTokenListComponent.Params = paramsContainer.require() init { subscribeOnUpdateState() diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/ui/TokenList.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/ui/OnrampTokenList.kt similarity index 90% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/ui/TokenList.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/ui/OnrampTokenList.kt index b8fcb55c6d..c75b080c3b 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/ui/TokenList.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/ui/OnrampTokenList.kt @@ -1,4 +1,4 @@ -package com.tangem.feature.wallet.presentation.tokenlist.ui +package com.tangem.features.onramp.tokenlist.ui import androidx.compose.foundation.background import androidx.compose.foundation.layout.PaddingValues @@ -14,8 +14,8 @@ import com.tangem.core.ui.components.tokenlist.TokenListItem import com.tangem.core.ui.decorations.roundedShapeItemDecoration import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemThemePreview -import com.tangem.feature.wallet.presentation.tokenlist.entity.TokenListUM -import com.tangem.feature.wallet.presentation.tokenlist.ui.preview.PreviewTokenListUMProvider +import com.tangem.features.onramp.tokenlist.entity.TokenListUM +import com.tangem.features.onramp.tokenlist.ui.preview.PreviewTokenListUMProvider /** * Token list diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/ui/preview/PreviewTokenListUMProvider.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/ui/preview/PreviewTokenListUMProvider.kt similarity index 93% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/ui/preview/PreviewTokenListUMProvider.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/ui/preview/PreviewTokenListUMProvider.kt index 1b735ea3c8..ce2f3e4f88 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/ui/preview/PreviewTokenListUMProvider.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/ui/preview/PreviewTokenListUMProvider.kt @@ -1,4 +1,4 @@ -package com.tangem.feature.wallet.presentation.tokenlist.ui.preview +package com.tangem.features.onramp.tokenlist.ui.preview import androidx.compose.ui.tooling.preview.PreviewParameterProvider import com.tangem.core.ui.components.currency.icon.CurrencyIconState @@ -7,8 +7,8 @@ import com.tangem.core.ui.components.marketprice.PriceChangeType import com.tangem.core.ui.components.token.state.TokenItemState import com.tangem.core.ui.components.tokenlist.state.TokensListItemUM import com.tangem.core.ui.extensions.resourceReference -import com.tangem.feature.wallet.impl.R -import com.tangem.feature.wallet.presentation.tokenlist.entity.TokenListUM +import com.tangem.features.onramp.impl.R +import com.tangem.features.onramp.tokenlist.entity.TokenListUM import kotlinx.collections.immutable.toImmutableList internal class PreviewTokenListUMProvider : PreviewParameterProvider { diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/utils/SearchTokensManager.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/utils/SearchTokensManager.kt similarity index 92% rename from features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/utils/SearchTokensManager.kt rename to features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/utils/SearchTokensManager.kt index ff57e2818c..dde1a1ab4f 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/utils/SearchTokensManager.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/utils/SearchTokensManager.kt @@ -1,4 +1,4 @@ -package com.tangem.feature.wallet.presentation.tokenlist.utils +package com.tangem.features.onramp.tokenlist.utils import com.tangem.utils.coroutines.JobHolder import com.tangem.utils.coroutines.withDebounce diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/selecttoken/DefaultSelectTokenComponent.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/selecttoken/DefaultSelectTokenComponent.kt deleted file mode 100644 index 680be64c0b..0000000000 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/selecttoken/DefaultSelectTokenComponent.kt +++ /dev/null @@ -1,46 +0,0 @@ -package com.tangem.feature.wallet.presentation.selecttoken - -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import com.tangem.core.decompose.context.AppComponentContext -import com.tangem.core.decompose.context.child -import com.tangem.feature.wallet.presentation.selecttoken.ui.SelectToken -import com.tangem.feature.wallet.presentation.tokenlist.TokenListComponent -import dagger.assisted.Assisted -import dagger.assisted.AssistedFactory -import dagger.assisted.AssistedInject - -internal class DefaultSelectTokenComponent @AssistedInject constructor( - @Assisted appComponentContext: AppComponentContext, - tokenListComponentFactory: TokenListComponent.Factory, - @Assisted private val params: SelectTokenComponent.Params, -) : AppComponentContext by appComponentContext, SelectTokenComponent { - - private val tokenListComponent: TokenListComponent = tokenListComponentFactory.create( - context = child(key = "token_list"), - params = TokenListComponent.Params( - hasSearchBar = params.hasSearchBar, - userWalletId = params.userWalletId, - onTokenClick = params.onTokenClick, - ), - ) - - @Composable - override fun Content(modifier: Modifier) { - SelectToken( - titleResId = params.titleResId, - onBackClick = router::pop, - tokenListComponent = tokenListComponent, - modifier = modifier, - ) - } - - @AssistedFactory - interface Factory : SelectTokenComponent.Factory { - - override fun create( - context: AppComponentContext, - params: SelectTokenComponent.Params, - ): DefaultSelectTokenComponent - } -} \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/selecttoken/di/SelectTokenComponentModule.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/selecttoken/di/SelectTokenComponentModule.kt deleted file mode 100644 index 620bf54e1b..0000000000 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/selecttoken/di/SelectTokenComponentModule.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.tangem.feature.wallet.presentation.selecttoken.di - -import com.tangem.feature.wallet.presentation.selecttoken.DefaultSelectTokenComponent -import com.tangem.feature.wallet.presentation.selecttoken.SelectTokenComponent -import dagger.Binds -import dagger.Module -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -internal interface SelectTokenComponentModule { - - @Binds - @Singleton - fun bindSelectTokenComponentFactory(factory: DefaultSelectTokenComponent.Factory): SelectTokenComponent.Factory -} \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/di/TokenListComponentModule.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/di/TokenListComponentModule.kt deleted file mode 100644 index 1e2672c2af..0000000000 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/tokenlist/di/TokenListComponentModule.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.tangem.feature.wallet.presentation.tokenlist.di - -import com.tangem.feature.wallet.presentation.tokenlist.DefaultTokenListComponent -import com.tangem.feature.wallet.presentation.tokenlist.TokenListComponent -import dagger.Binds -import dagger.Module -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -internal interface TokenListComponentModule { - - @Binds - @Singleton - fun bindTokenListComponentFactory(factory: DefaultTokenListComponent.Factory): TokenListComponent.Factory -} \ No newline at end of file