Updated on 2026-08-14

This commit is contained in:
Tangem 2024-04-11 18:01:31 +05:00
parent dd9ad45d09
commit 8735392aff
4 changed files with 41 additions and 47 deletions

View file

@ -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(),
)
}

View file

@ -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 {

View file

@ -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,

View file

@ -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,
),
)
}