Updated on 2026-08-14

This commit is contained in:
Tangem 2024-05-29 15:51:45 +04:00
parent 7839bbc833
commit d19703e048
4 changed files with 86 additions and 83 deletions

View file

@ -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)
}

View file

@ -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 {

View file

@ -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,

View file

@ -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,