diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt index d6c4c766da..65a909ce1c 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt @@ -1,9 +1,13 @@ package com.tangem.tap.features.send.redux.reducers import com.tangem.blockchain.common.Amount +import com.tangem.blockchain.common.AmountType +import com.tangem.blockchain.common.Blockchain +import com.tangem.tap.common.extensions.fullNameWithoutTestnet import com.tangem.tap.features.send.redux.FeeAction import com.tangem.tap.features.send.redux.FeeActionUi import com.tangem.tap.features.send.redux.SendScreenAction +import com.tangem.tap.features.send.redux.states.FeePrecision import com.tangem.tap.features.send.redux.states.FeeState import com.tangem.tap.features.send.redux.states.FeeType import com.tangem.tap.features.send.redux.states.SendState @@ -57,7 +61,8 @@ class FeeReducer : SendInternalReducer { selectedFeeType = feeType, feeList = fees, currentFee = currentFee, - error = null + error = null, + feePrecision = getFeePrecision(sendState) ) } else { val feeType = getCurrentFeeType(state) @@ -67,7 +72,8 @@ class FeeReducer : SendInternalReducer { selectedFeeType = feeType, feeList = fees, currentFee = currentFee, - error = null + error = null, + feePrecision = getFeePrecision(sendState) ) } } @@ -98,6 +104,17 @@ class FeeReducer : SendInternalReducer { } } + private fun getFeePrecision(sendState: SendState): FeePrecision { + val blockchain = sendState.walletManager?.wallet?.blockchain + return if (blockchain?.fullNameWithoutTestnet == Blockchain.Tron.fullName && + sendState.amountState.typeOfAmount is AmountType.Token) { + FeePrecision.CAN_BE_LOWER + } else { + FeePrecision.PRECISE + } + } + + private fun getCurrentFeeType(state: FeeState): FeeType { return if (state.selectedFeeType == FeeType.SINGLE) FeeType.NORMAL else state.selectedFeeType } diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/ReceiptReducer.kt b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/ReceiptReducer.kt index 93bbcbc9ff..f4dc73323e 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/ReceiptReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/ReceiptReducer.kt @@ -160,14 +160,14 @@ class ReceiptReducer : SendInternalReducer { ReceiptTokenCrypto( amountToken = tokensToSend.stripZeroPlainString(), - feeCoin = feeCoin.stripZeroPlainString(), + feeCoin = feeCoin.stripZeroPlainString().addPrecisionSign(), totalFiat = totalFiat.scaleToFiat(true).stripZeroPlainString(), symbols = symbols ) } else { ReceiptTokenCrypto( amountToken = tokensToSend.stripZeroPlainString(), - feeCoin = feeCoin.stripZeroPlainString(), + feeCoin = feeCoin.stripZeroPlainString().addPrecisionSign(), totalFiat = EMPTY, symbols = symbols ) @@ -208,4 +208,7 @@ class ReceiptReducer : SendInternalReducer { else -> EMPTY } } + + private fun String.addPrecisionSign(): String = + ("${feeState.feePrecision.symbol} $this").trim() } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/states/FeeState.kt b/app/src/main/java/com/tangem/tap/features/send/redux/states/FeeState.kt index 532031bbb4..87b29f304b 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/states/FeeState.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/states/FeeState.kt @@ -11,6 +11,10 @@ enum class FeeType { SINGLE, LOW, NORMAL, PRIORITY } +enum class FeePrecision(val symbol: String) { + PRECISE(""), CAN_BE_LOWER("<") +} + data class FeeState( val selectedFeeType: FeeType = FeeType.NORMAL, val feeList: List? = null, @@ -21,6 +25,7 @@ data class FeeState( val feeChipGroupIsVisible: Boolean = true, val includeFeeSwitcherIsEnabled: Boolean = true, val error: FeeAction.Error? = null, + val feePrecision: FeePrecision = FeePrecision.PRECISE ) : SendScreenState { override val stateId: StateId = StateId.FEE