Updated on 2026-08-14

This commit is contained in:
Tangem 2025-02-26 13:22:09 +03:00
parent 5299629221
commit 2fb5b86505
107 changed files with 228 additions and 227 deletions

View file

@ -5,7 +5,7 @@ import androidx.appcompat.app.AppCompatActivity
import com.arkivanov.decompose.defaultComponentContext import com.arkivanov.decompose.defaultComponentContext
import com.tangem.core.decompose.context.AppComponentContext import com.tangem.core.decompose.context.AppComponentContext
import com.tangem.core.decompose.context.DefaultAppComponentContext import com.tangem.core.decompose.context.DefaultAppComponentContext
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.di.GlobalUiMessageSender import com.tangem.core.decompose.di.GlobalUiMessageSender
import com.tangem.core.decompose.di.RootAppComponentContext import com.tangem.core.decompose.di.RootAppComponentContext
import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.decompose.ui.UiMessageSender
@ -27,7 +27,7 @@ internal object RootAppComponentContextModule {
fun provideRootAppComponentContext( fun provideRootAppComponentContext(
@ActivityContext context: Context, @ActivityContext context: Context,
dispatchers: CoroutineDispatcherProvider, dispatchers: CoroutineDispatcherProvider,
componentBuilder: DecomposeComponent.Builder, componentBuilder: ModelComponent.Builder,
@GlobalUiMessageSender messageSender: UiMessageSender, @GlobalUiMessageSender messageSender: UiMessageSender,
): AppComponentContext { ): AppComponentContext {
return DefaultAppComponentContext( return DefaultAppComponentContext(

View file

@ -3,7 +3,7 @@ package com.tangem.tap.features.details.ui.appcurrency.model
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import com.tangem.common.routing.AppRouter import com.tangem.common.routing.AppRouter
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.domain.appcurrency.GetAvailableCurrenciesUseCase import com.tangem.domain.appcurrency.GetAvailableCurrenciesUseCase
import com.tangem.domain.appcurrency.GetSelectedAppCurrencyUseCase import com.tangem.domain.appcurrency.GetSelectedAppCurrencyUseCase
@ -19,7 +19,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
internal class AppCurrencySelectorModel @Inject constructor( internal class AppCurrencySelectorModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val getSelectedAppCurrencyUseCase: GetSelectedAppCurrencyUseCase, private val getSelectedAppCurrencyUseCase: GetSelectedAppCurrencyUseCase,

View file

@ -2,13 +2,13 @@ package com.tangem.tap.features.details.ui.appsettings.analytics
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.analytics.models.AnalyticsEvent import com.tangem.core.analytics.models.AnalyticsEvent
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.tap.common.analytics.events.Settings import com.tangem.tap.common.analytics.events.Settings
import com.tangem.tap.features.details.ui.appsettings.AppSettingsItemsFactory import com.tangem.tap.features.details.ui.appsettings.AppSettingsItemsFactory
import com.tangem.tap.features.details.ui.appsettings.AppSettingsScreenState import com.tangem.tap.features.details.ui.appsettings.AppSettingsScreenState
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class AppSettingsItemsAnalyticsSender @Inject constructor( internal class AppSettingsItemsAnalyticsSender @Inject constructor(
private val analyticsHandler: AnalyticsEventHandler, private val analyticsHandler: AnalyticsEventHandler,
) { ) {

View file

@ -3,7 +3,7 @@ package com.tangem.tap.features.details.ui.appsettings.model
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import com.tangem.common.routing.AppRoute import com.tangem.common.routing.AppRoute
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.appcurrency.model.AppCurrency
import com.tangem.domain.appcurrency.repository.AppCurrencyRepository import com.tangem.domain.appcurrency.repository.AppCurrencyRepository
@ -40,7 +40,7 @@ import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class AppSettingsModel @Inject constructor( internal class AppSettingsModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val appCurrencyRepository: AppCurrencyRepository, private val appCurrencyRepository: AppCurrencyRepository,

View file

@ -4,7 +4,7 @@ import androidx.compose.runtime.Stable
import com.tangem.common.doOnSuccess import com.tangem.common.doOnSuccess
import com.tangem.common.routing.AppRouter import com.tangem.common.routing.AppRouter
import com.tangem.core.analytics.Analytics import com.tangem.core.analytics.Analytics
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.domain.common.util.cardTypesResolver import com.tangem.domain.common.util.cardTypesResolver
import com.tangem.sdk.api.TangemSdkManager import com.tangem.sdk.api.TangemSdkManager
@ -22,7 +22,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
internal class AccessCodeRecoveryModel @Inject constructor( internal class AccessCodeRecoveryModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val tangemSdkManager: TangemSdkManager, private val tangemSdkManager: TangemSdkManager,

View file

@ -7,7 +7,7 @@ import com.tangem.common.doOnSuccess
import com.tangem.common.routing.AppRoute import com.tangem.common.routing.AppRoute
import com.tangem.common.routing.AppRouter import com.tangem.common.routing.AppRouter
import com.tangem.core.analytics.Analytics import com.tangem.core.analytics.Analytics
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.domain.card.ScanCardProcessor import com.tangem.domain.card.ScanCardProcessor
@ -45,7 +45,7 @@ import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class CardSettingsModel @Inject constructor( internal class CardSettingsModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -5,7 +5,7 @@ import arrow.core.getOrElse
import com.tangem.common.routing.AppRoute import com.tangem.common.routing.AppRoute
import com.tangem.common.routing.utils.popTo import com.tangem.common.routing.utils.popTo
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.domain.card.DeleteSavedAccessCodesUseCase import com.tangem.domain.card.DeleteSavedAccessCodesUseCase
@ -37,7 +37,7 @@ import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class ResetCardModel @Inject constructor( internal class ResetCardModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,

View file

@ -5,7 +5,7 @@ import com.tangem.common.CompletionResult
import com.tangem.common.core.TangemSdkError import com.tangem.common.core.TangemSdkError
import com.tangem.common.routing.AppRouter import com.tangem.common.routing.AppRouter
import com.tangem.core.analytics.Analytics import com.tangem.core.analytics.Analytics
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.domain.common.util.cardTypesResolver import com.tangem.domain.common.util.cardTypesResolver
import com.tangem.sdk.api.TangemSdkManager import com.tangem.sdk.api.TangemSdkManager
@ -25,7 +25,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
internal class SecurityModeModel @Inject constructor( internal class SecurityModeModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val tangemSdkManager: TangemSdkManager, private val tangemSdkManager: TangemSdkManager,

View file

@ -2,7 +2,7 @@ package com.tangem.tap.features.details.ui.walletconnect
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import arrow.core.getOrElse import arrow.core.getOrElse
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.ui.clipboard.ClipboardManager import com.tangem.core.ui.clipboard.ClipboardManager
import com.tangem.domain.qrscanning.models.SourceType import com.tangem.domain.qrscanning.models.SourceType
@ -18,7 +18,7 @@ import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
internal class WalletConnectModel @Inject constructor( internal class WalletConnectModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val listenToQrScanningUseCase: ListenToQrScanningUseCase, private val listenToQrScanningUseCase: ListenToQrScanningUseCase,

View file

@ -9,7 +9,7 @@ import com.tangem.core.analytics.Analytics
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.core.analytics.models.Basic import com.tangem.core.analytics.models.Basic
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.navigation.url.UrlOpener import com.tangem.core.navigation.url.UrlOpener
import com.tangem.domain.card.ScanCardProcessor import com.tangem.domain.card.ScanCardProcessor
@ -40,7 +40,7 @@ import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class HomeModel @Inject constructor( internal class HomeModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val scanCardProcessor: ScanCardProcessor, private val scanCardProcessor: ScanCardProcessor,

View file

@ -1,6 +1,6 @@
package com.tangem.tap.features.welcome.di package com.tangem.tap.features.welcome.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.tap.features.welcome.model.WelcomeModel import com.tangem.tap.features.welcome.model.WelcomeModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface ModelModule { internal interface ModelModule {
@Binds @Binds

View file

@ -2,7 +2,7 @@ package com.tangem.core.decompose.context
import com.arkivanov.decompose.ComponentContext import com.arkivanov.decompose.ComponentContext
import com.arkivanov.essenty.instancekeeper.getOrCreate import com.arkivanov.essenty.instancekeeper.getOrCreate
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.navigation.AppNavigationProvider import com.tangem.core.decompose.navigation.AppNavigationProvider
import com.tangem.core.decompose.navigation.DefaultAppNavigationProvider import com.tangem.core.decompose.navigation.DefaultAppNavigationProvider
import com.tangem.core.decompose.navigation.DefaultRouter import com.tangem.core.decompose.navigation.DefaultRouter
@ -15,7 +15,7 @@ import kotlinx.coroutines.CoroutineScope
class DefaultAppComponentContext( class DefaultAppComponentContext(
componentContext: ComponentContext, componentContext: ComponentContext,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
override val hiltComponentBuilder: DecomposeComponent.Builder, override val hiltComponentBuilder: ModelComponent.Builder,
override val messageSender: UiMessageSender, override val messageSender: UiMessageSender,
private val replaceRouter: Router? = null, private val replaceRouter: Router? = null,
) : AppComponentContext, ComponentContext by componentContext { ) : AppComponentContext, ComponentContext by componentContext {

View file

@ -1,9 +0,0 @@
package com.tangem.core.decompose.di
/**
* Annotation for marking a dependency as a component scoped.
*
* This means that the lifecycle of the dependency is limited to the lifecycle of the component it is attached to.
*/
@Retention(AnnotationRetention.SOURCE)
annotation class ComponentScoped

View file

@ -8,5 +8,5 @@ interface HiltComponentBuilderOwner {
/** /**
* Provides access to the Hilt component builder instance. * Provides access to the Hilt component builder instance.
*/ */
val hiltComponentBuilder: DecomposeComponent.Builder val hiltComponentBuilder: ModelComponent.Builder
} }

View file

@ -10,11 +10,11 @@ import dagger.hilt.components.SingletonComponent
/** /**
* Interface for the Decompose component. * Interface for the Decompose component.
* *
* It is annotated as [ComponentScoped], meaning it has a lifecycle that is scoped to the component. * It is annotated as [ModelScoped], meaning it has a lifecycle that is scoped to the component.
*/ */
@ComponentScoped @ModelScoped
@DefineComponent(parent = SingletonComponent::class) @DefineComponent(parent = SingletonComponent::class)
interface DecomposeComponent { interface ModelComponent {
/** /**
* Builder interface for the component. * Builder interface for the component.
@ -51,6 +51,6 @@ interface DecomposeComponent {
* *
* @return The built Decompose component. * @return The built Decompose component.
*/ */
fun build(): DecomposeComponent fun build(): ModelComponent
} }
} }

View file

@ -0,0 +1,12 @@
package com.tangem.core.decompose.di
import javax.inject.Scope
/**
* Annotation for marking a dependency as a model scoped.
*
* This means that the lifecycle of the dependency is limited to the lifecycle of the component's model
*/
@Scope
@Retention(AnnotationRetention.RUNTIME)
annotation class ModelScoped

View file

@ -3,7 +3,7 @@ package com.tangem.core.decompose.model
import com.arkivanov.essenty.instancekeeper.getOrCreate import com.arkivanov.essenty.instancekeeper.getOrCreate
import com.arkivanov.essenty.instancekeeper.getOrCreateSimple import com.arkivanov.essenty.instancekeeper.getOrCreateSimple
import com.tangem.core.decompose.context.AppComponentContext import com.tangem.core.decompose.context.AppComponentContext
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import dagger.hilt.EntryPoint import dagger.hilt.EntryPoint
import dagger.hilt.EntryPoints import dagger.hilt.EntryPoints
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
@ -15,7 +15,7 @@ import javax.inject.Provider
* It provides a map of model providers. * It provides a map of model providers.
*/ */
@EntryPoint @EntryPoint
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
interface ModelsEntryPoint { interface ModelsEntryPoint {
fun models(): Map<Class<*>, Provider<Model>> fun models(): Map<Class<*>, Provider<Model>>

View file

@ -3,7 +3,7 @@ package com.tangem.core.decompose.model
/** /**
* Lazy container for [Model] params. * Lazy container for [Model] params.
* *
* This contrainer can be accessed by DI because it's provided via [com.tangem.core.decompose.di.DecomposeComponent]. * This contrainer can be accessed by DI because it's provided via [com.tangem.core.decompose.di.ModelComponent].
* */ * */
interface ParamsContainer { interface ParamsContainer {

View file

@ -1,6 +1,6 @@
package com.tangem.features.details.di package com.tangem.features.details.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.details.model.DetailsModel import com.tangem.features.details.model.DetailsModel
import com.tangem.features.details.model.UserWalletListModel import com.tangem.features.details.model.UserWalletListModel
@ -11,7 +11,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface ModelModule { internal interface ModelModule {
@Binds @Binds

View file

@ -2,7 +2,7 @@ package com.tangem.features.details.model
import arrow.core.getOrElse import arrow.core.getOrElse
import com.tangem.core.analytics.AppInstanceIdProvider import com.tangem.core.analytics.AppInstanceIdProvider
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.navigation.Router import com.tangem.core.decompose.navigation.Router
@ -32,7 +32,7 @@ import kotlinx.coroutines.launch
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
@Suppress("LongParameterList") @Suppress("LongParameterList")
internal class DetailsModel @Inject constructor( internal class DetailsModel @Inject constructor(
socialsBuilder: SocialsBuilder, socialsBuilder: SocialsBuilder,

View file

@ -1,7 +1,7 @@
package com.tangem.features.details.model package com.tangem.features.details.model
import com.tangem.common.ui.userwallet.state.UserWalletItemUM import com.tangem.common.ui.userwallet.state.UserWalletItemUM
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.resourceReference
@ -19,7 +19,7 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.update import kotlinx.coroutines.flow.update
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class UserWalletListModel @Inject constructor( internal class UserWalletListModel @Inject constructor(
userWalletsFetcher: UserWalletsFetcher, userWalletsFetcher: UserWalletsFetcher,
shouldSaveUserWalletsUseCase: ShouldSaveUserWalletsUseCase, shouldSaveUserWalletsUseCase: ShouldSaveUserWalletsUseCase,

View file

@ -1,7 +1,7 @@
package com.tangem.features.details.utils package com.tangem.features.details.utils
import com.tangem.common.routing.AppRoute import com.tangem.common.routing.AppRoute
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.navigation.Router import com.tangem.core.decompose.navigation.Router
import com.tangem.core.ui.components.block.model.BlockUM import com.tangem.core.ui.components.block.model.BlockUM
import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.resourceReference
@ -14,7 +14,7 @@ import kotlinx.collections.immutable.persistentListOf
import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toImmutableList
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class ItemsBuilder @Inject constructor(private val router: Router) { internal class ItemsBuilder @Inject constructor(private val router: Router) {
fun buildAll( fun buildAll(

View file

@ -1,7 +1,7 @@
package com.tangem.features.details.utils package com.tangem.features.details.utils
import androidx.compose.ui.text.intl.Locale import androidx.compose.ui.text.intl.Locale
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.navigation.url.UrlOpener import com.tangem.core.navigation.url.UrlOpener
import com.tangem.features.details.entity.DetailsFooterUM import com.tangem.features.details.entity.DetailsFooterUM
import com.tangem.features.details.impl.R import com.tangem.features.details.impl.R
@ -9,7 +9,7 @@ import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toImmutableList
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class SocialsBuilder @Inject constructor( internal class SocialsBuilder @Inject constructor(
private val urlOpener: UrlOpener, private val urlOpener: UrlOpener,
) { ) {

View file

@ -7,7 +7,7 @@ import arrow.core.raise.fold
import arrow.core.raise.recover import arrow.core.raise.recover
import com.tangem.common.routing.AppRoute import com.tangem.common.routing.AppRoute
import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.navigation.Router import com.tangem.core.decompose.navigation.Router
import com.tangem.core.decompose.navigation.popTo import com.tangem.core.decompose.navigation.popTo
import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.decompose.ui.UiMessageSender
@ -33,7 +33,7 @@ import kotlinx.coroutines.suspendCancellableCoroutine
import javax.inject.Inject import javax.inject.Inject
import kotlin.coroutines.resume import kotlin.coroutines.resume
@ComponentScoped @ModelScoped
@Suppress("LongParameterList") @Suppress("LongParameterList")
internal class UserWalletSaver @Inject constructor( internal class UserWalletSaver @Inject constructor(
private val scanCardProcessor: ScanCardProcessor, private val scanCardProcessor: ScanCardProcessor,

View file

@ -4,7 +4,7 @@ import arrow.core.Either
import com.tangem.common.routing.AppRoute import com.tangem.common.routing.AppRoute
import com.tangem.common.ui.userwallet.converter.UserWalletItemUMConverter import com.tangem.common.ui.userwallet.converter.UserWalletItemUMConverter
import com.tangem.common.ui.userwallet.state.UserWalletItemUM import com.tangem.common.ui.userwallet.state.UserWalletItemUM
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.navigation.Router import com.tangem.core.decompose.navigation.Router
import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.decompose.ui.UiMessageSender
import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.resourceReference
@ -31,7 +31,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.* import kotlinx.coroutines.flow.*
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class UserWalletsFetcher @Inject constructor( internal class UserWalletsFetcher @Inject constructor(
getWalletsUseCase: GetWalletsUseCase, getWalletsUseCase: GetWalletsUseCase,
private val getWalletTotalBalanceUseCase: GetWalletTotalBalanceUseCase, private val getWalletTotalBalanceUseCase: GetWalletTotalBalanceUseCase,

View file

@ -1,6 +1,6 @@
package com.tangem.features.disclaimer.impl.di package com.tangem.features.disclaimer.impl.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.disclaimer.impl.model.DisclaimerModel import com.tangem.features.disclaimer.impl.model.DisclaimerModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface ModelModule { internal interface ModelModule {
@Binds @Binds

View file

@ -1,7 +1,7 @@
package com.tangem.features.disclaimer.impl.model package com.tangem.features.disclaimer.impl.model
import com.tangem.common.routing.AppRoute import com.tangem.common.routing.AppRoute
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.navigation.Router import com.tangem.core.decompose.navigation.Router
@ -17,7 +17,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
@Suppress("LongParameterList") @Suppress("LongParameterList")
internal class DisclaimerModel @Inject constructor( internal class DisclaimerModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -1,6 +1,6 @@
package com.tangem.features.managetokens.di package com.tangem.features.managetokens.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.managetokens.model.CustomTokenFormModel import com.tangem.features.managetokens.model.CustomTokenFormModel
import com.tangem.features.managetokens.model.CustomTokenSelectorModel import com.tangem.features.managetokens.model.CustomTokenSelectorModel
@ -13,7 +13,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface ModelModule { internal interface ModelModule {
@Binds @Binds

View file

@ -2,7 +2,7 @@ package com.tangem.features.managetokens.model
import arrow.core.getOrElse import arrow.core.getOrElse
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.decompose.ui.UiMessageSender
@ -37,7 +37,7 @@ import javax.inject.Inject
// TODO: Divide to sub-components: [REDACTED_JIRA] // TODO: Divide to sub-components: [REDACTED_JIRA]
@Suppress("LongParameterList", "LargeClass") @Suppress("LongParameterList", "LargeClass")
@ComponentScoped @ModelScoped
internal class CustomTokenFormModel @Inject constructor( internal class CustomTokenFormModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val customCurrencyValidator: CustomCurrencyValidator, private val customCurrencyValidator: CustomCurrencyValidator,

View file

@ -3,7 +3,7 @@ package com.tangem.features.managetokens.model
import arrow.core.getOrElse import arrow.core.getOrElse
import com.arkivanov.decompose.router.slot.SlotNavigation import com.arkivanov.decompose.router.slot.SlotNavigation
import com.arkivanov.decompose.router.slot.activate import com.arkivanov.decompose.router.slot.activate
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.decompose.ui.UiMessageSender
@ -33,7 +33,7 @@ import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class CustomTokenSelectorModel @Inject constructor( internal class CustomTokenSelectorModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val getSupportedNetworksUseCase: GetSupportedNetworksUseCase, private val getSupportedNetworksUseCase: GetSupportedNetworksUseCase,

View file

@ -5,7 +5,7 @@ import arrow.core.getOrElse
import com.arkivanov.decompose.router.slot.SlotNavigation import com.arkivanov.decompose.router.slot.SlotNavigation
import com.arkivanov.decompose.router.slot.activate import com.arkivanov.decompose.router.slot.activate
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.navigation.Router import com.tangem.core.decompose.navigation.Router
@ -42,7 +42,7 @@ import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@ComponentScoped @ModelScoped
internal class ManageTokensModel @Inject constructor( internal class ManageTokensModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val router: Router, private val router: Router,

View file

@ -3,7 +3,7 @@ package com.tangem.features.managetokens.model
import arrow.core.flatten import arrow.core.flatten
import arrow.core.getOrElse import arrow.core.getOrElse
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.decompose.ui.UiMessageSender
@ -37,7 +37,7 @@ import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@ComponentScoped @ModelScoped
internal class OnboardingManageTokensModel @Inject constructor( internal class OnboardingManageTokensModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val manageTokensListManager: ManageTokensListManager, private val manageTokensListManager: ManageTokensListManager,

View file

@ -3,7 +3,7 @@ package com.tangem.features.managetokens.utils
import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardCapitalization
import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.KeyboardType
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringReference import com.tangem.core.ui.extensions.stringReference
@ -15,7 +15,7 @@ import com.tangem.features.managetokens.impl.R
import kotlinx.collections.immutable.persistentMapOf import kotlinx.collections.immutable.persistentMapOf
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class CustomCurrencyFormBuilder @Inject constructor( internal class CustomCurrencyFormBuilder @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
) { ) {

View file

@ -1,7 +1,7 @@
package com.tangem.features.managetokens.utils package com.tangem.features.managetokens.utils
import arrow.core.getOrElse import arrow.core.getOrElse
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.domain.managetokens.CheckIsCurrencyNotAddedUseCase import com.tangem.domain.managetokens.CheckIsCurrencyNotAddedUseCase
import com.tangem.domain.managetokens.CreateCurrencyUseCase import com.tangem.domain.managetokens.CreateCurrencyUseCase
import com.tangem.domain.managetokens.FindTokenUseCase import com.tangem.domain.managetokens.FindTokenUseCase
@ -20,7 +20,7 @@ import kotlinx.coroutines.launch
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class CustomCurrencyValidator @Inject constructor( internal class CustomCurrencyValidator @Inject constructor(
private val validateTokenFormUseCase: ValidateTokenFormUseCase, private val validateTokenFormUseCase: ValidateTokenFormUseCase,
private val createCustomCurrencyUseCase: CreateCurrencyUseCase, private val createCustomCurrencyUseCase: CreateCurrencyUseCase,

View file

@ -4,7 +4,7 @@ import androidx.compose.ui.util.fastForEachIndexed
import androidx.compose.ui.util.fastMap import androidx.compose.ui.util.fastMap
import arrow.core.getOrElse import arrow.core.getOrElse
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.decompose.ui.UiMessageSender
import com.tangem.core.ui.clipboard.ClipboardManager import com.tangem.core.ui.clipboard.ClipboardManager
import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.resourceReference
@ -40,7 +40,7 @@ import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@ComponentScoped @ModelScoped
internal class ManageTokensListManager @Inject constructor( internal class ManageTokensListManager @Inject constructor(
private val getManagedTokensUseCase: GetManagedTokensUseCase, private val getManagedTokensUseCase: GetManagedTokensUseCase,
private val checkHasLinkedTokensUseCase: CheckHasLinkedTokensUseCase, private val checkHasLinkedTokensUseCase: CheckHasLinkedTokensUseCase,

View file

@ -1,6 +1,6 @@
package com.tangem.features.markets.details.impl.di package com.tangem.features.markets.details.impl.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.markets.details.impl.model.MarketsTokenDetailsModel import com.tangem.features.markets.details.impl.model.MarketsTokenDetailsModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface ModelModule { internal interface ModelModule {
@Binds @Binds

View file

@ -8,7 +8,7 @@ import com.tangem.common.ui.charts.state.MarketChartData
import com.tangem.common.ui.charts.state.MarketChartDataProducer import com.tangem.common.ui.charts.state.MarketChartDataProducer
import com.tangem.common.ui.charts.state.sorted import com.tangem.common.ui.charts.state.sorted
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.navigation.url.UrlOpener import com.tangem.core.navigation.url.UrlOpener
@ -53,7 +53,7 @@ import javax.inject.Inject
@Suppress("LargeClass", "LongParameterList") @Suppress("LargeClass", "LongParameterList")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class MarketsTokenDetailsModel @Inject constructor( internal class MarketsTokenDetailsModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -1,6 +1,6 @@
package com.tangem.features.markets.portfolio.impl.di package com.tangem.features.markets.portfolio.impl.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.markets.portfolio.impl.model.MarketsPortfolioModel import com.tangem.features.markets.portfolio.impl.model.MarketsPortfolioModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface ModelModule { internal interface ModelModule {
@Binds @Binds

View file

@ -3,7 +3,7 @@ package com.tangem.features.markets.portfolio.impl.model
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import arrow.core.getOrElse import arrow.core.getOrElse
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.decompose.ui.UiMessageSender
@ -38,7 +38,7 @@ import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class MarketsPortfolioModel @Inject constructor( internal class MarketsPortfolioModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
getSelectedAppCurrencyUseCase: GetSelectedAppCurrencyUseCase, getSelectedAppCurrencyUseCase: GetSelectedAppCurrencyUseCase,

View file

@ -2,7 +2,6 @@ package com.tangem.features.markets.portfolio.impl.model
import com.tangem.common.routing.AppRoute import com.tangem.common.routing.AppRoute
import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.core.decompose.di.ComponentScoped
import com.tangem.core.decompose.navigation.Router import com.tangem.core.decompose.navigation.Router
import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.decompose.ui.UiMessageSender
import com.tangem.core.ui.clipboard.ClipboardManager import com.tangem.core.ui.clipboard.ClipboardManager
@ -31,7 +30,6 @@ import dagger.assisted.AssistedInject
import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toImmutableList
@Suppress("LongParameterList") @Suppress("LongParameterList")
@ComponentScoped
internal class TokenActionsHandler @AssistedInject constructor( internal class TokenActionsHandler @AssistedInject constructor(
private val router: Router, private val router: Router,
private val clipboardManager: ClipboardManager, private val clipboardManager: ClipboardManager,

View file

@ -1,6 +1,6 @@
package com.tangem.features.markets.token.block.impl.di package com.tangem.features.markets.token.block.impl.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.markets.token.block.impl.model.TokenMarketBlockModel import com.tangem.features.markets.token.block.impl.model.TokenMarketBlockModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface ModelModule { internal interface ModelModule {
@Binds @Binds

View file

@ -6,7 +6,7 @@ import com.tangem.common.routing.AppRoute
import com.tangem.common.ui.charts.state.MarketChartData import com.tangem.common.ui.charts.state.MarketChartData
import com.tangem.common.ui.charts.state.converter.PriceAndTimePointValuesConverter import com.tangem.common.ui.charts.state.converter.PriceAndTimePointValuesConverter
import com.tangem.common.ui.charts.state.sorted import com.tangem.common.ui.charts.state.sorted
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.navigation.Router import com.tangem.core.decompose.navigation.Router
@ -31,7 +31,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
internal class TokenMarketBlockModel @Inject constructor( internal class TokenMarketBlockModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -1,6 +1,6 @@
package com.tangem.features.markets.tokenlist.impl.di package com.tangem.features.markets.tokenlist.impl.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.markets.tokenlist.impl.model.MarketsListModel import com.tangem.features.markets.tokenlist.impl.model.MarketsListModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface ModelModule { internal interface ModelModule {
@Binds @Binds

View file

@ -3,7 +3,7 @@ package com.tangem.features.markets.tokenlist.impl.model
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import arrow.core.getOrElse import arrow.core.getOrElse
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.domain.appcurrency.GetSelectedAppCurrencyUseCase import com.tangem.domain.appcurrency.GetSelectedAppCurrencyUseCase
import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.appcurrency.model.AppCurrency
@ -29,7 +29,7 @@ private const val UPDATE_QUOTES_TIMER_MILLIS = 60000L
private const val SEARCH_QUERY_DEBOUNCE_MILLIS = 800L private const val SEARCH_QUERY_DEBOUNCE_MILLIS = 800L
@OptIn(FlowPreview::class, ExperimentalCoroutinesApi::class) @OptIn(FlowPreview::class, ExperimentalCoroutinesApi::class)
@ComponentScoped @ModelScoped
@Stable @Stable
internal class MarketsListModel @Inject constructor( internal class MarketsListModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -1,6 +1,6 @@
package com.tangem.features.onboarding.v2.entry.impl.di package com.tangem.features.onboarding.v2.entry.impl.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onboarding.v2.entry.OnboardingEntryComponent import com.tangem.features.onboarding.v2.entry.OnboardingEntryComponent
import com.tangem.features.onboarding.v2.entry.impl.DefaultOnboardingEntryComponent import com.tangem.features.onboarding.v2.entry.impl.DefaultOnboardingEntryComponent
@ -25,7 +25,7 @@ internal interface ComponentModule {
} }
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface ModelModule { internal interface ModelModule {
@Binds @Binds
@IntoMap @IntoMap

View file

@ -3,7 +3,7 @@ package com.tangem.features.onboarding.v2.entry.impl.model
import com.arkivanov.decompose.router.stack.StackNavigation import com.arkivanov.decompose.router.stack.StackNavigation
import com.arkivanov.decompose.router.stack.navigate import com.arkivanov.decompose.router.stack.navigate
import com.tangem.common.routing.AppRoute import com.tangem.common.routing.AppRoute
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.navigation.Router import com.tangem.core.decompose.navigation.Router
@ -25,7 +25,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class OnboardingEntryModel @Inject constructor( internal class OnboardingEntryModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -3,7 +3,7 @@ package com.tangem.features.onboarding.v2.multiwallet.impl.child.accesscode.mode
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.input.TextFieldValue
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.features.onboarding.v2.multiwallet.impl.analytics.OnboardingEvent import com.tangem.features.onboarding.v2.multiwallet.impl.analytics.OnboardingEvent
@ -22,7 +22,7 @@ import javax.inject.Inject
private const val MINIMUM_ACCESS_CODE_LENGTH = 4 private const val MINIMUM_ACCESS_CODE_LENGTH = 4
@Stable @Stable
@ComponentScoped @ModelScoped
internal class MultiWalletAccessCodeModel @Inject constructor( internal class MultiWalletAccessCodeModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -7,7 +7,7 @@ import com.tangem.common.core.TangemSdkError
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.core.analytics.models.event.OnboardingAnalyticsEvent import com.tangem.core.analytics.models.event.OnboardingAnalyticsEvent
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.decompose.ui.UiMessageSender
@ -38,7 +38,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
@Suppress("LongParameterList") @Suppress("LongParameterList")
class MultiWalletBackupModel @Inject constructor( class MultiWalletBackupModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,

View file

@ -2,7 +2,7 @@ package com.tangem.features.onboarding.v2.multiwallet.impl.child.chooseoption.mo
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.domain.card.repository.CardRepository import com.tangem.domain.card.repository.CardRepository
@ -21,7 +21,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
internal class Wallet1ChooseOptionModel @Inject constructor( internal class Wallet1ChooseOptionModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,

View file

@ -4,7 +4,7 @@ import androidx.compose.runtime.Stable
import com.tangem.common.CompletionResult import com.tangem.common.CompletionResult
import com.tangem.common.core.TangemSdkError import com.tangem.common.core.TangemSdkError
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.resourceReference
@ -34,7 +34,7 @@ import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class MultiWalletCreateWalletModel @Inject constructor( internal class MultiWalletCreateWalletModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -3,7 +3,7 @@ package com.tangem.features.onboarding.v2.multiwallet.impl.child.finalize.model
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import com.tangem.common.CompletionResult import com.tangem.common.CompletionResult
import com.tangem.common.core.TangemSdkError import com.tangem.common.core.TangemSdkError
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.domain.card.repository.CardRepository import com.tangem.domain.card.repository.CardRepository
@ -39,7 +39,7 @@ import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class MultiWalletFinalizeModel @Inject constructor( internal class MultiWalletFinalizeModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -2,7 +2,7 @@ package com.tangem.features.onboarding.v2.multiwallet.impl.child.scanprimary.mod
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import com.tangem.common.CompletionResult import com.tangem.common.CompletionResult
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.domain.common.util.cardTypesResolver import com.tangem.domain.common.util.cardTypesResolver
@ -15,7 +15,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
internal class Wallet1ScanPrimaryModel @Inject constructor( internal class Wallet1ScanPrimaryModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -4,7 +4,7 @@ import androidx.compose.runtime.Stable
import com.tangem.common.CompletionResult import com.tangem.common.CompletionResult
import com.tangem.common.core.TangemSdkError import com.tangem.common.core.TangemSdkError
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.navigation.url.UrlOpener import com.tangem.core.navigation.url.UrlOpener
@ -35,7 +35,7 @@ import javax.inject.Inject
// ============================================= // =============================================
@Suppress("LongParameterList") @Suppress("LongParameterList")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class MultiWalletSeedPhraseModel @Inject constructor( internal class MultiWalletSeedPhraseModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -1,6 +1,6 @@
package com.tangem.features.onboarding.v2.multiwallet.impl.di package com.tangem.features.onboarding.v2.multiwallet.impl.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onboarding.v2.multiwallet.api.OnboardingMultiWalletComponent import com.tangem.features.onboarding.v2.multiwallet.api.OnboardingMultiWalletComponent
import com.tangem.features.onboarding.v2.multiwallet.impl.DefaultOnboardingMultiWalletComponent import com.tangem.features.onboarding.v2.multiwallet.impl.DefaultOnboardingMultiWalletComponent
@ -30,7 +30,7 @@ internal interface ComponentModule {
} }
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface ModelModule { internal interface ModelModule {
@Binds @Binds

View file

@ -1,7 +1,7 @@
package com.tangem.features.onboarding.v2.multiwallet.impl.model package com.tangem.features.onboarding.v2.multiwallet.impl.model
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.navigation.Router import com.tangem.core.decompose.navigation.Router
@ -22,7 +22,7 @@ import kotlinx.coroutines.flow.*
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class OnboardingMultiWalletModel @Inject constructor( internal class OnboardingMultiWalletModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -4,7 +4,7 @@ import androidx.compose.runtime.Stable
import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.input.TextFieldValue
import com.tangem.common.CompletionResult import com.tangem.common.CompletionResult
import com.tangem.common.extensions.toHexString import com.tangem.common.extensions.toHexString
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.domain.visa.model.VisaCardActivationStatus import com.tangem.domain.visa.model.VisaCardActivationStatus
@ -26,7 +26,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
internal class OnboardingVisaAccessCodeModel @Inject constructor( internal class OnboardingVisaAccessCodeModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
visaActivationRepositoryFactory: VisaActivationRepository.Factory, visaActivationRepositoryFactory: VisaActivationRepository.Factory,

View file

@ -3,7 +3,7 @@ package com.tangem.features.onboarding.v2.visa.impl.child.approve.model
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import com.tangem.common.CompletionResult import com.tangem.common.CompletionResult
import com.tangem.common.extensions.toHexString import com.tangem.common.extensions.toHexString
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.domain.visa.model.VisaCardId import com.tangem.domain.visa.model.VisaCardId
@ -21,7 +21,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
internal class OnboardingVisaApproveModel @Inject constructor( internal class OnboardingVisaApproveModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
visaActivationRepositoryFactory: VisaActivationRepository.Factory, visaActivationRepositoryFactory: VisaActivationRepository.Factory,

View file

@ -1,7 +1,7 @@
package com.tangem.features.onboarding.v2.visa.impl.child.choosewallet.model package com.tangem.features.onboarding.v2.visa.impl.child.choosewallet.model
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.TextReference
import com.tangem.features.onboarding.v2.impl.R import com.tangem.features.onboarding.v2.impl.R
@ -18,7 +18,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
internal class OnboardingVisaChooseWalletModel @Inject constructor( internal class OnboardingVisaChooseWalletModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
) : Model() { ) : Model() {

View file

@ -2,7 +2,7 @@ package com.tangem.features.onboarding.v2.visa.impl.child.inprogress.model
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import com.tangem.common.extensions.toHexString import com.tangem.common.extensions.toHexString
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.datasource.local.visa.VisaAuthTokenStorage import com.tangem.datasource.local.visa.VisaAuthTokenStorage
@ -27,7 +27,7 @@ import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class OnboardingVisaInProgressModel @Inject constructor( internal class OnboardingVisaInProgressModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
visaActivationRepositoryFactory: VisaActivationRepository.Factory, visaActivationRepositoryFactory: VisaActivationRepository.Factory,

View file

@ -2,7 +2,7 @@ package com.tangem.features.onboarding.v2.visa.impl.child.otherwallet.model
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import com.tangem.common.extensions.toHexString import com.tangem.common.extensions.toHexString
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.navigation.share.ShareManager import com.tangem.core.navigation.share.ShareManager
@ -22,7 +22,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
internal class OnboardingVisaOtherWalletModel @Inject constructor( internal class OnboardingVisaOtherWalletModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
visaActivationRepositoryFactory: VisaActivationRepository.Factory, visaActivationRepositoryFactory: VisaActivationRepository.Factory,

View file

@ -2,7 +2,7 @@ package com.tangem.features.onboarding.v2.visa.impl.child.pincode.model
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import com.tangem.common.extensions.toHexString import com.tangem.common.extensions.toHexString
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.datasource.local.visa.VisaAuthTokenStorage import com.tangem.datasource.local.visa.VisaAuthTokenStorage
@ -26,7 +26,7 @@ import kotlinx.coroutines.withContext
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
@Suppress("LongParameterList") @Suppress("LongParameterList")
internal class OnboardingVisaPinCodeModel @Inject constructor( internal class OnboardingVisaPinCodeModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,

View file

@ -2,7 +2,7 @@ package com.tangem.features.onboarding.v2.visa.impl.child.welcome.model
import com.tangem.common.CompletionResult import com.tangem.common.CompletionResult
import com.tangem.common.extensions.toHexString import com.tangem.common.extensions.toHexString
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.domain.visa.model.VisaCardId import com.tangem.domain.visa.model.VisaCardId
@ -22,7 +22,7 @@ import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class OnboardingVisaWelcomeModel @Inject constructor( internal class OnboardingVisaWelcomeModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -1,6 +1,6 @@
package com.tangem.features.onboarding.v2.visa.impl.di package com.tangem.features.onboarding.v2.visa.impl.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onboarding.v2.visa.api.OnboardingVisaComponent import com.tangem.features.onboarding.v2.visa.api.OnboardingVisaComponent
import com.tangem.features.onboarding.v2.visa.impl.DefaultOnboardingVisaComponent import com.tangem.features.onboarding.v2.visa.impl.DefaultOnboardingVisaComponent
@ -30,7 +30,7 @@ internal interface ComponentModule {
} }
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface ModelModule { internal interface ModelModule {
@Binds @Binds

View file

@ -6,7 +6,7 @@ import com.arkivanov.decompose.router.stack.StackNavigation
import com.arkivanov.decompose.router.stack.pop import com.arkivanov.decompose.router.stack.pop
import com.arkivanov.decompose.router.stack.push import com.arkivanov.decompose.router.stack.push
import com.arkivanov.decompose.router.stack.pushNew import com.arkivanov.decompose.router.stack.pushNew
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.domain.common.visa.VisaUtilities import com.tangem.domain.common.visa.VisaUtilities
@ -31,7 +31,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
internal class OnboardingVisaModel @Inject constructor( internal class OnboardingVisaModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -1,6 +1,6 @@
package com.tangem.features.onramp.confirmresidency.di package com.tangem.features.onramp.confirmresidency.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onramp.confirmresidency.model.ConfirmResidencyModel import com.tangem.features.onramp.confirmresidency.model.ConfirmResidencyModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface OnrampConfirmResidencyModelModule { internal interface OnrampConfirmResidencyModelModule {
@Binds @Binds
@IntoMap @IntoMap

View file

@ -3,7 +3,7 @@ package com.tangem.features.onramp.confirmresidency.model
import com.arkivanov.decompose.router.slot.SlotNavigation import com.arkivanov.decompose.router.slot.SlotNavigation
import com.arkivanov.decompose.router.slot.activate import com.arkivanov.decompose.router.slot.activate
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.navigation.Router import com.tangem.core.decompose.navigation.Router
@ -20,7 +20,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class ConfirmResidencyModel @Inject constructor( internal class ConfirmResidencyModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val analyticsEventHandler: AnalyticsEventHandler, private val analyticsEventHandler: AnalyticsEventHandler,

View file

@ -1,6 +1,6 @@
package com.tangem.features.onramp.hottokens.di package com.tangem.features.onramp.hottokens.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onramp.hottokens.model.HotCryptoModel import com.tangem.features.onramp.hottokens.model.HotCryptoModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface HotCryptoModelModule { internal interface HotCryptoModelModule {
@Binds @Binds

View file

@ -4,7 +4,7 @@ import arrow.core.getOrElse
import com.arkivanov.decompose.router.slot.SlotNavigation import com.arkivanov.decompose.router.slot.SlotNavigation
import com.arkivanov.decompose.router.slot.activate import com.arkivanov.decompose.router.slot.activate
import com.arkivanov.decompose.router.slot.dismiss import com.arkivanov.decompose.router.slot.dismiss
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.ui.components.token.state.TokenItemState import com.tangem.core.ui.components.token.state.TokenItemState
@ -40,7 +40,7 @@ import javax.inject.Inject
* *
[REDACTED_AUTHOR] [REDACTED_AUTHOR]
*/ */
@ComponentScoped @ModelScoped
internal class HotCryptoModel @Inject constructor( internal class HotCryptoModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
getHotCryptoUseCase: GetHotCryptoUseCase, getHotCryptoUseCase: GetHotCryptoUseCase,

View file

@ -1,6 +1,6 @@
package com.tangem.features.onramp.hottokens.portfolio.di package com.tangem.features.onramp.hottokens.portfolio.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onramp.hottokens.portfolio.model.OnrampAddToPortfolioModel import com.tangem.features.onramp.hottokens.portfolio.model.OnrampAddToPortfolioModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface OnrampAddToPortfolioModelModule { internal interface OnrampAddToPortfolioModelModule {
@Binds @Binds

View file

@ -1,7 +1,7 @@
package com.tangem.features.onramp.hottokens.portfolio.model package com.tangem.features.onramp.hottokens.portfolio.model
import arrow.core.getOrElse import arrow.core.getOrElse
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.domain.card.DerivePublicKeysUseCase import com.tangem.domain.card.DerivePublicKeysUseCase
@ -29,7 +29,7 @@ import javax.inject.Inject
* *
[REDACTED_AUTHOR] [REDACTED_AUTHOR]
*/ */
@ComponentScoped @ModelScoped
internal class OnrampAddToPortfolioModel @Inject constructor( internal class OnrampAddToPortfolioModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -1,6 +1,6 @@
package com.tangem.features.onramp.main.di package com.tangem.features.onramp.main.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onramp.main.model.OnrampMainComponentModel import com.tangem.features.onramp.main.model.OnrampMainComponentModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface OnrampMainComponentModelModule { internal interface OnrampMainComponentModelModule {
@Binds @Binds

View file

@ -1,6 +1,6 @@
package com.tangem.features.onramp.providers.di package com.tangem.features.onramp.providers.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onramp.providers.model.SelectProviderModel import com.tangem.features.onramp.providers.model.SelectProviderModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface SelectProviderModelModule { internal interface SelectProviderModelModule {
@Binds @Binds

View file

@ -4,7 +4,7 @@ import com.arkivanov.decompose.router.slot.SlotNavigation
import com.arkivanov.decompose.router.slot.activate import com.arkivanov.decompose.router.slot.activate
import com.arkivanov.decompose.router.slot.dismiss import com.arkivanov.decompose.router.slot.dismiss
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.resourceReference
@ -40,7 +40,7 @@ import java.math.BigDecimal
import javax.inject.Inject import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@ComponentScoped @ModelScoped
internal class SelectProviderModel @Inject constructor( internal class SelectProviderModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val analyticsEventHandler: AnalyticsEventHandler, private val analyticsEventHandler: AnalyticsEventHandler,

View file

@ -1,6 +1,6 @@
package com.tangem.features.onramp.redirect.di package com.tangem.features.onramp.redirect.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onramp.redirect.model.OnrampRedirectModel import com.tangem.features.onramp.redirect.model.OnrampRedirectModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface OnrampRedirectModelModule { internal interface OnrampRedirectModelModule {
@Binds @Binds

View file

@ -1,6 +1,6 @@
package com.tangem.features.onramp.selectcountry.di package com.tangem.features.onramp.selectcountry.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onramp.selectcountry.model.OnrampSelectCountryModel import com.tangem.features.onramp.selectcountry.model.OnrampSelectCountryModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface OnrampSelectCountryModelModule { internal interface OnrampSelectCountryModelModule {
@Binds @Binds

View file

@ -1,7 +1,7 @@
package com.tangem.features.onramp.selectcountry.model package com.tangem.features.onramp.selectcountry.model
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.ui.components.fields.entity.SearchBarUM import com.tangem.core.ui.components.fields.entity.SearchBarUM
@ -35,7 +35,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@ComponentScoped @ModelScoped
internal class OnrampSelectCountryModel @Inject constructor( internal class OnrampSelectCountryModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val analyticsEventHandler: AnalyticsEventHandler, private val analyticsEventHandler: AnalyticsEventHandler,

View file

@ -1,6 +1,6 @@
package com.tangem.features.onramp.selectcurrency.di package com.tangem.features.onramp.selectcurrency.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onramp.selectcurrency.model.OnrampSelectCurrencyModel import com.tangem.features.onramp.selectcurrency.model.OnrampSelectCurrencyModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface OnrampSelectCurrencyModelModule { internal interface OnrampSelectCurrencyModelModule {
@Binds @Binds

View file

@ -1,7 +1,7 @@
package com.tangem.features.onramp.selectcurrency.model package com.tangem.features.onramp.selectcurrency.model
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.ui.components.fields.entity.SearchBarUM import com.tangem.core.ui.components.fields.entity.SearchBarUM
@ -35,7 +35,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@ComponentScoped @ModelScoped
internal class OnrampSelectCurrencyModel @Inject constructor( internal class OnrampSelectCurrencyModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val analyticsEventHandler: AnalyticsEventHandler, private val analyticsEventHandler: AnalyticsEventHandler,

View file

@ -1,6 +1,6 @@
package com.tangem.features.onramp.selecttoken.di package com.tangem.features.onramp.selecttoken.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onramp.selecttoken.model.OnrampOperationModel import com.tangem.features.onramp.selecttoken.model.OnrampOperationModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface OnrampOperationModelModule { internal interface OnrampOperationModelModule {
@Binds @Binds

View file

@ -6,7 +6,7 @@ import com.tangem.common.ui.alerts.models.AlertDemoModeUM
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.core.analytics.models.event.MainScreenAnalyticsEvent import com.tangem.core.analytics.models.event.MainScreenAnalyticsEvent
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.decompose.ui.UiMessageSender
@ -33,7 +33,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@ComponentScoped @ModelScoped
internal class OnrampOperationModel @Inject constructor( internal class OnrampOperationModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
getWalletsUseCase: GetWalletsUseCase, getWalletsUseCase: GetWalletsUseCase,

View file

@ -1,6 +1,6 @@
package com.tangem.features.onramp.settings.di package com.tangem.features.onramp.settings.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onramp.settings.model.OnrampSettingsModel import com.tangem.features.onramp.settings.model.OnrampSettingsModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface OnrampSettingsModelModule { internal interface OnrampSettingsModelModule {
@Binds @Binds

View file

@ -4,7 +4,7 @@ import arrow.core.Either
import com.arkivanov.decompose.router.slot.SlotNavigation import com.arkivanov.decompose.router.slot.SlotNavigation
import com.arkivanov.decompose.router.slot.activate import com.arkivanov.decompose.router.slot.activate
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.domain.onramp.GetOnrampCountryUseCase import com.tangem.domain.onramp.GetOnrampCountryUseCase
@ -21,7 +21,7 @@ import kotlinx.collections.immutable.toImmutableList
import kotlinx.coroutines.flow.* import kotlinx.coroutines.flow.*
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class OnrampSettingsModel @Inject constructor( internal class OnrampSettingsModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val analyticsEventHandler: AnalyticsEventHandler, private val analyticsEventHandler: AnalyticsEventHandler,

View file

@ -1,6 +1,6 @@
package com.tangem.features.onramp.success.di package com.tangem.features.onramp.success.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onramp.success.model.OnrampSuccessComponentModel import com.tangem.features.onramp.success.model.OnrampSuccessComponentModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface OnrampSuccessComponentModelModule { internal interface OnrampSuccessComponentModelModule {
@Binds @Binds
@IntoMap @IntoMap

View file

@ -1,6 +1,6 @@
package com.tangem.features.onramp.swap.availablepairs.di package com.tangem.features.onramp.swap.availablepairs.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onramp.swap.availablepairs.model.AvailableSwapPairsModel import com.tangem.features.onramp.swap.availablepairs.model.AvailableSwapPairsModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface AvailableSwapPairsModelModule { internal interface AvailableSwapPairsModelModule {
@Binds @Binds

View file

@ -1,6 +1,6 @@
package com.tangem.features.onramp.swap.di package com.tangem.features.onramp.swap.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onramp.swap.model.SwapSelectTokensModel import com.tangem.features.onramp.swap.model.SwapSelectTokensModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface SwapSelectTokensModelModule { internal interface SwapSelectTokensModelModule {
@Binds @Binds

View file

@ -1,6 +1,6 @@
package com.tangem.features.onramp.tokenlist.di package com.tangem.features.onramp.tokenlist.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.onramp.tokenlist.model.OnrampTokenListModel import com.tangem.features.onramp.tokenlist.model.OnrampTokenListModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface OnrampTokenListModelModule { internal interface OnrampTokenListModelModule {
@Binds @Binds

View file

@ -5,7 +5,7 @@ import com.tangem.common.routing.AppRoute
import com.tangem.common.routing.AppRouter import com.tangem.common.routing.AppRouter
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.domain.settings.NeverRequestPermissionUseCase import com.tangem.domain.settings.NeverRequestPermissionUseCase
import com.tangem.domain.settings.NeverToInitiallyAskPermissionUseCase import com.tangem.domain.settings.NeverToInitiallyAskPermissionUseCase
@ -16,7 +16,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
@Stable @Stable
@ComponentScoped @ModelScoped
class PushNotificationsModel @Inject constructor( class PushNotificationsModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val neverRequestPermissionUseCase: NeverRequestPermissionUseCase, private val neverRequestPermissionUseCase: NeverRequestPermissionUseCase,

View file

@ -2,7 +2,7 @@ package com.tangem.feature.qrscanning.model
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import com.tangem.common.routing.AppRouter import com.tangem.common.routing.AppRouter
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.navigation.settings.SettingsManager import com.tangem.core.navigation.settings.SettingsManager
@ -23,7 +23,7 @@ import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class QrScanningModel @Inject constructor( internal class QrScanningModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,

View file

@ -1,7 +1,7 @@
package com.tangem.feature.referral.domain.di package com.tangem.feature.referral.domain.di
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.domain.card.DerivePublicKeysUseCase import com.tangem.domain.card.DerivePublicKeysUseCase
import com.tangem.domain.tokens.AddCryptoCurrenciesUseCase import com.tangem.domain.tokens.AddCryptoCurrenciesUseCase
import com.tangem.domain.wallets.usecase.GetUserWalletUseCase import com.tangem.domain.wallets.usecase.GetUserWalletUseCase
@ -14,11 +14,11 @@ import dagger.Provides
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
class ReferralDomainModule { class ReferralDomainModule {
@Provides @Provides
@ComponentScoped @ModelScoped
fun provideReferralInteractor( fun provideReferralInteractor(
referralRepository: ReferralRepository, referralRepository: ReferralRepository,
userWalletManager: UserWalletManager, userWalletManager: UserWalletManager,

View file

@ -6,7 +6,7 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import com.tangem.common.routing.AppRouter import com.tangem.common.routing.AppRouter
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.navigation.share.ShareManager import com.tangem.core.navigation.share.ShareManager
@ -30,7 +30,7 @@ import javax.inject.Inject
@Suppress("LongParameterList") @Suppress("LongParameterList")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class ReferralModel @Inject constructor( internal class ReferralModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -1,7 +1,7 @@
package com.tangem.features.send.impl.di package com.tangem.features.send.impl.di
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.send.api.SendComponent import com.tangem.features.send.api.SendComponent
import com.tangem.features.send.impl.DefaultSendComponent import com.tangem.features.send.impl.DefaultSendComponent
@ -29,10 +29,10 @@ internal interface SendModule {
} }
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface SendModelModule { internal interface SendModelModule {
@Binds @Binds
@ComponentScoped @ModelScoped
fun bindRouter(router: DefaultSendRouter): InnerSendRouter fun bindRouter(router: DefaultSendRouter): InnerSendRouter
} }

View file

@ -2,14 +2,14 @@ package com.tangem.features.send.impl.navigation
import com.tangem.common.routing.AppRoute import com.tangem.common.routing.AppRoute
import com.tangem.common.routing.AppRouter import com.tangem.common.routing.AppRouter
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.navigation.url.UrlOpener import com.tangem.core.navigation.url.UrlOpener
import com.tangem.domain.qrscanning.models.SourceType import com.tangem.domain.qrscanning.models.SourceType
import com.tangem.domain.tokens.model.CryptoCurrency import com.tangem.domain.tokens.model.CryptoCurrency
import com.tangem.domain.wallets.models.UserWalletId import com.tangem.domain.wallets.models.UserWalletId
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class DefaultSendRouter @Inject constructor( internal class DefaultSendRouter @Inject constructor(
private val router: AppRouter, private val router: AppRouter,
private val urlOpener: UrlOpener, private val urlOpener: UrlOpener,

View file

@ -13,7 +13,7 @@ import com.tangem.common.ui.amountScreen.models.AmountState
import com.tangem.common.ui.amountScreen.models.EnterAmountBoundary import com.tangem.common.ui.amountScreen.models.EnterAmountBoundary
import com.tangem.common.ui.notifications.NotificationUM import com.tangem.common.ui.notifications.NotificationUM
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.navigation.share.ShareManager import com.tangem.core.navigation.share.ShareManager
@ -75,7 +75,7 @@ import kotlin.properties.Delegates
@Suppress("LongParameterList", "TooManyFunctions", "LargeClass") @Suppress("LongParameterList", "TooManyFunctions", "LargeClass")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class SendModel @Inject constructor( internal class SendModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val getUserWalletUseCase: GetUserWalletUseCase, private val getUserWalletUseCase: GetUserWalletUseCase,

View file

@ -1,7 +1,7 @@
package com.tangem.features.staking.impl.di package com.tangem.features.staking.impl.di
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.features.staking.api.StakingComponent import com.tangem.features.staking.api.StakingComponent
import com.tangem.features.staking.impl.DefaultStakingComponent import com.tangem.features.staking.impl.DefaultStakingComponent
@ -29,10 +29,10 @@ internal interface StakingModule {
} }
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface StakingComponentModule { internal interface StakingComponentModule {
@Binds @Binds
@ComponentScoped @ModelScoped
fun bindRouter(impl: DefaultStakingRouter): InnerStakingRouter fun bindRouter(impl: DefaultStakingRouter): InnerStakingRouter
} }

View file

@ -2,13 +2,13 @@ package com.tangem.features.staking.impl.navigation
import com.tangem.common.routing.AppRoute import com.tangem.common.routing.AppRoute
import com.tangem.common.routing.AppRouter import com.tangem.common.routing.AppRouter
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.navigation.url.UrlOpener import com.tangem.core.navigation.url.UrlOpener
import com.tangem.domain.tokens.model.CryptoCurrency import com.tangem.domain.tokens.model.CryptoCurrency
import com.tangem.domain.wallets.models.UserWalletId import com.tangem.domain.wallets.models.UserWalletId
import javax.inject.Inject import javax.inject.Inject
@ComponentScoped @ModelScoped
internal class DefaultStakingRouter @Inject constructor( internal class DefaultStakingRouter @Inject constructor(
private val urlOpener: UrlOpener, private val urlOpener: UrlOpener,
private val router: AppRouter, private val router: AppRouter,

View file

@ -12,7 +12,7 @@ import com.tangem.common.ui.bottomsheet.permission.state.GiveTxPermissionBottomS
import com.tangem.common.ui.notifications.NotificationUM import com.tangem.common.ui.notifications.NotificationUM
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.analytics.api.ParamsInterceptorHolder import com.tangem.core.analytics.api.ParamsInterceptorHolder
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.navigation.share.ShareManager import com.tangem.core.navigation.share.ShareManager
@ -89,7 +89,7 @@ import kotlin.properties.Delegates
@Suppress("LargeClass", "TooManyFunctions", "LongParameterList") @Suppress("LargeClass", "TooManyFunctions", "LongParameterList")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class StakingModel @Inject constructor( internal class StakingModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
private val stateController: StakingStateController, private val stateController: StakingStateController,

View file

@ -1,6 +1,6 @@
package com.tangem.feature.stories.impl.di package com.tangem.feature.stories.impl.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.feature.stories.impl.model.StoriesModel import com.tangem.feature.stories.impl.model.StoriesModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface StoriesModelModule { internal interface StoriesModelModule {
@Binds @Binds

View file

@ -1,6 +1,6 @@
package com.tangem.feature.swap.di package com.tangem.feature.swap.di
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.feature.swap.model.SwapModel import com.tangem.feature.swap.model.SwapModel
import dagger.Binds import dagger.Binds
@ -10,7 +10,7 @@ import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap import dagger.multibindings.IntoMap
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface SwapModelModule { internal interface SwapModelModule {
@Binds @Binds

View file

@ -12,7 +12,7 @@ import com.tangem.common.ui.bottomsheet.permission.state.GiveTxPermissionState.I
import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.core.analytics.models.Basic import com.tangem.core.analytics.models.Basic
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.navigation.url.UrlOpener import com.tangem.core.navigation.url.UrlOpener
@ -76,7 +76,7 @@ typealias SuccessLoadedSwapData = Map<SwapProvider, SwapState.QuotesLoadedState>
@Suppress("LongParameterList", "LargeClass") @Suppress("LongParameterList", "LargeClass")
@Stable @Stable
@ComponentScoped @ModelScoped
internal class SwapModel @Inject constructor( internal class SwapModel @Inject constructor(
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,

View file

@ -1,7 +1,7 @@
package com.tangem.feature.tokendetails.di package com.tangem.feature.tokendetails.di
import com.tangem.core.decompose.di.ComponentScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.di.DecomposeComponent import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.feature.tokendetails.DefaultTokenDetailsComponent import com.tangem.feature.tokendetails.DefaultTokenDetailsComponent
import com.tangem.feature.tokendetails.presentation.router.DefaultTokenDetailsRouter import com.tangem.feature.tokendetails.presentation.router.DefaultTokenDetailsRouter
@ -29,10 +29,10 @@ internal interface TokenDetailsModule {
} }
@Module @Module
@InstallIn(DecomposeComponent::class) @InstallIn(ModelComponent::class)
internal interface StakingComponentModule { internal interface StakingComponentModule {
@Binds @Binds
@ComponentScoped @ModelScoped
fun bindRouter(impl: DefaultTokenDetailsRouter): InnerTokenDetailsRouter fun bindRouter(impl: DefaultTokenDetailsRouter): InnerTokenDetailsRouter
} }

Some files were not shown because too many files have changed in this diff Show more