From 8735392aff769462a08c3a42c44a19d1d2084d35 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 11 Apr 2024 18:01:31 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../send/impl/presentation/ui/SendScreen.kt | 2 +- .../ui/fee/SendSpeedSelectorItem.kt | 34 ++----------------- .../impl/presentation/ui/send/FeeBlock.kt | 18 +++------- .../impl/presentation/utils/FormatterUtils.kt | 34 +++++++++++++++++++ 4 files changed, 41 insertions(+), 47 deletions(-) create mode 100644 features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/utils/FormatterUtils.kt diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/ui/SendScreen.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/ui/SendScreen.kt index 55bebe81a7..2dcff9830c 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/ui/SendScreen.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/ui/SendScreen.kt @@ -33,6 +33,7 @@ internal fun SendScreen(uiState: SendUiState, currentState: SendUiCurrentScreen) Column( modifier = Modifier .fillMaxSize() + .imePadding() .systemBarsPadding() .background(color = TangemTheme.colors.background.tertiary), horizontalAlignment = Alignment.CenterHorizontally, @@ -78,7 +79,6 @@ internal fun SendScreen(uiState: SendUiState, currentState: SendUiCurrentScreen) SendNavigationButtons( uiState = uiState, currentState = currentState, - modifier = Modifier.imePadding(), ) } diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/ui/fee/SendSpeedSelectorItem.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/ui/fee/SendSpeedSelectorItem.kt index 3ecc6ddf2e..bb360d218b 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/ui/fee/SendSpeedSelectorItem.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/ui/fee/SendSpeedSelectorItem.kt @@ -17,18 +17,15 @@ import com.tangem.blockchain.common.Amount import com.tangem.blockchain.common.transaction.TransactionFee import com.tangem.core.ui.components.SpacerWMax import com.tangem.core.ui.components.rows.SelectorRowItem -import com.tangem.core.ui.extensions.TextReference -import com.tangem.core.ui.extensions.combinedReference -import com.tangem.core.ui.extensions.stringReference import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.utils.BigDecimalFormatter -import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.features.send.impl.R import com.tangem.features.send.impl.presentation.state.SendNotification import com.tangem.features.send.impl.presentation.state.SendStates import com.tangem.features.send.impl.presentation.state.fee.FeeSelectorState import com.tangem.features.send.impl.presentation.state.fee.FeeType -import java.math.BigDecimal +import com.tangem.features.send.impl.presentation.utils.getCryptoReference +import com.tangem.features.send.impl.presentation.utils.getFiatReference @Composable internal fun SendSpeedSelectorItem( @@ -76,33 +73,6 @@ internal fun SendSpeedSelectorItem( } } -// todo remove after refactoring [REDACTED_JIRA] -private fun getCryptoReference(amount: Amount?, isFeeApproximate: Boolean): TextReference? { - if (amount == null) return null - return combinedReference( - if (isFeeApproximate) stringReference("${BigDecimalFormatter.CAN_BE_LOWER_SIGN} ") else TextReference.EMPTY, - stringReference( - BigDecimalFormatter.formatCryptoAmount( - cryptoAmount = amount.value, - cryptoCurrency = amount.currencySymbol, - decimals = amount.decimals, - ), - ), - ) -} - -// todo remove after refactoring [REDACTED_JIRA] -private fun getFiatReference(amount: Amount?, rate: BigDecimal?, appCurrency: AppCurrency): TextReference? { - if (amount == null) return null - return stringReference( - BigDecimalFormatter.formatFiatAmount( - fiatAmount = rate?.let { amount.value?.multiply(it) }, - fiatCurrencyCode = appCurrency.code, - fiatCurrencySymbol = appCurrency.symbol, - ), - ) -} - @Composable private fun SendSpeedSelectorItemError(isError: Boolean) { Row { diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/ui/send/FeeBlock.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/ui/send/FeeBlock.kt index 23af8a4893..a3ee42ccbb 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/ui/send/FeeBlock.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/ui/send/FeeBlock.kt @@ -15,14 +15,14 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import com.tangem.core.ui.components.rows.SelectorRowItem -import com.tangem.core.ui.extensions.stringReference import com.tangem.core.ui.res.TangemTheme -import com.tangem.core.ui.utils.BigDecimalFormatter import com.tangem.features.send.impl.R import com.tangem.features.send.impl.presentation.state.SendStates import com.tangem.features.send.impl.presentation.state.fee.FeeSelectorState import com.tangem.features.send.impl.presentation.state.fee.FeeType import com.tangem.features.send.impl.presentation.state.previewdata.FeeStatePreviewData +import com.tangem.features.send.impl.presentation.utils.getCryptoReference +import com.tangem.features.send.impl.presentation.utils.getFiatReference @Composable internal fun FeeBlock(feeState: SendStates.FeeState, isSuccess: Boolean, onClick: () -> Unit) { @@ -34,16 +34,6 @@ internal fun FeeBlock(feeState: SendStates.FeeState, isSuccess: Boolean, onClick FeeType.Fast -> R.string.common_fee_selector_option_fast to R.drawable.ic_hare_24 FeeType.Custom -> R.string.common_fee_selector_option_custom to R.drawable.ic_edit_24 } - val feeCryptoValue = BigDecimalFormatter.formatCryptoAmount( - cryptoAmount = fee.amount.value, - cryptoCurrency = fee.amount.currencySymbol, - decimals = fee.amount.decimals, - ) - val feeFiatValue = BigDecimalFormatter.formatFiatAmount( - fiatAmount = feeState.rate?.let { fee.amount.value?.multiply(it) }, - fiatCurrencyCode = feeState.appCurrency.code, - fiatCurrencySymbol = feeState.appCurrency.symbol, - ) Column( modifier = Modifier .fillMaxWidth() @@ -60,8 +50,8 @@ internal fun FeeBlock(feeState: SendStates.FeeState, isSuccess: Boolean, onClick SelectorRowItem( titleRes = title, iconRes = icon, - preDot = stringReference(feeCryptoValue), - postDot = stringReference(feeFiatValue), + preDot = getCryptoReference(fee.amount, feeState.isFeeApproximate), + postDot = getFiatReference(fee.amount, feeState.rate, feeState.appCurrency), ellipsizeOffset = fee.amount.currencySymbol.length, isSelected = true, showDivider = false, diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/utils/FormatterUtils.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/utils/FormatterUtils.kt new file mode 100644 index 0000000000..022d0c5711 --- /dev/null +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/utils/FormatterUtils.kt @@ -0,0 +1,34 @@ +package com.tangem.features.send.impl.presentation.utils + +import com.tangem.blockchain.common.Amount +import com.tangem.core.ui.extensions.TextReference +import com.tangem.core.ui.extensions.combinedReference +import com.tangem.core.ui.extensions.stringReference +import com.tangem.core.ui.utils.BigDecimalFormatter +import com.tangem.domain.appcurrency.model.AppCurrency +import java.math.BigDecimal + +internal fun getCryptoReference(amount: Amount?, isFeeApproximate: Boolean): TextReference? { + if (amount == null) return null + return combinedReference( + if (isFeeApproximate) stringReference("${BigDecimalFormatter.CAN_BE_LOWER_SIGN} ") else TextReference.EMPTY, + stringReference( + BigDecimalFormatter.formatCryptoAmount( + cryptoAmount = amount.value, + cryptoCurrency = amount.currencySymbol, + decimals = amount.decimals, + ), + ), + ) +} + +internal fun getFiatReference(amount: Amount?, rate: BigDecimal?, appCurrency: AppCurrency): TextReference? { + if (amount == null) return null + return stringReference( + BigDecimalFormatter.formatFiatAmount( + fiatAmount = rate?.let { amount.value?.multiply(it) }, + fiatCurrencyCode = appCurrency.code, + fiatCurrencySymbol = appCurrency.symbol, + ), + ) +} \ No newline at end of file