diff --git a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt index 844eeb0bfa..9f6d0f13e1 100644 --- a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt @@ -15,7 +15,6 @@ import com.tangem.tap.domain.configurable.config.ConfigManager import com.tangem.tap.domain.extensions.* import com.tangem.tap.domain.tasks.product.ScanResponse import com.tangem.tap.domain.tokens.CardCurrencies -import com.tangem.tap.features.tokens.redux.TokensAction import com.tangem.tap.features.wallet.redux.Currency import com.tangem.tap.features.wallet.redux.WalletAction import com.tangem.tap.network.NetworkConnectivity @@ -84,12 +83,6 @@ class TapWalletManager { store.dispatch(GlobalAction.SaveScanNoteResponse(data)) store.dispatch(WalletAction.SetIfTestnetCard(data.card.isTestCard)) store.dispatch(WalletAction.MultiWallet.SetIsMultiwalletAllowed(data.card.isMultiwalletAllowed)) - - val blockchain = data.getBlockchain() - if (blockchain == Blockchain.Ethereum || - blockchain == Blockchain.EthereumTestnet) { - store.dispatch(TokensAction.LoadCardTokens) - } loadData(data) } } diff --git a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensAction.kt b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensAction.kt index 0a27c90233..d2b911d8b7 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensAction.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensAction.kt @@ -1,7 +1,6 @@ package com.tangem.tap.features.tokens.redux import com.tangem.blockchain.common.Blockchain -import com.tangem.blockchain.common.Token import com.tangem.tap.features.wallet.redux.WalletData import org.rekotlin.Action @@ -13,10 +12,6 @@ sealed class TokensAction : Action { data class Success(val currencies: List) : TokensAction() } - object LoadCardTokens : TokensAction() { - data class Success(val tokens: List) : TokensAction() - } - data class SetAddedCurrencies(val wallets: List) : TokensAction() data class ToggleShowTokensForBlockchain(val isShown: Boolean, val blockchain: Blockchain) : TokensAction() diff --git a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensReducer.kt b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensReducer.kt index 8496a9c7fb..2fb4c5dec8 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensReducer.kt @@ -24,12 +24,6 @@ private fun internalReduce(action: Action, state: AppState): TokensState { is TokensAction.SetAddedCurrencies -> { tokensState.copy(addedCurrencies = action.wallets.toCardCurrencies()) } - is TokensAction.LoadCardTokens.Success -> { - tokensState.copy(addedTokens = LinkedHashSet( - action.tokens.map { TokenWithAmount(it, null) } - )) - } - is TokensAction.ToggleShowTokensForBlockchain -> { if (action.isShown) { val shownCurrencies = tokensState.shownCurrencies diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/MultiWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/MultiWalletMiddleware.kt index 2906fca76b..11d7232cd3 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/MultiWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/MultiWalletMiddleware.kt @@ -4,6 +4,7 @@ import com.tangem.blockchain.common.* import com.tangem.blockchain.extensions.Result import com.tangem.common.extensions.isZero import com.tangem.tap.common.extensions.dispatchOnMain +import com.tangem.tap.common.extensions.safeUpdate import com.tangem.tap.common.redux.global.GlobalState import com.tangem.tap.common.redux.navigation.AppScreen import com.tangem.tap.common.redux.navigation.NavigationAction @@ -180,9 +181,17 @@ class MultiWalletMiddleware { scope.launch { when (val result = walletManager?.addToken(token)) { is Result.Success -> { - store.dispatchOnMain( - WalletAction.MultiWallet.TokenLoaded(amount = result.data, token = token) - ) + store.dispatchOnMain(WalletAction.MultiWallet.TokenLoaded(result.data, token)) + } + is Result.Failure -> { + when (val result = walletManager.safeUpdate()) { + is com.tangem.common.services.Result.Success -> { + val tokenAmount = result.data.getTokenAmount(token) ?: return@launch + store.dispatchOnMain(WalletAction.MultiWallet.TokenLoaded(tokenAmount, token)) + } + is com.tangem.common.services.Result.Failure -> { + } + } } } } @@ -213,11 +222,17 @@ class MultiWalletMiddleware { tokensWithManagers.forEach { when (val result = it.walletManager?.addToken(it.token)) { is Result.Success -> { - store.dispatchOnMain( - WalletAction.MultiWallet.TokenLoaded( - amount = result.data, token = it.token - ) - ) + store.dispatchOnMain(WalletAction.MultiWallet.TokenLoaded(result.data, it.token)) + } + is Result.Failure -> { + when (val result = it.walletManager.safeUpdate()) { + is com.tangem.common.services.Result.Success -> { + val tokenAmount = result.data.getTokenAmount(it.token) ?: return@launch + store.dispatchOnMain(WalletAction.MultiWallet.TokenLoaded(tokenAmount, it.token)) + } + is com.tangem.common.services.Result.Failure -> { + } + } } } }