From 9292c784cdf9e5114f7347ff5ab5fa772b4a56ea Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 13 Dec 2022 19:29:23 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../walletSelector/redux/UserWalletModel.kt | 4 ++-- .../redux/WalletSelectorReducer.kt | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/walletSelector/redux/UserWalletModel.kt b/app/src/main/java/com/tangem/tap/features/walletSelector/redux/UserWalletModel.kt index 3c61afc62c..e96c36b46d 100644 --- a/app/src/main/java/com/tangem/tap/features/walletSelector/redux/UserWalletModel.kt +++ b/app/src/main/java/com/tangem/tap/features/walletSelector/redux/UserWalletModel.kt @@ -11,12 +11,12 @@ data class UserWalletModel( ) { sealed interface Type { data class SingleCurrency( - val blockchainName: String? = null, + val blockchainName: String?, ) : Type data class MultiCurrency( val cardsInWallet: Int, - val tokensCount: Int = 0, + val tokensCount: Int, ) : Type } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/walletSelector/redux/WalletSelectorReducer.kt b/app/src/main/java/com/tangem/tap/features/walletSelector/redux/WalletSelectorReducer.kt index b9f2ca6c70..e4fb11c3b3 100644 --- a/app/src/main/java/com/tangem/tap/features/walletSelector/redux/WalletSelectorReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/walletSelector/redux/WalletSelectorReducer.kt @@ -66,10 +66,13 @@ internal object WalletSelectorReducer { return this.map { userWallet -> prevWallets .find { it.id == userWallet.walletId.stringValue } - ?.copy( - name = userWallet.name, - artworkUrl = userWallet.artworkUrl, - ) + ?.let { + it.copy( + name = userWallet.name, + artworkUrl = userWallet.artworkUrl, + type = userWallet.getType(prevType = it.type), + ) + } ?: with(userWallet) { UserWalletModel( id = walletId.stringValue, @@ -90,15 +93,18 @@ internal object WalletSelectorReducer { } } - private fun UserWallet.getType(): UserWalletModel.Type { + private fun UserWallet.getType(prevType: UserWalletModel.Type? = null): UserWalletModel.Type { return if (scanResponse.card.isMultiwalletAllowed) { UserWalletModel.Type.MultiCurrency( cardsInWallet = (scanResponse.card.backupStatus as? CardDTO.BackupStatus.Active) ?.cardCount?.inc() ?: 1, + tokensCount = (prevType as? UserWalletModel.Type.MultiCurrency)?.tokensCount ?: 0, ) } else { - UserWalletModel.Type.SingleCurrency() + UserWalletModel.Type.SingleCurrency( + blockchainName = (prevType as? UserWalletModel.Type.SingleCurrency)?.blockchainName, + ) } } } \ No newline at end of file