Updated on 2026-08-14
This commit is contained in:
parent
8c3eb4b604
commit
ddd9ce1c7f
2 changed files with 36 additions and 29 deletions
|
|
@ -33,7 +33,6 @@ import androidx.compose.ui.unit.dp
|
|||
import androidx.paging.PagingData
|
||||
import androidx.paging.compose.*
|
||||
import com.tangem.core.ui.components.PrimaryButton
|
||||
import com.tangem.core.ui.res.TangemColorPalette
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.tap.features.tokens.impl.presentation.states.TokenItemState
|
||||
import com.tangem.tap.features.tokens.impl.presentation.states.TokensListStateHolder
|
||||
|
|
@ -147,7 +146,7 @@ private fun DifferentAddressesWarning() {
|
|||
modifier = Modifier
|
||||
.padding(TangemTheme.dimens.spacing16)
|
||||
.background(
|
||||
color = TangemColorPalette.Light1,
|
||||
color = TangemTheme.colors.button.disabled,
|
||||
shape = RoundedCornerShape(TangemTheme.dimens.radius10),
|
||||
),
|
||||
contentAlignment = Alignment.Center,
|
||||
|
|
@ -159,7 +158,7 @@ private fun DifferentAddressesWarning() {
|
|||
horizontal = TangemTheme.dimens.spacing16,
|
||||
vertical = TangemTheme.dimens.spacing8,
|
||||
),
|
||||
color = TangemColorPalette.Dark1,
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
textAlign = TextAlign.Start,
|
||||
style = TangemTheme.typography.body2.copy(
|
||||
letterSpacing = TextUnit(value = 0.5f, type = TextUnitType.Sp),
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ import com.tangem.tap.features.tokens.impl.presentation.states.NetworkItemState
|
|||
import com.tangem.tap.features.tokens.impl.presentation.states.TokenItemState
|
||||
import com.tangem.tap.features.tokens.impl.presentation.states.TokensListStateHolder
|
||||
import com.tangem.tap.features.tokens.impl.presentation.states.TokensListToolbarState
|
||||
import com.tangem.tap.proxy.AppStateHolder
|
||||
import com.tangem.tap.store
|
||||
import com.tangem.utils.coroutines.AppCoroutineDispatcherProvider
|
||||
import com.tangem.utils.coroutines.Debouncer
|
||||
|
|
@ -57,7 +56,7 @@ import com.tangem.blockchain.common.Token as BlockchainToken
|
|||
* @property interactor feature interactor
|
||||
* @property router feature router
|
||||
* @property dispatchers coroutine dispatchers provider
|
||||
* @property reduxStateHolder redux state holder
|
||||
* @property getSelectedWalletUseCase use case that returns selected wallet
|
||||
* @param analyticsEventHandler analytics event handler
|
||||
*
|
||||
[REDACTED_AUTHOR]
|
||||
|
|
@ -68,10 +67,9 @@ internal class TokensListViewModel @Inject constructor(
|
|||
private val interactor: TokensListInteractor,
|
||||
private val router: TokensListRouter,
|
||||
private val dispatchers: AppCoroutineDispatcherProvider,
|
||||
private val reduxStateHolder: AppStateHolder,
|
||||
private val getSelectedWalletUseCase: GetSelectedWalletUseCase,
|
||||
analyticsEventHandler: AnalyticsEventHandler,
|
||||
getCurrenciesUseCase: GetCryptoCurrenciesUseCase,
|
||||
getSelectedWalletUseCase: GetSelectedWalletUseCase,
|
||||
walletFeatureToggles: WalletFeatureToggles,
|
||||
) : ViewModel(), DefaultLifecycleObserver {
|
||||
|
||||
|
|
@ -150,7 +148,10 @@ internal class TokensListViewModel @Inject constructor(
|
|||
}
|
||||
|
||||
private fun isDifferentAddressesBlockVisible(): Boolean {
|
||||
return reduxStateHolder.scanResponse?.card?.useOldStyleDerivation == true
|
||||
return getSelectedWalletUseCase().fold(
|
||||
ifLeft = { false },
|
||||
ifRight = { it.scanResponse.card.useOldStyleDerivation },
|
||||
)
|
||||
}
|
||||
|
||||
private fun getInitialTokensList(searchText: String = ""): Flow<PagingData<TokenItemState>> {
|
||||
|
|
@ -406,32 +407,39 @@ internal class TokensListViewModel @Inject constructor(
|
|||
}
|
||||
|
||||
private fun isUnsupportedToken(blockchain: Blockchain): SupportTokensState? {
|
||||
val scanResponse = reduxStateHolder.scanResponse
|
||||
val cardTypesResolver = scanResponse?.cardTypesResolver ?: return null
|
||||
val supportedTokens = scanResponse.card.supportedTokens(cardTypesResolver)
|
||||
return getSelectedWalletUseCase().fold(
|
||||
ifLeft = { null },
|
||||
ifRight = {
|
||||
val cardTypesResolver = it.scanResponse.cardTypesResolver
|
||||
val supportedTokens = it.scanResponse.card.supportedTokens(cardTypesResolver)
|
||||
|
||||
// refactor this later by moving all this logic in card config
|
||||
if (blockchain == Blockchain.Solana && !supportedTokens.contains(Blockchain.Solana)) {
|
||||
return SupportTokensState.SolanaNetworkUnsupported
|
||||
}
|
||||
val canHandleToken = scanResponse.card.canHandleToken(
|
||||
supportedTokens = supportedTokens,
|
||||
blockchain = blockchain,
|
||||
cardTypesResolver = cardTypesResolver,
|
||||
// refactor this later by moving all this logic in card config
|
||||
if (blockchain == Blockchain.Solana && !supportedTokens.contains(Blockchain.Solana)) {
|
||||
return SupportTokensState.SolanaNetworkUnsupported
|
||||
}
|
||||
val canHandleToken = it.scanResponse.card.canHandleToken(
|
||||
supportedTokens = supportedTokens,
|
||||
blockchain = blockchain,
|
||||
cardTypesResolver = cardTypesResolver,
|
||||
)
|
||||
if (!canHandleToken) {
|
||||
return SupportTokensState.UnsupportedCurve
|
||||
}
|
||||
return SupportTokensState.SupportedToken
|
||||
},
|
||||
)
|
||||
if (!canHandleToken) {
|
||||
return SupportTokensState.UnsupportedCurve
|
||||
}
|
||||
return SupportTokensState.SupportedToken
|
||||
}
|
||||
|
||||
private fun isUnsupportedBlockchain(blockchain: Blockchain): Boolean {
|
||||
val scanResponse = reduxStateHolder.scanResponse
|
||||
val canHandleToken = scanResponse?.card?.canHandleBlockchain(
|
||||
blockchain = blockchain,
|
||||
cardTypesResolver = scanResponse.cardTypesResolver,
|
||||
) ?: false
|
||||
return !canHandleToken
|
||||
return getSelectedWalletUseCase().fold(
|
||||
ifLeft = { false },
|
||||
ifRight = {
|
||||
!it.scanResponse.card.canHandleBlockchain(
|
||||
blockchain = blockchain,
|
||||
cardTypesResolver = it.scanResponse.cardTypesResolver,
|
||||
)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
private companion object {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue