From d19703e0480ccf558b8fa1255784d526bf193b1d Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 29 May 2024 15:51:45 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/di/domain/AppCurrencyDomainModule.kt | 11 +-- .../tap/di/domain/SettingsDomainModule.kt | 44 ++++++------ .../tap/di/domain/TokensDomainModule.kt | 72 +++++++++---------- .../tap/di/domain/WalletsDomainModule.kt | 42 +++++------ 4 files changed, 86 insertions(+), 83 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/di/domain/AppCurrencyDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/AppCurrencyDomainModule.kt index f785627aa1..a85859ab25 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/AppCurrencyDomainModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/AppCurrencyDomainModule.kt @@ -8,14 +8,15 @@ import com.tangem.domain.appcurrency.repository.AppCurrencyRepository import dagger.Module import dagger.Provides import dagger.hilt.InstallIn -import dagger.hilt.android.components.ViewModelComponent -import dagger.hilt.android.scopes.ViewModelScoped +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton @Module -@InstallIn(ViewModelComponent::class) +@InstallIn(SingletonComponent::class) internal object AppCurrencyDomainModule { @Provides + @Singleton fun provideGetSelectedAppCurrencyUseCase( appCurrencyRepository: AppCurrencyRepository, ): GetSelectedAppCurrencyUseCase { @@ -23,11 +24,13 @@ internal object AppCurrencyDomainModule { } @Provides + @Singleton fun provideSelectAppCurrencyUseCase(appCurrencyRepository: AppCurrencyRepository): SelectAppCurrencyUseCase { return SelectAppCurrencyUseCase(appCurrencyRepository) } @Provides + @Singleton fun provideGetAvailableCurrenciesUseCase( appCurrencyRepository: AppCurrencyRepository, ): GetAvailableCurrenciesUseCase { @@ -35,7 +38,7 @@ internal object AppCurrencyDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideFetchAppCurrenciesUseCase(appCurrencyRepository: AppCurrencyRepository): FetchAppCurrenciesUseCase { return FetchAppCurrenciesUseCase(appCurrencyRepository) } diff --git a/app/src/main/java/com/tangem/tap/di/domain/SettingsDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/SettingsDomainModule.kt index 22502ca5c5..bac2d55655 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/SettingsDomainModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/SettingsDomainModule.kt @@ -14,33 +14,33 @@ import com.tangem.tap.domain.settings.DefaultLegacySettingsRepository import dagger.Module import dagger.Provides import dagger.hilt.InstallIn -import dagger.hilt.android.components.ViewModelComponent -import dagger.hilt.android.scopes.ViewModelScoped +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton @Module -@InstallIn(ViewModelComponent::class) +@InstallIn(SingletonComponent::class) internal object SettingsDomainModule { @Provides - @ViewModelScoped + @Singleton fun providesIsReadyToShowRatingUseCase(appRatingRepository: AppRatingRepository): IsReadyToShowRateAppUseCase { return IsReadyToShowRateAppUseCase(appRatingRepository = appRatingRepository) } @Provides - @ViewModelScoped + @Singleton fun providesRemindToRateAppLaterUseCase(appRatingRepository: AppRatingRepository): RemindToRateAppLaterUseCase { return RemindToRateAppLaterUseCase(appRatingRepository = appRatingRepository) } @Provides - @ViewModelScoped + @Singleton fun providesNeverToSuggestRateAppUseCase(appRatingRepository: AppRatingRepository): NeverToSuggestRateAppUseCase { return NeverToSuggestRateAppUseCase(appRatingRepository = appRatingRepository) } @Provides - @ViewModelScoped + @Singleton fun providesSetWalletWithFundsFoundUseCase( appRatingRepository: AppRatingRepository, ): SetWalletWithFundsFoundUseCase { @@ -48,7 +48,7 @@ internal object SettingsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun providesShouldShowSaveWalletScreenUseCase( settingsRepository: SettingsRepository, ): ShouldShowSaveWalletScreenUseCase { @@ -56,7 +56,7 @@ internal object SettingsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun providesCanUseBiometryUseCase(tangemSdkManager: TangemSdkManager): CanUseBiometryUseCase { return CanUseBiometryUseCase( legacySettingsRepository = DefaultLegacySettingsRepository(tangemSdkManager = tangemSdkManager), @@ -64,7 +64,7 @@ internal object SettingsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun providesGetBalanceHidingSettingsUseCase( balanceHidingRepository: BalanceHidingRepository, ): GetBalanceHidingSettingsUseCase { @@ -74,7 +74,7 @@ internal object SettingsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun providesListenUseCase( flipDetector: DeviceFlipDetector, balanceHidingRepository: BalanceHidingRepository, @@ -86,7 +86,7 @@ internal object SettingsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideUpdateHideBalancesSettingsUseCase( balanceHidingRepository: BalanceHidingRepository, ): UpdateBalanceHidingSettingsUseCase { @@ -94,19 +94,19 @@ internal object SettingsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideSetWalletsScrollPreviewIsShown(settingsRepository: SettingsRepository): NeverToShowWalletsScrollPreview { return NeverToShowWalletsScrollPreview(settingsRepository = settingsRepository) } @Provides - @ViewModelScoped + @Singleton fun provideIsWalletsScrollPreviewEnabled(settingsRepository: SettingsRepository): IsWalletsScrollPreviewEnabled { return IsWalletsScrollPreviewEnabled(settingsRepository = settingsRepository) } @Provides - @ViewModelScoped + @Singleton fun provideShouldShowSwapPromoWalletUseCase( promoSettingsRepository: PromoSettingsRepository, ): ShouldShowSwapPromoWalletUseCase { @@ -114,7 +114,7 @@ internal object SettingsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideShouldShowTravalaPromoWalletUseCase( promoSettingsRepository: PromoSettingsRepository, ): ShouldShowTravalaPromoWalletUseCase { @@ -122,7 +122,7 @@ internal object SettingsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideShouldShowSwapPromoTokenUseCase( promoSettingsRepository: PromoSettingsRepository, ): ShouldShowSwapPromoTokenUseCase { @@ -130,13 +130,13 @@ internal object SettingsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideDeleteDeprecatedLogsUseCase(settingsRepository: SettingsRepository): DeleteDeprecatedLogsUseCase { return DeleteDeprecatedLogsUseCase(settingsRepository) } @Provides - @ViewModelScoped + @Singleton fun provideIsSendTapHelpPreviewEnabledUseCase( settingsRepository: SettingsRepository, ): IsSendTapHelpEnabledUseCase { @@ -144,13 +144,13 @@ internal object SettingsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideNeverShowTapHelpUseCase(settingsRepository: SettingsRepository): NeverShowTapHelpUseCase { return NeverShowTapHelpUseCase(settingsRepository = settingsRepository) } @Provides - @ViewModelScoped + @Singleton fun provideSetSaveWalletScreenShownUseCase( settingsRepository: SettingsRepository, ): SetSaveWalletScreenShownUseCase { @@ -158,7 +158,7 @@ internal object SettingsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideIncrementAppLaunchCounterUseCase( settingsRepository: SettingsRepository, ): IncrementAppLaunchCounterUseCase { diff --git a/app/src/main/java/com/tangem/tap/di/domain/TokensDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/TokensDomainModule.kt index 0067fa4c3a..5795acae01 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/TokensDomainModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/TokensDomainModule.kt @@ -10,16 +10,16 @@ import com.tangem.utils.coroutines.CoroutineDispatcherProvider import dagger.Module import dagger.Provides import dagger.hilt.InstallIn -import dagger.hilt.android.components.ViewModelComponent -import dagger.hilt.android.scopes.ViewModelScoped +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton @Module -@InstallIn(ViewModelComponent::class) +@InstallIn(SingletonComponent::class) @Suppress("TooManyFunctions", "LargeClass") internal object TokensDomainModule { @Provides - @ViewModelScoped + @Singleton fun provideAddCryptoCurrenciesUseCase( currenciesRepository: CurrenciesRepository, networksRepository: NetworksRepository, @@ -31,7 +31,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideFetchTokenListUseCase( currenciesRepository: CurrenciesRepository, quotesRepository: QuotesRepository, @@ -41,7 +41,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideFetchPendingTransactionsUseCase( networksRepository: NetworksRepository, ): FetchPendingTransactionsUseCase { @@ -49,7 +49,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideGetTokenListUseCase( currenciesRepository: CurrenciesRepository, quotesRepository: QuotesRepository, @@ -59,7 +59,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideGetCardTokensListUseCase( currenciesRepository: CurrenciesRepository, quotesRepository: QuotesRepository, @@ -69,7 +69,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideRemoveCurrencyUseCase( currenciesRepository: CurrenciesRepository, walletManagersFacade: WalletManagersFacade, @@ -78,7 +78,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideGetCurrencyUseCase( currenciesRepository: CurrenciesRepository, quotesRepository: QuotesRepository, @@ -89,7 +89,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideGetCurrencyWarningsUseCase( walletManagersFacade: WalletManagersFacade, currenciesRepository: CurrenciesRepository, @@ -117,7 +117,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideGetPrimaryCurrencyUseCase( currenciesRepository: CurrenciesRepository, quotesRepository: QuotesRepository, @@ -133,7 +133,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideFetchCurrencyStatusUseCase( currenciesRepository: CurrenciesRepository, quotesRepository: QuotesRepository, @@ -143,7 +143,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideFetchCardTokenListUseCase( currenciesRepository: CurrenciesRepository, quotesRepository: QuotesRepository, @@ -153,13 +153,13 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideGetCryptoCurrencyUseCase(currenciesRepository: CurrenciesRepository): GetCryptoCurrencyUseCase { return GetCryptoCurrencyUseCase(currenciesRepository) } @Provides - @ViewModelScoped + @Singleton fun provideToggleTokenListGroupingUseCase( dispatchers: CoroutineDispatcherProvider, ): ToggleTokenListGroupingUseCase { @@ -167,13 +167,13 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideToggleTokenListSortingUseCase(dispatchers: CoroutineDispatcherProvider): ToggleTokenListSortingUseCase { return ToggleTokenListSortingUseCase(dispatchers) } @Provides - @ViewModelScoped + @Singleton fun provideApplyTokenListSortingUseCase( currenciesRepository: CurrenciesRepository, dispatchers: CoroutineDispatcherProvider, @@ -182,7 +182,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideGetCryptoCurrencyActionsUseCase( rampStateManager: RampStateManager, walletManagersFacade: WalletManagersFacade, @@ -204,7 +204,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideGetCurrencyStatusByNetworkUseCase( currenciesRepository: CurrenciesRepository, quotesRepository: QuotesRepository, @@ -220,7 +220,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideGetFeePaidCryptoCurrencyStatusSyncUseCase( currenciesRepository: CurrenciesRepository, quotesRepository: QuotesRepository, @@ -236,13 +236,13 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideGetCurrenciesUseCase(currenciesRepository: CurrenciesRepository): GetCryptoCurrenciesUseCase { return GetCryptoCurrenciesUseCase(currenciesRepository = currenciesRepository) } @Provides - @ViewModelScoped + @Singleton fun provideIsCryptoCurrencyCoinCouldHideUseCase( currenciesRepository: CurrenciesRepository, ): IsCryptoCurrencyCoinCouldHideUseCase { @@ -252,7 +252,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideUpdateDelayedCurrencyStatusUseCase( networksRepository: NetworksRepository, ): UpdateDelayedNetworkStatusUseCase { @@ -262,7 +262,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideHasMissedAddressesCryptoCurrenciesUseCase( currenciesRepository: CurrenciesRepository, ): GetMissedAddressesCryptoCurrenciesUseCase { @@ -270,13 +270,13 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideGetGlobalTokenListUseCase(tokensListRepository: TokensListRepository): GetGlobalTokenListUseCase { return GetGlobalTokenListUseCase(repository = tokensListRepository) } @Provides - @ViewModelScoped + @Singleton fun provideCheckTokenCompatibilityUseCase( networksCompatibilityRepository: NetworksCompatibilityRepository, ): CheckCurrencyCompatibilityUseCase { @@ -284,7 +284,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideNeedHardenedDerivationUseCase( networksCompatibilityRepository: NetworksCompatibilityRepository, ): RequiresHardenedDerivationOnlyUseCase { @@ -292,7 +292,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideFindTokenByContractAddressUseCase( tokensListRepository: TokensListRepository, ): FindTokenByContractAddressUseCase { @@ -300,7 +300,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideValidateContractAddressUseCase( tokensListRepository: TokensListRepository, ): ValidateContractAddressUseCase { @@ -308,7 +308,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideAreTokensSupportedByNetworkUseCase( repository: NetworksCompatibilityRepository, ): AreTokensSupportedByNetworkUseCase { @@ -316,7 +316,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideGetNetworksSupportedByWallet( repository: NetworksCompatibilityRepository, ): GetNetworksSupportedByWallet { @@ -324,7 +324,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideGetBalanceNotEnoughForFeeWarningUseCase( currenciesRepository: CurrenciesRepository, dispatchers: CoroutineDispatcherProvider, @@ -333,7 +333,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideIsAmountSubtractAvailableUseCase( currenciesRepository: CurrenciesRepository, dispatchers: CoroutineDispatcherProvider, @@ -342,7 +342,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideRunPolkadotAccountHealthCheckUseCase( repository: PolkadotAccountHealthCheckRepository, ): RunPolkadotAccountHealthCheckUseCase { @@ -350,7 +350,7 @@ internal object TokensDomainModule { } @Provides - @ViewModelScoped + @Singleton fun provideGetNetworkStatusesUseCase(networksRepository: NetworksRepository): GetNetworkAddressesUseCase { return GetNetworkAddressesUseCase( networksRepository = networksRepository, diff --git a/app/src/main/java/com/tangem/tap/di/domain/WalletsDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/WalletsDomainModule.kt index 444ce645e5..2f5322f914 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/WalletsDomainModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/WalletsDomainModule.kt @@ -12,21 +12,21 @@ import com.tangem.utils.coroutines.CoroutineDispatcherProvider import dagger.Module import dagger.Provides import dagger.hilt.InstallIn -import dagger.hilt.android.components.ViewModelComponent -import dagger.hilt.android.scopes.ViewModelScoped +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton @Module -@InstallIn(ViewModelComponent::class) +@InstallIn(SingletonComponent::class) internal object WalletsDomainModule { @Provides - @ViewModelScoped + @Singleton fun providesGetWalletsUseCase(userWalletsListManager: UserWalletsListManager): GetWalletsUseCase { return GetWalletsUseCase(userWalletsListManager = userWalletsListManager) } @Provides - @ViewModelScoped + @Singleton fun providesWalletNameMigrationUseCase( userWalletsListManager: UserWalletsListManager, walletNamesMigrationRepository: WalletNamesMigrationRepository, @@ -38,13 +38,13 @@ internal object WalletsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun providesGetUserWalletUseCase(userWalletsListManager: UserWalletsListManager): GetUserWalletUseCase { return GetUserWalletUseCase(userWalletsListManager = userWalletsListManager) } @Provides - @ViewModelScoped + @Singleton fun providesGetSelectedWalletSyncUseCase( userWalletsListManager: UserWalletsListManager, ): GetSelectedWalletSyncUseCase { @@ -52,31 +52,31 @@ internal object WalletsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun providesGetSelectedWalletUseCase(userWalletsListManager: UserWalletsListManager): GetSelectedWalletUseCase { return GetSelectedWalletUseCase(userWalletsListManager = userWalletsListManager) } @Provides - @ViewModelScoped + @Singleton fun providesSaveWalletUseCase(userWalletsListManager: UserWalletsListManager): SaveWalletUseCase { return SaveWalletUseCase(userWalletsListManager = userWalletsListManager) } @Provides - @ViewModelScoped + @Singleton fun providesGetExploreUrlUseCase(walletsManagersFacade: WalletManagersFacade): GetExploreUrlUseCase { return GetExploreUrlUseCase(walletsManagersFacade = walletsManagersFacade) } @Provides - @ViewModelScoped + @Singleton fun providesUnlockWalletUseCase(userWalletsListManager: UserWalletsListManager): UnlockWalletsUseCase { return UnlockWalletsUseCase(userWalletsListManager = userWalletsListManager) } @Provides - @ViewModelScoped + @Singleton fun providesSelectWalletUseCase( userWalletsListManager: UserWalletsListManager, reduxStateHolder: ReduxStateHolder, @@ -85,31 +85,31 @@ internal object WalletsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun providesUpdateWalletUseCase(userWalletsListManager: UserWalletsListManager): UpdateWalletUseCase { return UpdateWalletUseCase(userWalletsListManager = userWalletsListManager) } @Provides - @ViewModelScoped + @Singleton fun providesRenameWalletUseCase(userWalletsListManager: UserWalletsListManager): RenameWalletUseCase { return RenameWalletUseCase(userWalletsListManager = userWalletsListManager) } @Provides - @ViewModelScoped + @Singleton fun providesGetWalletsSyncUseCase(userWalletsListManager: UserWalletsListManager): GetWalletNamesUseCase { return GetWalletNamesUseCase(userWalletsListManager = userWalletsListManager) } @Provides - @ViewModelScoped + @Singleton fun providesDeleteWalletUseCase(userWalletsListManager: UserWalletsListManager): DeleteWalletUseCase { return DeleteWalletUseCase(userWalletsListManager = userWalletsListManager) } @Provides - @ViewModelScoped + @Singleton fun providesShouldSaveUserWalletsSyncUseCase( walletsRepository: WalletsRepository, ): ShouldSaveUserWalletsSyncUseCase { @@ -117,13 +117,13 @@ internal object WalletsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun providesShouldSaveUserWalletsUseCase(walletsRepository: WalletsRepository): ShouldSaveUserWalletsUseCase { return ShouldSaveUserWalletsUseCase(walletsRepository = walletsRepository) } @Provides - @ViewModelScoped + @Singleton fun providesValidateWalletAddressUseCase( walletAddressServiceRepository: WalletAddressServiceRepository, dispatchers: CoroutineDispatcherProvider, @@ -135,7 +135,7 @@ internal object WalletsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun providesValidateWalletMemoUseCase( walletAddressServiceRepository: WalletAddressServiceRepository, ): ValidateWalletMemoUseCase { @@ -143,7 +143,7 @@ internal object WalletsDomainModule { } @Provides - @ViewModelScoped + @Singleton fun providesParseSharedAddressUseCase( walletAddressServiceRepository: WalletAddressServiceRepository, dispatchers: CoroutineDispatcherProvider,