Updated on 2026-08-14

This commit is contained in:
Tangem 2024-08-05 21:40:29 +04:00
parent 39a9be1521
commit 93be79ff0e
7 changed files with 77 additions and 0 deletions

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,8 @@
package com.tangem.domain.managetokens.model
import com.tangem.pagination.BatchFlow
import com.tangem.pagination.BatchingContext
typealias ManageTokensListBatchingContext = BatchingContext<Int, ManageTokensListConfig, ManageTokensUpdateAction>
typealias ManageTokensListBatchFlow = BatchFlow<Int, List<ManagedCryptoCurrency>, ManageTokensUpdateAction>

View file

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

View file

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