From 9f1f4999396aef98a83ef34124c428aaded42437 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 17 Jun 2021 09:54:39 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/domain/tokens/CurrenciesRepository.kt | 4 ++++ .../redux/middlewares/MultiWalletMiddleware.kt | 15 ++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt b/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt index 417c3cb79e..8ddbc8b5d1 100644 --- a/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt @@ -37,6 +37,10 @@ class CurrenciesRepository(val context: Application) { saveTokens(cardId, tokens) } + fun saveAddedTokens(cardId: String, tokens: Collection) { + saveTokens(cardId, loadSavedTokens(cardId) + tokens) + } + fun saveAddedBlockchain(cardId: String, blockchain: Blockchain) { val blockchains = loadSavedBlockchains(cardId) + blockchain saveBlockchains(cardId, blockchains) 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 d35eea4fd3..905ecce398 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 @@ -44,14 +44,14 @@ class MultiWalletMiddleware { addTokens(action.tokens, walletState, globalState) } is WalletAction.MultiWallet.AddBlockchain -> { - if (walletState?.blockchains?.contains(action.blockchain) == true) return - globalState?.scanNoteResponse?.card?.let { card -> currenciesRepository.saveAddedBlockchain(card.cardId, action.blockchain) - globalState.tapWalletManager.walletManagerFactory + if (walletState?.blockchains?.contains(action.blockchain) != true) { + globalState.tapWalletManager.walletManagerFactory .makeWalletManagerForApp(card, action.blockchain)?.let { store.dispatch(WalletAction.MultiWallet.AddWalletManagers(it)) } + } } store.dispatch(WalletAction.LoadFiatRate(currency = Currency.Blockchain(action.blockchain))) store.dispatch(WalletAction.LoadWallet(blockchain = action.blockchain)) @@ -87,12 +87,12 @@ class MultiWalletMiddleware { val wallet = walletManager.wallet val coinAmount = wallet.amounts[AmountType.Coin]?.value if (coinAmount != null && !coinAmount.isZero()) { - if (walletState?.getWalletData(wallet.blockchain) == null) { - scope.launch(Dispatchers.Main) { + scope.launch(Dispatchers.Main) { + if (walletState?.getWalletData(wallet.blockchain) == null) { store.dispatch(WalletAction.MultiWallet.AddWalletManagers( - listOfNotNull(walletManager))) + listOfNotNull(walletManager))) store.dispatch(WalletAction.MultiWallet.AddBlockchain( - wallet.blockchain + wallet.blockchain )) store.dispatch(WalletAction.LoadWallet.Success(wallet)) } @@ -118,6 +118,7 @@ class MultiWalletMiddleware { when (result) { is Result.Success -> { if (result.data.isNotEmpty()) { + currenciesRepository.saveAddedTokens(card.cardId, result.data) store.dispatch( WalletAction.MultiWallet.AddWalletManagers( walletManager