From 5efe33a6b616ff9d844cf3428447b5f4bbb78fdb Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 24 Jan 2024 14:47:18 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../java/com/tangem/feature/swap/models/SwapStateHolder.kt | 1 + .../main/java/com/tangem/feature/swap/ui/StateBuilder.kt | 7 +++++++ .../java/com/tangem/feature/swap/ui/SwapScreenContent.kt | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/models/SwapStateHolder.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/models/SwapStateHolder.kt index bbe757b01b..4e77ff7dc8 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/models/SwapStateHolder.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/models/SwapStateHolder.kt @@ -31,6 +31,7 @@ data class SwapStateHolder( val bottomSheetConfig: TangemBottomSheetConfig? = null, val swapButton: SwapButton, + val shouldShowMaxAmount: Boolean, val tosState: TosState? = null, val onRefresh: () -> Unit, 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 90e2f34c73..76f84dc0e2 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 @@ -87,6 +87,7 @@ internal class StateBuilder( changeCardsButtonState = ChangeCardsButtonState.UPDATE_IN_PROGRESS, onShowPermissionBottomSheet = actions.openPermissionBottomSheet, providerState = ProviderState.Empty(), + shouldShowMaxAmount = false, priceImpact = PriceImpact.Empty(), ) } @@ -187,6 +188,7 @@ internal class StateBuilder( permissionState = uiStateHolder.permissionState, changeCardsButtonState = ChangeCardsButtonState.UPDATE_IN_PROGRESS, priceImpact = PriceImpact.Empty(), + shouldShowMaxAmount = shouldShowMaxAmount(fromToken, toToken), ) } @@ -276,9 +278,14 @@ internal class StateBuilder( PriceImpact.Empty() }, tosState = createTosState(swapProvider), + shouldShowMaxAmount = shouldShowMaxAmount(fromToken, toCurrencyStatus.currency), ) } + private fun shouldShowMaxAmount(fromToken: CryptoCurrency, toCurrency: CryptoCurrency): Boolean { + return !(fromToken is CryptoCurrency.Coin && fromToken.network.id == toCurrency.network.id) + } + private fun createTosState(swapProvider: SwapProvider): TosState { return TosState( tosLink = swapProvider.termsOfUse?.let { diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt index 3b42cf78a6..8542161c27 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt @@ -86,7 +86,7 @@ internal fun SwapScreenContent(state: SwapStateHolder, modifier: Modifier = Modi } } - if (keyboard is Keyboard.Opened) { + if (state.shouldShowMaxAmount && keyboard is Keyboard.Opened) { Text( text = stringResource(id = R.string.send_max_amount_label), style = TangemTheme.typography.button, @@ -494,6 +494,7 @@ private val state = SwapStateHolder( blockchainId = "POLYGON", providerState = ProviderState.Loading(), priceImpact = PriceImpact.Empty(), + shouldShowMaxAmount = true, tosState = TosState( tosLink = LegalState( title = stringReference("Terms of Use"),