From f64b387fe2e81e52acc484fa5c83565f04194609 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 20 May 2022 22:59:49 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/features/tokens/redux/TokensState.kt | 12 ++++++++++-- .../tokens/ui/compose/CurrenciesScreen.kt | 17 +++++++++++++++-- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensState.kt b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensState.kt index 05014acd99..646a022c65 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensState.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensState.kt @@ -4,6 +4,7 @@ import com.tangem.blockchain.common.Blockchain import com.tangem.blockchain.common.DerivationStyle import com.tangem.blockchain.common.Token import com.tangem.domain.common.ScanResponse +import com.tangem.domain.common.extensions.canHandleToken import com.tangem.domain.common.extensions.fromNetworkId import com.tangem.tap.domain.tokens.Currency import com.tangem.tap.features.wallet.redux.WalletData @@ -19,7 +20,14 @@ data class TokensState( val allowToAdd: Boolean = true, val derivationStyle: DerivationStyle? = null, val scanResponse: ScanResponse? = null -) : StateType +) : StateType { + + fun canHandleToken(token: TokenWithBlockchain?): Boolean { + val token = token ?: return false + val card = scanResponse?.card ?: return false + return card.canHandleToken(token.blockchain) + } +} typealias ContractAddress = String @@ -62,7 +70,7 @@ fun List.filter(supportedBlockchains: Set?): List, List) -> Unit, onNetworkItemClicked: (ContractAddress) -> Unit ) { - + val context = LocalContext.current val addedTokensState = remember { mutableStateOf(tokensState.value.addedTokens) } val addedBlockchainsState = remember { mutableStateOf(tokensState.value.addedBlockchains) } @@ -103,7 +105,18 @@ fun CurrenciesScreen( addedBlockchains = addedBlockchainsState.value, searchInput = searchInput.value, allowToAdd = tokensState.value.allowToAdd, - onAddCurrencyToggled = onAddCurrencyToggleClick, + onAddCurrencyToggled = { currency, token -> + onAddCurrencyToggleClick(currency, token) + if (!tokensState.value.canHandleToken(token)) { + val dialog = AppDialog.SimpleOkDialog( + header = context.getString(R.string.common_warning), + message = context.getString(R.string.alert_manage_tokens_unsupported_message) + ) { + onAddCurrencyToggleClick(currency, token) + } + store.dispatchDialogShow(dialog) + } + }, onNetworkItemClicked = onNetworkItemClicked ) }