diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt index 92491013ad..72ebc7ce50 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt @@ -32,7 +32,7 @@ data class WalletState( val hashesCountVerified: Boolean? = null, val walletDialog: StateDialog? = null, val mainWarningsList: List = mutableListOf(), - val wallets: List = emptyList(), + val walletsData: List = emptyList(), val walletManagers: List = emptyList(), val isMultiwalletAllowed: Boolean = false, val cardCurrency: CryptoCurrencyName? = null, @@ -51,7 +51,7 @@ data class WalletState( val isTangemTwins: Boolean get() = store.state.globalState.scanResponse?.isTangemTwins() == true - val primaryWallet = if (wallets.isNotEmpty()) wallets[0] else null + val primaryWallet = if (walletsData.isNotEmpty()) walletsData[0] else null val shouldShowDetails: Boolean = primaryWallet?.currencyData?.status != BalanceStatus.EmptyCard && @@ -61,7 +61,7 @@ data class WalletState( get() = walletManagers.map { it.wallet.blockchain } val currencies: List - get() = wallets.mapNotNull { it.currency } + get() = walletsData.mapNotNull { it.currency } fun getWalletManager(token: Token?): WalletManager? { if (token == null) return null @@ -79,21 +79,21 @@ data class WalletState( fun getWalletData(currency: Currency?): WalletData? { if (currency == null) return null - return wallets.find { it.currency == currency } + return walletsData.find { it.currency == currency } } fun getWalletData(blockchain: Blockchain?): WalletData? { if (blockchain == null) return null - return wallets.find { (it.currency as? Currency.Blockchain)?.blockchain == blockchain } + return walletsData.find { (it.currency as? Currency.Blockchain)?.blockchain == blockchain } } fun getWalletData(token: Token?): WalletData? { if (token == null) return null - return wallets.find { (it.currency as? Currency.Token)?.token == token } + return walletsData.find { (it.currency as? Currency.Token)?.token == token } } fun getSelectedWalletData(): WalletData? { - return wallets.find { it.currency == selectedWallet } + return walletsData.find { it.currency == selectedWallet } } fun canBeRemoved(walletData: WalletData?): Boolean { @@ -132,9 +132,9 @@ data class WalletState( } fun replaceWalletInWallets(walletData: WalletData?): List { - if (walletData == null) return wallets + if (walletData == null) return walletsData var changed = false - val updatedWallets = wallets.map { + val updatedWallets = walletsData.map { if (it.currency == walletData.currency) { changed = true walletData @@ -142,12 +142,12 @@ data class WalletState( it } } - return if (changed) updatedWallets else wallets + walletData + return if (changed) updatedWallets else walletsData + walletData } fun replaceSomeWallets(newWallets: List): List { val remainingWallets: MutableList = newWallets.toMutableList() - val updatedWallets = wallets.map { wallet -> + val updatedWallets = walletsData.map { wallet -> val newWallet = newWallets .firstOrNull { wallet.currency == it.currency } if (newWallet == null) { diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt index 379008a18b..f625dd9d1e 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt @@ -99,7 +99,7 @@ class WalletMiddleware { else -> { globalState.tapWalletManager.loadFiatRate( fiatCurrency = globalState.appCurrency, - currencies = walletState.wallets.mapNotNull { it.currency } + currencies = walletState.walletsData.mapNotNull { it.currency } ) } } @@ -170,7 +170,7 @@ class WalletMiddleware { is WalletAction.LoadData -> { scope.launch { val scanNoteResponse = globalState.scanResponse ?: return@launch - if (!walletState.wallets.isEmpty()) { + if (walletState.walletsData.isNotEmpty()) { globalState.tapWalletManager.reloadData(scanNoteResponse) } else { globalState.tapWalletManager.loadData(scanNoteResponse) 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 e0f1fec69b..de55ee1707 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 @@ -47,7 +47,7 @@ class MultiWalletReducer { state.selectedWallet } state.copy( - wallets = wallets, + walletsData = wallets, selectedWallet = selectedWallet ) } @@ -63,7 +63,7 @@ class MultiWalletReducer { mainButton = WalletMainButton.SendButton(false), currency = Currency.Blockchain(action.blockchain), ) - val newState = state.copy(wallets = state.replaceWalletInWallets(walletData)) + val newState = state.copy(walletsData = state.replaceWalletInWallets(walletData)) if (wallet != null && wallet.amounts[AmountType.Coin]?.value != null) { OnWalletLoadedReducer().reduce(wallet, newState) } else { @@ -72,11 +72,11 @@ class MultiWalletReducer { } is WalletAction.MultiWallet.AddTokens -> { val wallets = action.tokens.mapNotNull { token -> token.toWallet(state) } - state.copy(wallets = state.replaceSomeWallets(wallets)) + state.copy(walletsData = state.replaceSomeWallets(wallets)) } is WalletAction.MultiWallet.AddToken -> { val walletData = action.token.toWallet(state) ?: return state - state.copy(wallets = state.replaceWalletInWallets(walletData)) + state.copy(walletsData = state.replaceWalletInWallets(walletData)) } is WalletAction.MultiWallet.TokenLoaded -> { val pendingTransactions = state.getWalletManager(action.token) @@ -109,7 +109,7 @@ class MultiWalletReducer { currency = Currency.Token(action.token) ) val wallets = state.replaceWalletInWallets(newTokenWalletData) - state.copy(wallets = wallets) + state.copy(walletsData = wallets) } is WalletAction.MultiWallet.SetIsMultiwalletAllowed -> state.copy(isMultiwalletAllowed = action.isMultiwalletAllowed) @@ -118,18 +118,18 @@ class MultiWalletReducer { state.copy(selectedWallet = action.walletData?.currency) is WalletAction.MultiWallet.RemoveWallet -> { - val wallets = state.wallets.filterNot { + val wallets = state.walletsData.filterNot { it.currency == action.walletData.currency } if (action.walletData.currency is Currency.Blockchain) { state.copy( - wallets = wallets, + walletsData = wallets, walletManagers = state.walletManagers.filterNot { it.wallet.blockchain == action.walletData.currency.blockchain } ) } else { - state.copy(wallets = wallets) + state.copy(walletsData = wallets) } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/OnWalletLoadedReducer.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/OnWalletLoadedReducer.kt index c28bea2b5b..0c45051b13 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/OnWalletLoadedReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/OnWalletLoadedReducer.kt @@ -98,7 +98,7 @@ class OnWalletLoadedReducer { ProgressState.Done } return walletState.copy( - state = state, wallets = wallets, error = null + state = state, walletsData = wallets, error = null ) } @@ -158,7 +158,7 @@ class OnWalletLoadedReducer { ) val wallets = walletData?.let { listOf(walletData) } ?: emptyList() return walletState.copy( - state = ProgressState.Done, wallets = wallets, error = null + state = ProgressState.Done, walletsData = wallets, error = null ) } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/WalletReducer.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/WalletReducer.kt index af75afcb1b..c886a3edf1 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/WalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/WalletReducer.kt @@ -46,7 +46,7 @@ private fun internalReduce(action: Action, state: AppState): WalletState { is WalletAction.EmptyWallet -> { newState = newState.copy( state = ProgressState.Done, - wallets = listOf( + walletsData = listOf( WalletData( currencyData = BalanceWidgetData(BalanceStatus.EmptyCard), mainButton = WalletMainButton.CreateWalletButton(true), @@ -58,7 +58,7 @@ private fun internalReduce(action: Action, state: AppState): WalletState { is WalletAction.LoadData.Failure -> { when (action.error) { is TapError.NoInternetConnection -> { - val wallets = newState.wallets + val wallets = newState.walletsData .map { it.copy( currencyData = it.currencyData.copy( @@ -69,13 +69,13 @@ private fun internalReduce(action: Action, state: AppState): WalletState { newState = newState.copy( state = ProgressState.Error, error = ErrorType.NoInternetConnection, - wallets = wallets + walletsData = wallets ) } is TapError.UnknownBlockchain -> { newState = newState.copy( state = ProgressState.Done, - wallets = listOf( + walletsData = listOf( WalletData( currencyData = BalanceWidgetData(BalanceStatus.UnknownBlockchain), currency = Currency.Blockchain(Blockchain.Unknown) @@ -94,7 +94,7 @@ private fun internalReduce(action: Action, state: AppState): WalletState { } is WalletAction.LoadWallet -> { if (action.blockchain == null) { - val wallets = newState.wallets.map { wallet -> + val wallets = newState.walletsData.map { wallet -> wallet.copy( currencyData = wallet.currencyData.copy( @@ -108,14 +108,14 @@ private fun internalReduce(action: Action, state: AppState): WalletState { } newState = newState.copy( state = ProgressState.Loading, - wallets = wallets, + walletsData = wallets, ) } else { val walletManager = newState.getWalletManager(action.blockchain) ?: return newState val blockchain = walletManager.wallet.blockchain val currencies = listOf(Currency.Blockchain(blockchain)) + walletManager.cardTokens.map { Currency.Token(it) } - val newWallets = newState.wallets.filter { currencies.contains(it.currency) } + val newWallets = newState.walletsData.filter { currencies.contains(it.currency) } .map { wallet -> wallet.copy( currencyData = wallet.currencyData.copy( @@ -128,7 +128,7 @@ private fun internalReduce(action: Action, state: AppState): WalletState { ) } val wallets = newState.replaceSomeWallets(newWallets) - newState = newState.copy(wallets = newState.updateTradeCryptoState(exchangeManager, wallets)) + newState = newState.copy(walletsData = newState.updateTradeCryptoState(exchangeManager, wallets)) } } is WalletAction.LoadWallet.Success -> newState = @@ -153,7 +153,7 @@ private fun internalReduce(action: Action, state: AppState): WalletState { } newState = newState.copy( state = progressState, - wallets = newState.updateTradeCryptoState(exchangeManager, wallets) + walletsData = newState.updateTradeCryptoState(exchangeManager, wallets) ) } is WalletAction.LoadWallet.Failure -> { @@ -188,7 +188,7 @@ private fun internalReduce(action: Action, state: AppState): WalletState { } newState = newState.copy( state = progressState, - wallets = newState.updateTradeCryptoState(exchangeManager, wallets) + walletsData = newState.updateTradeCryptoState(exchangeManager, wallets) ) } is WalletAction.SetArtworkId -> { @@ -243,7 +243,7 @@ private fun internalReduce(action: Action, state: AppState): WalletState { ) ) ) - newState = newState.copy(wallets = wallets) + newState = newState.copy(walletsData = wallets) } is WalletAction.SetWalletRent -> { var walletData = newState.getWalletData(action.blockchain) @@ -252,7 +252,7 @@ private fun internalReduce(action: Action, state: AppState): WalletState { } else { walletData = walletData.copy(walletRent = WalletRent(action.minRent, action.rentExempt)) newState = newState.copy( - wallets = newState.replaceSomeWallets(listOf(walletData)) + walletsData = newState.replaceSomeWallets(listOf(walletData)) ) } } @@ -343,7 +343,7 @@ private fun setMultiWalletFiatRate( ), fiatRate = rate, fiatRateString = rateFormatted ) - return state.copy(wallets = state.replaceWalletInWallets(newWalletData)) + return state.copy(walletsData = state.replaceWalletInWallets(newWalletData)) } private fun setSingeWalletFiatRate( @@ -361,7 +361,7 @@ private fun setSingeWalletFiatRate( fiatRate = rate, fiatRateString = rateFormatted ) - return state.copy(wallets = listOf(walletData)) + return state.copy(walletsData = listOf(walletData)) } else if (currency is Currency.Token && currency.token == token) { val tokenFiatAmount = wallet.getTokenAmount(token)?.value?.toFiatString(rate, appCurrency) val tokenData = state.primaryWallet?.currencyData?.token?.copy( @@ -376,7 +376,7 @@ private fun setSingeWalletFiatRate( ) ) val wallets = walletData?.let { listOf(walletData) } ?: emptyList() - return state.copy(wallets = wallets) + return state.copy(walletsData = wallets) } return state } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt index 7b2e9ba9ec..fc1233af3a 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt @@ -94,11 +94,11 @@ class MultiWalletView : WalletView { val fragment = fragment ?: return val binding = binding ?: return - walletsAdapter.submitList(state.wallets, state.primaryBlockchain, state.primaryToken) + walletsAdapter.submitList(state.walletsData, state.primaryBlockchain, state.primaryToken) binding.btnAddToken.setOnClickListener { store.dispatch(TokensAction.LoadCurrencies) - store.dispatch(TokensAction.SetAddedCurrencies(state.wallets)) + store.dispatch(TokensAction.SetAddedCurrencies(state.walletsData)) store.dispatch(NavigationAction.NavigateTo(AppScreen.AddTokens)) } handleErrorStates(state = state, binding = binding, fragment = fragment)