diff --git a/core/ui/src/main/java/com/tangem/core/ui/utils/BigDecimalFormatter.kt b/core/ui/src/main/java/com/tangem/core/ui/utils/BigDecimalFormatter.kt index fc916ea18a..16386f4fa3 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/utils/BigDecimalFormatter.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/utils/BigDecimalFormatter.kt @@ -4,6 +4,7 @@ import android.icu.text.CompactDecimalFormat import com.tangem.domain.tokens.model.CryptoCurrency import com.tangem.utils.StringsSigns.DASH_SIGN import com.tangem.utils.StringsSigns.LOWER_SIGN +import com.tangem.utils.StringsSigns.TILDE_SIGN import timber.log.Timber import java.math.BigDecimal import java.math.RoundingMode @@ -167,6 +168,7 @@ object BigDecimalFormatter { fiatCurrencySymbol: String, decimals: Int = FIAT_MARKET_DEFAULT_DIGITS, locale: Locale = Locale.getDefault(), + withApproximateSign: Boolean = false, ): String { if (fiatAmount == null) return EMPTY_BALANCE_SIGN @@ -187,8 +189,17 @@ object BigDecimalFormatter { ) } } else { - formatter.format(fiatAmount) + val formattedAmount = formatter.format(fiatAmount) .replace(formatterCurrency.getSymbol(locale), fiatCurrencySymbol) + + if (withApproximateSign) { + buildString { + append(TILDE_SIGN) + append(formattedAmount) + } + } else { + formattedAmount + } } } diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateLoadingTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateLoadingTransformer.kt index 0428216d5e..076c5577a7 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateLoadingTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateLoadingTransformer.kt @@ -64,6 +64,7 @@ internal class SetConfirmationStateLoadingTransformer( fiatAmount = potentialReward, fiatCurrencyCode = appCurrency.code, fiatCurrencySymbol = appCurrency.symbol, + withApproximateSign = true, ) return if (isEnterAction && amountDecimal != null && potentialReward != null) { resourceReference( diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetTitleTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetTitleTransformer.kt index d296d29596..578af70403 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetTitleTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetTitleTransformer.kt @@ -41,19 +41,20 @@ internal object SetTitleTransformer : Transformer { val confirmationState = prevState.confirmationState as? StakingStates.ConfirmationState.Data val title = confirmationState?.pendingAction?.type?.getPendingActionTitle() - title?.takeIf { it.isNullOrEmpty() } + title.takeIf { !it.isNullOrEmpty() } ?: resourceReference( - R.string.staking_title_stake, - wrappedList(prevState.cryptoCurrencyName), + id = R.string.staking_title_stake, + formatArgs = wrappedList(prevState.cryptoCurrencyName), ) } } } } - val subtitle = when (currentStep) { - StakingStep.Confirmation -> stringReference(prevState.walletName) - else -> null + val subtitle = if (currentStep == StakingStep.Confirmation && actionType == StakingActionCommonType.ENTER) { + stringReference(prevState.walletName) + } else { + null } return prevState.copy( diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/StakingConfirmationContent.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/StakingConfirmationContent.kt index df10d96663..8fc799719a 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/StakingConfirmationContent.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/StakingConfirmationContent.kt @@ -59,8 +59,8 @@ internal fun StakingConfirmationContent( } AmountBlock( amountState = amountState, - isClickDisabled = !isEnterAction, - isEditingDisabled = !isEnterAction || isTransactionSent, + isClickDisabled = !isEnterAction || isTransactionSent, + isEditingDisabled = !isEnterAction && state.innerState != InnerConfirmationStakingState.COMPLETED, onClick = clickIntents::onPrevClick, ) if (isEnterAction) { diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/block/StakingFeeBlock.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/block/StakingFeeBlock.kt index cfb15b93e0..1a001e874d 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/block/StakingFeeBlock.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/block/StakingFeeBlock.kt @@ -83,6 +83,7 @@ internal fun StakingFeeBlock(feeState: FeeState, isTransactionSent: Boolean) { titleRes = R.string.common_fee_selector_option_market, iconRes = R.drawable.ic_bird_24, paddingValues = PaddingValues(), + showDivider = false, ) FeeLoading(feeState) }