Updated on 2026-08-14

This commit is contained in:
Tangem 2024-04-03 14:35:35 +05:00
commit 62132f3787
3 changed files with 17 additions and 6 deletions

View file

@ -6,6 +6,7 @@ import com.tangem.domain.tokens.*
import com.tangem.domain.tokens.repository.*
import com.tangem.domain.walletmanager.WalletManagersFacade
import com.tangem.feature.swap.domain.api.SwapRepository
import com.tangem.features.send.api.featuretoggles.SendFeatureToggles
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import dagger.Module
import dagger.Provides
@ -191,6 +192,7 @@ internal object TokensDomainModule {
currenciesRepository: CurrenciesRepository,
quotesRepository: QuotesRepository,
networksRepository: NetworksRepository,
sendFeatureToggles: SendFeatureToggles,
dispatchers: CoroutineDispatcherProvider,
): GetCryptoCurrencyActionsUseCase {
return GetCryptoCurrencyActionsUseCase(
@ -199,6 +201,7 @@ internal object TokensDomainModule {
currenciesRepository = currenciesRepository,
quotesRepository = quotesRepository,
networksRepository = networksRepository,
sendFeatureToggles = sendFeatureToggles,
dispatchers = dispatchers,
)
}

View file

@ -21,6 +21,7 @@ dependencies {
implementation(projects.domain.settings)
implementation(projects.features.swap.domain.api)
implementation(projects.features.swap.domain.models)
implementation(projects.features.send.api)
/** Project - Other */
implementation(projects.core.utils)

View file

@ -10,6 +10,7 @@ import com.tangem.domain.tokens.repository.NetworksRepository
import com.tangem.domain.tokens.repository.QuotesRepository
import com.tangem.domain.wallets.models.UserWallet
import com.tangem.domain.wallets.models.UserWalletId
import com.tangem.features.send.api.featuretoggles.SendFeatureToggles
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import com.tangem.utils.isNullOrZero
import kotlinx.coroutines.ExperimentalCoroutinesApi
@ -21,12 +22,14 @@ import java.math.BigDecimal
*
* @property rampManager Ramp manager to check ramp availability
*/
@Suppress("LongParameterList")
class GetCryptoCurrencyActionsUseCase(
private val rampManager: RampStateManager,
private val marketCryptoCurrencyRepository: MarketCryptoCurrencyRepository,
private val currenciesRepository: CurrenciesRepository,
private val quotesRepository: QuotesRepository,
private val networksRepository: NetworksRepository,
private val sendFeatureToggles: SendFeatureToggles,
private val dispatchers: CoroutineDispatcherProvider,
) {
@ -198,12 +201,16 @@ class GetCryptoCurrencyActionsUseCase(
tokenStatus: CryptoCurrencyStatus,
coinStatus: CryptoCurrencyStatus?,
): Boolean {
return when (feePaidCurrency) {
FeePaidCurrency.Coin -> !tokenStatus.value.amount.isZero() && coinStatus?.value?.amount.isZero()
FeePaidCurrency.SameCurrency -> tokenStatus.value.amount.isZero()
is FeePaidCurrency.Token -> {
val feePaidTokenBalance = feePaidCurrency.balance
!tokenStatus.value.amount.isZero() && feePaidTokenBalance.isZero()
return if (sendFeatureToggles.isRedesignedSendEnabled) {
tokenStatus.value.amount.isZero()
} else {
when (feePaidCurrency) {
FeePaidCurrency.Coin -> !tokenStatus.value.amount.isZero() && coinStatus?.value?.amount.isZero()
FeePaidCurrency.SameCurrency -> tokenStatus.value.amount.isZero()
is FeePaidCurrency.Token -> {
val feePaidTokenBalance = feePaidCurrency.balance
!tokenStatus.value.amount.isZero() && feePaidTokenBalance.isZero()
}
}
}
}