From 23ca8014da4ed24c69e27679ca389b8d1442fc73 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 13 Dec 2023 19:07:00 +0200 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/feature/swap/domain/SwapInteractorImpl.kt | 8 ++++---- .../feature/swap/converters/TokensDataConverter.kt | 10 ++++------ .../tangem/feature/swap/viewmodels/SwapViewModel.kt | 6 ++++++ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt index 3754e0c835..631d3e6d51 100644 --- a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt +++ b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt @@ -102,15 +102,15 @@ internal class SwapInteractorImpl @Inject constructor( currency = currency, leastPairs = pairsLeast.pairs, cryptoCurrenciesList = walletCurrencyStatusesExceptInitial, - tokenInfoForFilter = { it.from }, - tokenInfoForAvailable = { it.to }, + tokenInfoForFilter = { it.to }, + tokenInfoForAvailable = { it.from }, ), toGroup = getToCurrenciesGroup( currency = currency, leastPairs = pairsLeast.pairs, cryptoCurrenciesList = walletCurrencyStatusesExceptInitial, - tokenInfoForFilter = { it.to }, - tokenInfoForAvailable = { it.from }, + tokenInfoForFilter = { it.from }, + tokenInfoForAvailable = { it.to }, ), allProviders = pairsLeast.allProviders, ) diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/converters/TokensDataConverter.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/converters/TokensDataConverter.kt index 6f42bbd1d2..b6c99aee61 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/converters/TokensDataConverter.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/converters/TokensDataConverter.kt @@ -2,10 +2,7 @@ package com.tangem.feature.swap.converters import com.tangem.common.Provider import com.tangem.core.ui.components.currency.tokenicon.TokenIconState -import com.tangem.core.ui.extensions.getTintForTokenIcon -import com.tangem.core.ui.extensions.networkIconResId -import com.tangem.core.ui.extensions.stringReference -import com.tangem.core.ui.extensions.tryGetBackgroundForTokenIcon +import com.tangem.core.ui.extensions.* import com.tangem.core.ui.utils.BigDecimalFormatter import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.tokens.model.CryptoCurrency @@ -15,6 +12,7 @@ import com.tangem.feature.swap.domain.models.ui.CurrenciesGroup import com.tangem.feature.swap.models.SwapSelectTokenStateHolder import com.tangem.feature.swap.models.TokenBalanceData import com.tangem.feature.swap.models.TokenToSelectState +import com.tangem.feature.swap.presentation.R import com.tangem.utils.converter.Converter import kotlinx.collections.immutable.toImmutableList @@ -26,8 +24,8 @@ class TokensDataConverter( ) : Converter { override fun convert(value: CurrenciesGroup): SwapSelectTokenStateHolder { - val availableTitle = TokenToSelectState.Title(stringReference("My tokens")) // todo replace with resource - val unavailableTitle = TokenToSelectState.Title(stringReference("My tokens")) // todo replace with resource + val availableTitle = TokenToSelectState.Title(resourceReference(R.string.exchange_tokens_available_tokens_header)) + val unavailableTitle = TokenToSelectState.Title(resourceReference(R.string.exchange_tokens_available_tokens_header)) return SwapSelectTokenStateHolder( availableTokens = value.available.map { tokenWithBalanceToTokenToSelect(it, true) } .toMutableList() diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt index a36badc51e..06270b52d9 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt @@ -653,12 +653,18 @@ internal class SwapViewModel @Inject constructor( private fun onChangeCardsClicked() { val newFromToken = dataState.toCryptoCurrency val newToToken = dataState.fromCryptoCurrency + + if (newFromToken != null && newToToken != null) { dataState = dataState.copy( fromCryptoCurrency = newFromToken, toCryptoCurrency = newToToken, ) isOrderReversed = !isOrderReversed + dataState.tokensDataState?.let { + updateTokensState(it) + } + val decimals = newFromToken.currency.decimals lastAmount.value = cutAmountWithDecimals(decimals, lastAmount.value) uiState = stateBuilder.updateSwapAmount(