From 94b59fcbe35d5b401199313e8c6ba84ee3e5d3a1 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 6 Jun 2024 17:53:12 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../common/feedback/AdditionalFeedbackInfo.kt | 10 ++++---- .../common/redux/legacy/LegacyMiddleware.kt | 5 ++-- .../com/tangem/domain/redux/LegacyAction.kt | 6 ++--- .../presentation/viewmodel/SendViewModel.kt | 24 +++++++++++-------- 4 files changed, 24 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/common/feedback/AdditionalFeedbackInfo.kt b/app/src/main/java/com/tangem/tap/common/feedback/AdditionalFeedbackInfo.kt index 975fb1fb2f..21f7717f88 100644 --- a/app/src/main/java/com/tangem/tap/common/feedback/AdditionalFeedbackInfo.kt +++ b/app/src/main/java/com/tangem/tap/common/feedback/AdditionalFeedbackInfo.kt @@ -89,19 +89,19 @@ class AdditionalFeedbackInfo { fun updateOnSendError( walletManager: WalletManager, - amountToSend: Amount, + amountToSend: Amount?, feeAmount: Amount?, - destinationAddress: String, + destinationAddress: String?, ) { onSendErrorWalletInfo = createEmailWalletInfo(walletManager) - this.destinationAddress = destinationAddress - amount = amountToSend.value?.stripZeroPlainString() ?: "0" + this.destinationAddress = destinationAddress ?: "0" + amount = amountToSend?.value?.stripZeroPlainString() ?: "0" fee = if (feeAmount != null) { feeAmount.value?.stripZeroPlainString() ?: "0" } else { "Unable to receive" } - token = if (amountToSend.type is AmountType.Token) amountToSend.currencySymbol else "" + token = if (amountToSend?.type is AmountType.Token) amountToSend.currencySymbol else "" } private fun createEmailWalletInfo(walletManager: WalletManager): EmailWalletInfo { diff --git a/app/src/main/java/com/tangem/tap/common/redux/legacy/LegacyMiddleware.kt b/app/src/main/java/com/tangem/tap/common/redux/legacy/LegacyMiddleware.kt index 5b83d8c803..7cf0e08bf1 100644 --- a/app/src/main/java/com/tangem/tap/common/redux/legacy/LegacyMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/common/redux/legacy/LegacyMiddleware.kt @@ -12,7 +12,6 @@ import com.tangem.tap.scope import com.tangem.tap.store import kotlinx.coroutines.launch import org.rekotlin.Middleware -import java.math.BigDecimal internal object LegacyMiddleware { val legacyMiddleware: Middleware = { _, _ -> @@ -41,8 +40,8 @@ internal object LegacyMiddleware { )?.let { walletManager -> store.state.globalState.feedbackManager?.infoHolder?.updateOnSendError( walletManager = walletManager, - amountToSend = action.amount.convertToAmount(action.cryptoCurrency), - feeAmount = action.fee.convertToAmount(action.cryptoCurrency), + amountToSend = action.amount?.convertToAmount(action.cryptoCurrency), + feeAmount = action.fee?.convertToAmount(action.cryptoCurrency), destinationAddress = action.destinationAddress, ) } diff --git a/domain/legacy/src/main/java/com/tangem/domain/redux/LegacyAction.kt b/domain/legacy/src/main/java/com/tangem/domain/redux/LegacyAction.kt index f159059c87..3e0b022afd 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/redux/LegacyAction.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/redux/LegacyAction.kt @@ -30,9 +30,9 @@ sealed interface LegacyAction : Action { data class SendEmailTransactionFailed( val cryptoCurrency: CryptoCurrency, val userWalletId: UserWalletId, - val amount: BigDecimal, - val fee: BigDecimal, - val destinationAddress: String, + val amount: BigDecimal?, + val fee: BigDecimal?, + val destinationAddress: String?, val errorMessage: String, ) : LegacyAction } \ No newline at end of file diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/viewmodel/SendViewModel.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/viewmodel/SendViewModel.kt index 8654c0f8f9..40add3e136 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/viewmodel/SendViewModel.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/viewmodel/SendViewModel.kt @@ -541,17 +541,21 @@ internal class SendViewModel @Inject constructor( } override fun onFailedTxEmailClick(errorMessage: String) { - val recipient = uiState.recipientState?.addressTextField?.value ?: return - val feeValue = uiState.feeState?.fee?.amount?.value ?: return - val amountValue = uiState.amountState?.amountTextField?.cryptoAmount?.value ?: return + val recipient = uiState.recipientState?.addressTextField?.value + val feeValue = uiState.feeState?.fee?.amount?.value + val amountValue = uiState.amountState?.amountTextField?.cryptoAmount?.value - val receivingAmount = checkAndCalculateSubtractedAmount( - isAmountSubtractAvailable = isAmountSubtractAvailable, - cryptoCurrencyStatus = cryptoCurrencyStatus, - amountValue = amountValue, - feeValue = feeValue, - reduceAmountBy = uiState.sendState?.reduceAmountBy ?: BigDecimal.ZERO, - ) + val receivingAmount = if (amountValue != null && feeValue != null) { + checkAndCalculateSubtractedAmount( + isAmountSubtractAvailable = isAmountSubtractAvailable, + cryptoCurrencyStatus = cryptoCurrencyStatus, + amountValue = amountValue, + feeValue = feeValue, + reduceAmountBy = uiState.sendState?.reduceAmountBy ?: BigDecimal.ZERO, + ) + } else { + null + } reduxStateHolder.dispatch( LegacyAction.SendEmailTransactionFailed( cryptoCurrency = cryptoCurrency,