diff --git a/features/swap/domain/models/src/main/java/com/tangem/feature/swap/domain/models/ui/SwapState.kt b/features/swap/domain/models/src/main/java/com/tangem/feature/swap/domain/models/ui/SwapState.kt index a7c1ff4892..db6aa5a595 100644 --- a/features/swap/domain/models/src/main/java/com/tangem/feature/swap/domain/models/ui/SwapState.kt +++ b/features/swap/domain/models/src/main/java/com/tangem/feature/swap/domain/models/ui/SwapState.kt @@ -29,11 +29,7 @@ sealed interface SwapState { val warnings: List = emptyList(), ) : SwapState - data class EmptyAmountState( - val fromTokenWalletBalance: String, - val toTokenWalletBalance: String, - val zeroAmountEquivalent: String, - ) : SwapState + data class EmptyAmountState(val zeroAmountEquivalent: String) : SwapState data class SwapError( val fromTokenInfo: TokenSwapInfo, 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 38f55b3561..2ae0505504 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 @@ -237,9 +237,7 @@ internal class SwapInteractorImpl @Inject constructor( return providers.map { provider -> val amountDecimal = toBigDecimalOrNull(amountToSwap) if (amountDecimal == null || amountDecimal.signum() == 0) { - return providers.associateWith { - createEmptyAmountState(fromToken, toToken) - } + return providers.associateWith { createEmptyAmountState() } } val amount = SwapAmount(amountDecimal, getTokenDecimals(fromToken.currency)) val isBalanceWithoutFeeEnough = isBalanceEnough(fromToken, amount, null) @@ -698,13 +696,9 @@ internal class SwapInteractorImpl @Inject constructor( ) } - private fun createEmptyAmountState(fromToken: CryptoCurrencyStatus, toToken: CryptoCurrencyStatus): SwapState { + private fun createEmptyAmountState(): SwapState { val appCurrency = userWalletManager.getUserAppCurrency() - val fromTokenBalance = getTokenBalance(fromToken) - val toTokenBalance = getTokenBalance(toToken) return SwapState.EmptyAmountState( - fromTokenWalletBalance = amountFormatter.formatSwapAmountToUI(fromTokenBalance, ""), - toTokenWalletBalance = amountFormatter.formatSwapAmountToUI(toTokenBalance, ""), zeroAmountEquivalent = BigDecimal.ZERO.toFiatString( rateValue = BigDecimal.ONE, fiatCurrencyName = appCurrency.symbol, diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt index c3116dc8a3..f6aa83db47 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt @@ -558,6 +558,8 @@ internal class StateBuilder( fun createQuotesEmptyAmountState( uiStateHolder: SwapStateHolder, emptyAmountState: SwapState.EmptyAmountState, + fromTokenStatus: CryptoCurrencyStatus, + toTokenStatus: CryptoCurrencyStatus?, isReverseSwapPossible: Boolean, ): SwapStateHolder { if (uiStateHolder.sendCardData !is SwapCardState.SwapCardData) return uiStateHolder @@ -574,7 +576,7 @@ internal class StateBuilder( tokenCurrency = uiStateHolder.sendCardData.tokenCurrency, canSelectAnotherToken = uiStateHolder.sendCardData.canSelectAnotherToken, networkIconRes = uiStateHolder.sendCardData.networkIconRes, - balance = emptyAmountState.fromTokenWalletBalance, + balance = fromTokenStatus.getFormattedAmount(isNeedSymbol = false), isBalanceHidden = isBalanceHiddenProvider(), ), receiveCardData = SwapCardState.SwapCardData( @@ -588,7 +590,7 @@ internal class StateBuilder( tokenCurrency = uiStateHolder.receiveCardData.tokenCurrency, canSelectAnotherToken = uiStateHolder.receiveCardData.canSelectAnotherToken, networkIconRes = uiStateHolder.receiveCardData.networkIconRes, - balance = emptyAmountState.toTokenWalletBalance, + balance = toTokenStatus?.getFormattedAmount(isNeedSymbol = false) ?: UNKNOWN_AMOUNT_SIGN, isBalanceHidden = isBalanceHiddenProvider(), ), warnings = emptyList(), 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 c081db8e65..16da56f847 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 @@ -341,9 +341,12 @@ internal class SwapViewModel @Inject constructor( } } is SwapState.EmptyAmountState -> { + val toTokenStatus = dataState.toCryptoCurrency uiState = stateBuilder.createQuotesEmptyAmountState( uiStateHolder = uiState, emptyAmountState = state, + fromTokenStatus = fromToken, + toTokenStatus = toTokenStatus, isReverseSwapPossible = isReverseSwapPossible(), ) }