diff --git a/features/details/impl/src/main/kotlin/com/tangem/features/details/model/UserWalletListModel.kt b/features/details/impl/src/main/kotlin/com/tangem/features/details/model/UserWalletListModel.kt index 9f4e9c74ab..6af5b54fe3 100644 --- a/features/details/impl/src/main/kotlin/com/tangem/features/details/model/UserWalletListModel.kt +++ b/features/details/impl/src/main/kotlin/com/tangem/features/details/model/UserWalletListModel.kt @@ -33,8 +33,11 @@ internal class UserWalletListModel @Inject constructor( ) : Model() { private val isWalletSavingInProgress: MutableStateFlow = MutableStateFlow(value = false) - private val userWalletsFetcher = userWalletsFetcherFactory - .create(messageSender) { userWalletId -> router.push(AppRoute.WalletSettings(userWalletId)) } + private val userWalletsFetcher = userWalletsFetcherFactory.create( + messageSender = messageSender, + onlyMultiCurrency = false, + onWalletClick = { userWalletId -> router.push(AppRoute.WalletSettings(userWalletId)) }, + ) val state: MutableStateFlow = MutableStateFlow( value = UserWalletListUM( diff --git a/features/wallet/api/src/main/kotlin/com/tangem/features/wallet/utils/UserWalletsFetcher.kt b/features/wallet/api/src/main/kotlin/com/tangem/features/wallet/utils/UserWalletsFetcher.kt index 6753ea5dec..361843f8d3 100644 --- a/features/wallet/api/src/main/kotlin/com/tangem/features/wallet/utils/UserWalletsFetcher.kt +++ b/features/wallet/api/src/main/kotlin/com/tangem/features/wallet/utils/UserWalletsFetcher.kt @@ -11,6 +11,10 @@ interface UserWalletsFetcher { val userWallets: Flow> interface Factory { - fun create(messageSender: UiMessageSender, onWalletClick: (UserWalletId) -> Unit): UserWalletsFetcher + fun create( + messageSender: UiMessageSender, + onlyMultiCurrency: Boolean, + onWalletClick: (UserWalletId) -> Unit, + ): UserWalletsFetcher } } \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/utils/DefaultUserWalletsFetcher.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/utils/DefaultUserWalletsFetcher.kt index f0b457cbca..a4104329ed 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/utils/DefaultUserWalletsFetcher.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/utils/DefaultUserWalletsFetcher.kt @@ -12,7 +12,6 @@ import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.balancehiding.BalanceHidingSettings import com.tangem.domain.balancehiding.GetBalanceHidingSettingsUseCase import com.tangem.domain.core.lce.Lce -import com.tangem.feature.wallet.impl.R import com.tangem.domain.core.lce.lce import com.tangem.domain.core.utils.getOrElse import com.tangem.domain.core.utils.toLce @@ -22,9 +21,11 @@ import com.tangem.domain.tokens.error.TokenListError import com.tangem.domain.tokens.model.TotalFiatBalance import com.tangem.domain.wallets.models.UserWallet import com.tangem.domain.wallets.models.UserWalletId +import com.tangem.domain.wallets.models.isMultiCurrency import com.tangem.domain.wallets.models.requireColdWallet import com.tangem.domain.wallets.usecase.GetCardImageUseCase import com.tangem.domain.wallets.usecase.GetWalletsUseCase +import com.tangem.feature.wallet.impl.R import com.tangem.features.wallet.utils.UserWalletsFetcher import com.tangem.operations.attestation.ArtworkSize import dagger.assisted.Assisted @@ -43,13 +44,16 @@ internal class DefaultUserWalletsFetcher @AssistedInject constructor( private val getBalanceHidingSettingsUseCase: GetBalanceHidingSettingsUseCase, @Assisted private val onWalletClick: (UserWalletId) -> Unit, @Assisted private val messageSender: UiMessageSender, + @Assisted private val onlyMultiCurrency: Boolean, private val getCardImageUseCase: GetCardImageUseCase, ) : UserWalletsFetcher { private var loadedArtworks: HashMap = hashMapOf() + private val walletsFlow = + if (onlyMultiCurrency) getWalletsUseCase().map { it.filter { it.isMultiCurrency } } else getWalletsUseCase() @OptIn(ExperimentalCoroutinesApi::class) - override val userWallets: Flow> = getWalletsUseCase().transformLatest { wallets -> + override val userWallets: Flow> = walletsFlow.transformLatest { wallets -> val uiModels = UserWalletItemUMConverter(onClick = { onWalletClick(it) }).convertList(wallets) .toImmutableList() @@ -145,6 +149,7 @@ internal class DefaultUserWalletsFetcher @AssistedInject constructor( interface Factory : UserWalletsFetcher.Factory { override fun create( messageSender: UiMessageSender, + onlyMultiCurrency: Boolean, onWalletClick: (UserWalletId) -> Unit, ): DefaultUserWalletsFetcher } diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/utils/WcUserWalletsFetcher.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/utils/WcUserWalletsFetcher.kt index 93bded7a85..a09f82e47f 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/utils/WcUserWalletsFetcher.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/utils/WcUserWalletsFetcher.kt @@ -26,7 +26,11 @@ internal class WcUserWalletsFetcher( private val onWalletSelected: (UserWalletId) -> Unit, ) { - private val userWalletsFetcher = userWalletsFetcherFactory.create(messageSender) { onWalletSelected(it) } + private val userWalletsFetcher = userWalletsFetcherFactory.create( + messageSender = messageSender, + onlyMultiCurrency = true, + onWalletClick = { onWalletSelected(it) }, + ) @OptIn(ExperimentalCoroutinesApi::class) val userWallets: Flow> = userWalletsFetcher.userWallets