From 93be79ff0ef2cf0ca8bf6a1a44d1213b34efe4dc Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 5 Aug 2024 21:40:29 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/di/domain/ManageTokensDomainModule.kt | 20 +++++++++++++++++++ domain/manage-tokens/build.gradle.kts | 6 ++++++ .../managetokens/GetManagedTokensUseCase.kt | 14 +++++++++++++ .../model/ManageTokensListConfig.kt | 8 ++++++++ .../model/ManageTokensTypealiases.kt | 8 ++++++++ .../model/ManageTokensUpdateAction.kt | 12 +++++++++++ .../repository/ManageTokensRepository.kt | 9 +++++++++ 7 files changed, 77 insertions(+) create mode 100644 app/src/main/java/com/tangem/tap/di/domain/ManageTokensDomainModule.kt create mode 100644 domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/GetManagedTokensUseCase.kt create mode 100644 domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/ManageTokensListConfig.kt create mode 100644 domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/ManageTokensTypealiases.kt create mode 100644 domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/ManageTokensUpdateAction.kt create mode 100644 domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/repository/ManageTokensRepository.kt diff --git a/app/src/main/java/com/tangem/tap/di/domain/ManageTokensDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/ManageTokensDomainModule.kt new file mode 100644 index 0000000000..dd78da6dfd --- /dev/null +++ b/app/src/main/java/com/tangem/tap/di/domain/ManageTokensDomainModule.kt @@ -0,0 +1,20 @@ +package com.tangem.tap.di.domain + +import com.tangem.domain.managetokens.GetManagedTokensUseCase +import com.tangem.domain.managetokens.repository.ManageTokensRepository +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +internal object ManageTokensDomainModule { + + @Provides + @Singleton + fun provideGetManageTokensUseCase(manageTokensRepository: ManageTokensRepository): GetManagedTokensUseCase { + return GetManagedTokensUseCase(manageTokensRepository) + } +} \ No newline at end of file diff --git a/domain/manage-tokens/build.gradle.kts b/domain/manage-tokens/build.gradle.kts index a0f0ac3368..cea5a5fc27 100644 --- a/domain/manage-tokens/build.gradle.kts +++ b/domain/manage-tokens/build.gradle.kts @@ -4,6 +4,12 @@ plugins { } dependencies { + + /* Domain */ api(projects.domain.manageTokens.models) api(projects.domain.core) + implementation(projects.domain.wallets.models) + + /* Core */ + api(projects.core.pagination) } \ No newline at end of file diff --git a/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/GetManagedTokensUseCase.kt b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/GetManagedTokensUseCase.kt new file mode 100644 index 0000000000..62a5647d18 --- /dev/null +++ b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/GetManagedTokensUseCase.kt @@ -0,0 +1,14 @@ +package com.tangem.domain.managetokens + +import com.tangem.domain.managetokens.model.ManageTokensListBatchFlow +import com.tangem.domain.managetokens.model.ManageTokensListBatchingContext +import com.tangem.domain.managetokens.repository.ManageTokensRepository + +class GetManagedTokensUseCase( + private val repository: ManageTokensRepository, +) { + + operator fun invoke(context: ManageTokensListBatchingContext, batchSize: Int = 40): ManageTokensListBatchFlow { + return repository.tokensFlow(context, batchSize) + } +} \ No newline at end of file diff --git a/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/ManageTokensListConfig.kt b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/ManageTokensListConfig.kt new file mode 100644 index 0000000000..6b4dc9dca9 --- /dev/null +++ b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/ManageTokensListConfig.kt @@ -0,0 +1,8 @@ +package com.tangem.domain.managetokens.model + +import com.tangem.domain.wallets.models.UserWalletId + +data class ManageTokensListConfig( + val userWalletId: UserWalletId?, + val searchText: String?, +) \ No newline at end of file diff --git a/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/ManageTokensTypealiases.kt b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/ManageTokensTypealiases.kt new file mode 100644 index 0000000000..0058f82863 --- /dev/null +++ b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/ManageTokensTypealiases.kt @@ -0,0 +1,8 @@ +package com.tangem.domain.managetokens.model + +import com.tangem.pagination.BatchFlow +import com.tangem.pagination.BatchingContext + +typealias ManageTokensListBatchingContext = BatchingContext + +typealias ManageTokensListBatchFlow = BatchFlow, ManageTokensUpdateAction> \ No newline at end of file diff --git a/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/ManageTokensUpdateAction.kt b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/ManageTokensUpdateAction.kt new file mode 100644 index 0000000000..75b1b2e4ad --- /dev/null +++ b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/model/ManageTokensUpdateAction.kt @@ -0,0 +1,12 @@ +package com.tangem.domain.managetokens.model + +import com.tangem.domain.tokens.model.Network + +sealed class ManageTokensUpdateAction { + + data class AddCurrency( + val currencyId: ManagedCryptoCurrency.ID, + val networkId: Network.ID, + val isSelected: Boolean, + ) : ManageTokensUpdateAction() +} \ No newline at end of file diff --git a/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/repository/ManageTokensRepository.kt b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/repository/ManageTokensRepository.kt new file mode 100644 index 0000000000..d993ad5810 --- /dev/null +++ b/domain/manage-tokens/src/main/kotlin/com/tangem/domain/managetokens/repository/ManageTokensRepository.kt @@ -0,0 +1,9 @@ +package com.tangem.domain.managetokens.repository + +import com.tangem.domain.managetokens.model.ManageTokensListBatchFlow +import com.tangem.domain.managetokens.model.ManageTokensListBatchingContext + +interface ManageTokensRepository { + + fun tokensFlow(context: ManageTokensListBatchingContext, batchSize: Int): ManageTokensListBatchFlow +} \ No newline at end of file