Updated on 2026-08-14

This commit is contained in:
Tangem 2025-09-15 11:12:11 +05:00
commit 8c20ef2aea
4 changed files with 48 additions and 12 deletions

View file

@ -105,11 +105,12 @@ internal class FeeSelectorAlertFactory @Inject constructor(
DialogMessage(
message = resourceReference(id = R.string.send_notification_high_fee_title),
dismissOnFirstAction = true,
onDismissRequest = { stopAction() },
firstActionBuilder = {
okAction { proceedAction(); onDismissRequest() }
},
secondActionBuilder = {
cancelAction { stopAction(); onDismissRequest() }
EventMessageAction(
title = resourceReference(R.string.common_understand),
onClick = { stopAction(); onDismissRequest() },
)
},
),
)

View file

@ -43,6 +43,8 @@ import com.tangem.features.send.v2.api.callbacks.FeeSelectorModelCallback
import com.tangem.features.send.v2.api.entity.FeeNonce
import com.tangem.features.send.v2.api.params.FeeSelectorParams.FeeStateConfiguration
import com.tangem.features.send.v2.api.subcomponents.destination.entity.DestinationUM
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorCheckReloadListener
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorCheckReloadTrigger
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorReloadTrigger
import com.tangem.features.send.v2.api.subcomponents.notifications.SendNotificationsUpdateListener
import com.tangem.features.send.v2.api.subcomponents.notifications.SendNotificationsUpdateTrigger
@ -95,6 +97,8 @@ internal class SendConfirmModel @Inject constructor(
private val isAmountSubtractAvailableUseCase: IsAmountSubtractAvailableUseCase,
private val sendFeeCheckReloadTrigger: SendFeeCheckReloadTrigger,
private val sendFeeCheckReloadListener: SendFeeCheckReloadListener,
private val feeSelectorCheckReloadListener: FeeSelectorCheckReloadListener,
private val feeSelectorCheckReloadTrigger: FeeSelectorCheckReloadTrigger,
private val notificationsUpdateTrigger: SendNotificationsUpdateTrigger,
private val notificationsUpdateListener: SendNotificationsUpdateListener,
private val alertFactory: SendConfirmAlertFactory,
@ -275,7 +279,11 @@ internal class SendConfirmModel @Inject constructor(
verifyAndSendTransaction()
} else {
modelScope.launch {
sendFeeCheckReloadTrigger.triggerCheckUpdate()
if (uiState.value.isRedesignEnabled) {
feeSelectorCheckReloadTrigger.triggerCheckUpdate()
} else {
sendFeeCheckReloadTrigger.triggerCheckUpdate()
}
}
}
}
@ -506,8 +514,17 @@ internal class SendConfirmModel @Inject constructor(
private fun subscribeOnCheckFeeResultUpdates() {
sendFeeCheckReloadListener.checkReloadResultFlow.onEach { isFeeResultSuccess ->
sendIdleTimer = SystemClock.elapsedRealtime()
if (isFeeResultSuccess) {
_uiState.update(SendConfirmSendingStateTransformer(isSending = true))
verifyAndSendTransaction()
} else {
_uiState.update(SendConfirmSendingStateTransformer(isSending = false))
}
}.launchIn(modelScope)
feeSelectorCheckReloadListener.checkReloadResultFlow.onEach { isFeeResultSuccess ->
sendIdleTimer = SystemClock.elapsedRealtime()
if (isFeeResultSuccess) {
sendIdleTimer = SystemClock.elapsedRealtime()
_uiState.update(SendConfirmSendingStateTransformer(isSending = true))
verifyAndSendTransaction()
} else {

View file

@ -33,6 +33,8 @@ import com.tangem.features.send.v2.api.analytics.CommonSendAnalyticEvents
import com.tangem.features.send.v2.api.analytics.CommonSendAnalyticEvents.SendScreenSource
import com.tangem.features.send.v2.api.callbacks.FeeSelectorModelCallback
import com.tangem.features.send.v2.api.subcomponents.destination.entity.DestinationUM
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorCheckReloadListener
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorCheckReloadTrigger
import com.tangem.features.send.v2.api.subcomponents.notifications.SendNotificationsUpdateListener
import com.tangem.features.send.v2.api.subcomponents.notifications.SendNotificationsUpdateTrigger
import com.tangem.features.send.v2.common.CommonSendRoute
@ -82,6 +84,8 @@ internal class NFTSendConfirmModel @Inject constructor(
private val notificationsUpdateListener: SendNotificationsUpdateListener,
private val sendFeeCheckReloadTrigger: SendFeeCheckReloadTrigger,
private val sendFeeCheckReloadListener: SendFeeCheckReloadListener,
private val feeSelectorCheckReloadTrigger: FeeSelectorCheckReloadTrigger,
private val feeSelectorCheckReloadListener: FeeSelectorCheckReloadListener,
private val alertFactory: SendConfirmAlertFactory,
private val urlOpener: UrlOpener,
private val shareManager: ShareManager,
@ -206,7 +210,11 @@ internal class NFTSendConfirmModel @Inject constructor(
verifyAndSendTransaction()
} else {
modelScope.launch {
sendFeeCheckReloadTrigger.triggerCheckUpdate()
if (uiState.value.isRedesignEnabled) {
feeSelectorCheckReloadTrigger.triggerCheckUpdate()
} else {
sendFeeCheckReloadTrigger.triggerCheckUpdate()
}
}
}
}
@ -372,8 +380,17 @@ internal class NFTSendConfirmModel @Inject constructor(
private fun subscribeOnCheckFeeResultUpdates() {
sendFeeCheckReloadListener.checkReloadResultFlow.onEach { isFeeResultSuccess ->
sendIdleTimer = SystemClock.elapsedRealtime()
if (isFeeResultSuccess) {
_uiState.update(NFTSendConfirmSendingStateTransformer(isSending = true))
verifyAndSendTransaction()
} else {
_uiState.update(NFTSendConfirmSendingStateTransformer(isSending = false))
}
}.launchIn(modelScope)
feeSelectorCheckReloadListener.checkReloadResultFlow.onEach { isFeeResultSuccess ->
sendIdleTimer = SystemClock.elapsedRealtime()
if (isFeeResultSuccess) {
sendIdleTimer = SystemClock.elapsedRealtime()
_uiState.update(NFTSendConfirmSendingStateTransformer(isSending = true))
verifyAndSendTransaction()
} else {

View file

@ -100,11 +100,12 @@ internal class SendFeeAlertFactory @Inject constructor(
DialogMessage(
message = resourceReference(id = R.string.send_notification_high_fee_title),
dismissOnFirstAction = true,
onDismissRequest = { stopAction() },
firstActionBuilder = {
okAction { proceedAction(); onDismissRequest() }
},
secondActionBuilder = {
cancelAction { stopAction(); onDismissRequest() }
EventMessageAction(
title = resourceReference(R.string.common_understand),
onClick = { stopAction(); onDismissRequest() },
)
},
),
)