Updated on 2026-08-14
This commit is contained in:
parent
39a9be1521
commit
93be79ff0e
7 changed files with 77 additions and 0 deletions
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
@ -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)
|
||||
}
|
||||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
@ -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?,
|
||||
)
|
||||
|
|
@ -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>
|
||||
|
|
@ -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()
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue