From 275aa92b2cce759e9a46783773e470eb266c671f Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 25 Apr 2025 10:27:39 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/core/ui/message/dialog/Dialogs.kt | 6 ++++-- .../core/ui/utils/UiMessageSenderUtils.kt | 4 ++-- .../model/OnboardingVisaInProgressModel.kt | 17 +++++++++++++++-- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/core/ui/src/main/java/com/tangem/core/ui/message/dialog/Dialogs.kt b/core/ui/src/main/java/com/tangem/core/ui/message/dialog/Dialogs.kt index b8cac08019..da674fa0d6 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/message/dialog/Dialogs.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/message/dialog/Dialogs.kt @@ -42,13 +42,15 @@ object Dialogs { /** * Universal error dialog */ - fun universalErrorDialog(universalError: UniversalError, onOkClick: () -> Unit): DialogMessage { + fun universalErrorDialog(universalError: UniversalError, onDismiss: () -> Unit): DialogMessage { return DialogMessage( message = resourceReference(R.string.universal_error, wrappedList(universalError.errorCode)), firstAction = EventMessageAction( title = resourceReference(R.string.common_ok), - onClick = onOkClick, + onClick = {}, ), + dismissOnFirstAction = true, + onDismissRequest = onDismiss, ) } } \ No newline at end of file diff --git a/core/ui/src/main/java/com/tangem/core/ui/utils/UiMessageSenderUtils.kt b/core/ui/src/main/java/com/tangem/core/ui/utils/UiMessageSenderUtils.kt index d237f52daa..3655a3ffd9 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/utils/UiMessageSenderUtils.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/utils/UiMessageSenderUtils.kt @@ -4,6 +4,6 @@ import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.error.UniversalError import com.tangem.core.ui.message.dialog.Dialogs -fun UiMessageSender.showErrorDialog(universalError: UniversalError) { - send(Dialogs.universalErrorDialog(universalError) {}) +fun UiMessageSender.showErrorDialog(universalError: UniversalError, onDismiss: () -> Unit = {}) { + send(Dialogs.universalErrorDialog(universalError, onDismiss = onDismiss)) } \ No newline at end of file diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/inprogress/model/OnboardingVisaInProgressModel.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/inprogress/model/OnboardingVisaInProgressModel.kt index c0fdbbd57d..790b909fda 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/inprogress/model/OnboardingVisaInProgressModel.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/inprogress/model/OnboardingVisaInProgressModel.kt @@ -72,14 +72,20 @@ internal class OnboardingVisaInProgressModel @Inject constructor( is VisaActivationRemoteState.CardWalletSignatureRequired, VisaActivationRemoteState.BlockedForActivation, -> { - uiMessageSender.showErrorDialog(VisaActivationError.InconsistentRemoteState) + uiMessageSender.showErrorDialog(VisaActivationError.InconsistentRemoteState) { + retryShortPolling() + } + analyticsEventHandler.send( VisaAnalyticsEvent.ErrorOnboarding(VisaActivationError.InconsistentRemoteState), ) return@launch } VisaActivationRemoteState.Failed -> { - uiMessageSender.showErrorDialog(VisaActivationError.FailedRemoteState) + uiMessageSender.showErrorDialog(VisaActivationError.FailedRemoteState) { + retryShortPolling() + } + analyticsEventHandler.send( VisaAnalyticsEvent.ErrorOnboarding(VisaActivationError.FailedRemoteState), ) @@ -106,6 +112,13 @@ internal class OnboardingVisaInProgressModel @Inject constructor( } } + private fun retryShortPolling() { + modelScope.launch { + delay(timeMillis = 10000) + runShortPolling() + } + } + private suspend inline fun navigateToPinCodeIfNeeded( remoteState: VisaActivationRemoteState.AwaitingPinCode, complete: () -> Unit,