From 27bd9c6db7a4386ba29ff19d56324a6240f97f69 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 2 Nov 2022 11:30:56 +0400 Subject: [PATCH] Updated on 2026-08-14 --- app/src/main/assets/tangem-app-config | 2 +- .../features/tokens/redux/TokensMiddleware.kt | 9 +------- .../tap/features/wallet/redux/WalletAction.kt | 9 +++----- .../middlewares/MultiWalletMiddleware.kt | 21 +++++++++++-------- .../redux/reducers/MultiWalletReducer.kt | 5 +++++ 5 files changed, 22 insertions(+), 24 deletions(-) diff --git a/app/src/main/assets/tangem-app-config b/app/src/main/assets/tangem-app-config index cf6ea50867..a1658496e7 160000 --- a/app/src/main/assets/tangem-app-config +++ b/app/src/main/assets/tangem-app-config @@ -1 +1 @@ -Subproject commit cf6ea50867477f97655da9da47ff94987e8f3354 +Subproject commit a1658496e777b611fc990ef2bc1a1a1fd48bc1e6 diff --git a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt index 9817b4db49..fe47a2b2bf 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt @@ -318,14 +318,7 @@ class TokensMiddleware { } private fun removeCurrenciesIfNeeded(currencies: List) { - if (currencies.isNotEmpty()) { - currencies.forEach { currency -> - store.dispatch(WalletAction.MultiWallet.RemoveWallet( - currency = currency, - fromScreen = AppScreen.AddTokens - )) - } - } + if (currencies.isNotEmpty()) store.dispatch(WalletAction.MultiWallet.RemoveWallets(currencies)) } private fun isNeedToDerive(scanResponse: ScanResponse, currency: Currency): Boolean { diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt index 836d287739..8843a8eb40 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt @@ -11,7 +11,6 @@ import com.tangem.common.card.Card import com.tangem.tap.common.entities.FiatCurrency import com.tangem.tap.common.redux.ErrorAction import com.tangem.tap.common.redux.NotificationAction -import com.tangem.tap.common.redux.navigation.AppScreen import com.tangem.tap.domain.TapError import com.tangem.tap.domain.configurable.warningMessage.WarningMessage import com.tangem.tap.domain.tokens.models.BlockchainNetwork @@ -76,16 +75,14 @@ sealed class WalletAction : Action { data class TokenLoaded( val amount: Amount, val token: Token, - val blockchain: BlockchainNetwork + val blockchain: BlockchainNetwork, ) : MultiWallet() data class SelectWallet(val walletData: WalletData?) : MultiWallet() data class TryToRemoveWallet(val currency: Currency) : MultiWallet() - data class RemoveWallet( - val currency: Currency, - val fromScreen: AppScreen, - ) : MultiWallet() + data class RemoveWallet(val currency: Currency) : MultiWallet() + data class RemoveWallets(val currencies: List) : MultiWallet() data class SetPrimaryBlockchain(val blockchain: Blockchain) : MultiWallet() data class SetPrimaryToken(val token: Token) : MultiWallet() 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 ba68023190..0fd28eaa82 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 @@ -7,6 +7,7 @@ import com.tangem.common.extensions.guard import com.tangem.domain.common.extensions.withMainContext import com.tangem.tap.common.extensions.dispatchDialogShow import com.tangem.tap.common.extensions.dispatchErrorNotification +import com.tangem.tap.common.extensions.dispatchOnMain import com.tangem.tap.common.extensions.safeUpdate import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.common.redux.global.GlobalState @@ -109,12 +110,7 @@ class MultiWalletMiddleware { WalletDialog.RemoveWalletDialog( currencyTitle = currency.currencyName, onOk = { - store.dispatch( - WalletAction.MultiWallet.RemoveWallet( - currency = currency, - fromScreen = AppScreen.WalletDetails, - ), - ) + store.dispatch(WalletAction.MultiWallet.RemoveWallet(currency)) store.dispatch(NavigationAction.PopBackTo()) }, ), @@ -135,10 +131,17 @@ class MultiWalletMiddleware { .filter { it.blockchain == currency.blockchain && it.derivationPath == currency.derivationPath } } scope.launch { userTokensRepository.saveUserTokens(card, currencies) } - - if (action.fromScreen == AppScreen.AddTokens) { - store.dispatch(WalletAction.MultiWallet.SelectWallet(null)) + } + is WalletAction.MultiWallet.RemoveWallets -> { + val card = globalState.scanResponse?.card.guard { + store.dispatchErrorNotification(TapError.UnsupportedState("card is NULL")) + store.dispatch(NavigationAction.PopBackTo(AppScreen.Home)) + return } + var currencies = walletState?.currencies ?: emptyList() + currencies = currencies.filterNot { action.currencies.contains(it) } + scope.launch { userTokensRepository.saveUserTokens(card, currencies) } + store.dispatchOnMain(WalletAction.MultiWallet.SelectWallet(null)) } is WalletAction.MultiWallet.ShowWalletBackupWarning -> Unit is WalletAction.MultiWallet.BackupWallet -> { diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/MultiWalletReducer.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/MultiWalletReducer.kt index 892b5db149..b75ed1ff6c 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/MultiWalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/MultiWalletReducer.kt @@ -160,6 +160,11 @@ class MultiWalletReducer { is WalletAction.MultiWallet.RemoveWallet -> { state.removeWallet(state.getWalletData(action.currency)) } + is WalletAction.MultiWallet.RemoveWallets -> { + var updatedState = state + action.currencies.forEach { updatedState = updatedState.removeWallet(state.getWalletData(it)) } + updatedState + } is WalletAction.MultiWallet.SetPrimaryBlockchain -> state.copy(primaryBlockchain = action.blockchain)