diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml
index 1e9ed93914..b1797d3a2a 100644
--- a/core/res/src/main/res/values-de/strings.xml
+++ b/core/res/src/main/res/values-de/strings.xml
@@ -221,7 +221,6 @@
Tangem bietet Token-Swaps über Drittanbieter gemäß den jeweiligen Bedingungen des jeweiligen Anbieters an.
Anbieter wählen
Es ist ein Fehler aufgetreten. Code: %s
- Huch! Der Tausch des ausgewählten Paares über den gewählten Anbieter ist vorübergehend nicht möglich. Bitte versuche es später erneut. (Code: %s)
Der gewählte Anbieter ist im Moment nicht verfügbar. Bitte versuche es später noch einmal. (Code: %s)
Swaps sind im Moment nicht verfügbar. Bitte versuche es später noch einmal. (Code: %s)
Geschätzter Betrag
diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml
index d39ab86d92..581c5d1af7 100644
--- a/core/res/src/main/res/values-fr/strings.xml
+++ b/core/res/src/main/res/values-fr/strings.xml
@@ -217,7 +217,6 @@
Tangem propose des échanges de jetons via des fournisseurs tiers selon les conditions de chaque fournisseur
Choisissez un fournisseur
Une erreur s\'est produite. Code : %s
- Oups! L\'échange de la paire sélectionnée via le fournisseur choisi est temporairement indisponible. Veuillez réessayer plus tard. (Code : %s)
Le fournisseur sélectionné n\'est pas disponible pour le moment. Veuillez réessayer plus tard. (Code : %s)
Les échanges ne sont pas disponibles pour le moment. Veuillez réessayer plus tard. (Code : %s)
Montant estimé
diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml
index e5c43474a1..cbfddbaa7f 100644
--- a/core/res/src/main/res/values-ja/strings.xml
+++ b/core/res/src/main/res/values-ja/strings.xml
@@ -219,7 +219,6 @@
Tangemは、各プロバイダーの条件に従って、サードパーティプロバイダーを介してトークンスワップを提供します。
プロバイダーを選択
エラーが発生しました。コード: %s
- おっと!このプロバイダーで選択したペアを交換することは一時的にできません。後でもう一度お試しください。(Code:%s)
選択したプロバイダーは現在利用できません。しばらくしてからもう一度お試しください。(コード: %s )
現在、交換はご利用いただけません。しばらくしてからもう一度お試しください。(コード: %s )
推定金額
diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml
index e89bb61d95..ff9fce14ea 100644
--- a/core/res/src/main/res/values-ru/strings.xml
+++ b/core/res/src/main/res/values-ru/strings.xml
@@ -225,7 +225,6 @@
Tangem предоставляет доступ к обмену через сторонних поставщиков в соответствии с их правилами
Выберите провайдера
Произошла ошибка. Код: %s
- К сожалению, обмен указанной пары через выбранного провайдера на данный момент невозможен. Попробуйте совершить обмен позже. (Код: %s)
Выбранный провайдер недоступен для обмена. Попробуйте позже. (Код: %s)
В данный момент обмен невозможен. Попробуйте позже. (Код: %s)
Курс обмена
diff --git a/core/res/src/main/res/values-uk-rUA/strings.xml b/core/res/src/main/res/values-uk-rUA/strings.xml
index d352a7be3c..4a4839b4e7 100644
--- a/core/res/src/main/res/values-uk-rUA/strings.xml
+++ b/core/res/src/main/res/values-uk-rUA/strings.xml
@@ -225,7 +225,6 @@
Tangem пропонує обмін токенів через сторонніх провайдерів відповідно до умов кожного провайдера
Оберіть провайдера
Виникла помилка. Код: %s
- На жаль, обмін вказаної пари через обраного провайдера тимчасово неможливий. Спробуйте здійснити обмін пізніше. (Код: %s)
Наразі обраний провайдер недоступний для обміну. Спробуй пізніше. (Код: %s)
Наразі обмін неможливий. Спробуй пізніше. (Код: %s)
Курс обміну
diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml
index 79135b1d0d..dadb67073c 100644
--- a/core/res/src/main/res/values/strings.xml
+++ b/core/res/src/main/res/values/strings.xml
@@ -222,7 +222,6 @@
Tangem offers token swaps via 3rd-party providers according to each provider\'s terms
Choose provider
An error occurred. Code: %s
- Oops! Swapping the selected pair through the chosen provider is temporarily unavailable. Please try again later. (Code: %s)
Selected provider is unavailable at the moment. Please try again later. (Code: %s)
Swaps are unavailable at the moment. Please try again later. (Code: %s)
Estimated amount
diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/analytics/SwapEvents.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/analytics/SwapEvents.kt
index 55450cbdec..68d9795026 100644
--- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/analytics/SwapEvents.kt
+++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/analytics/SwapEvents.kt
@@ -104,15 +104,17 @@ sealed class SwapEvents(
)
data class NoticeProviderError(
- val token: String,
+ val sendToken: String,
+ val receiveToken: String,
val provider: SwapProvider,
val errorCode: Int,
) : SwapEvents(
event = "Notice - Express Error",
params = mapOf(
- "Token" to token,
+ "Send Token" to sendToken,
+ "Receive Token" to receiveToken,
"Provider" to provider.name,
- "Error code" to errorCode.toString(),
+ "Error Code" to errorCode.toString(),
),
)
diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt
index 517c795db6..c013b188e0 100644
--- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt
+++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt
@@ -736,6 +736,7 @@ internal class StateBuilder(
private fun getWarningForError(dataError: DataError, fromToken: CryptoCurrency): SwapWarning {
val providerErrorMessage = getProviderErrorMessage(dataError)
+ val providerErrorTitle = getProviderErrorTitle(dataError)
return when (dataError) {
is DataError.ExchangeTooSmallAmountError -> SwapWarning.GeneralError(
notificationConfig = NotificationConfig(
@@ -759,22 +760,8 @@ internal class StateBuilder(
)
else -> SwapWarning.GeneralWarning(
notificationConfig = NotificationConfig(
- title = if (dataError is DataError.UnknownError) {
- resourceReference(R.string.common_error)
- } else {
- resourceReference(R.string.warning_express_refresh_required_title)
- },
- subtitle = when {
- dataError is DataError.UnknownError -> {
- resourceReference(R.string.common_unknown_error)
- }
- providerErrorMessage != null -> {
- providerErrorMessage
- }
- else -> {
- resourceReference(R.string.express_error_code, wrappedList(dataError.code.toString()))
- }
- },
+ title = providerErrorTitle,
+ subtitle = providerErrorMessage,
iconResId = R.drawable.img_attention_20,
buttonsState = NotificationConfig.ButtonsState.SecondaryButtonConfig(
text = resourceReference(R.string.warning_button_refresh),
@@ -1096,16 +1083,17 @@ internal class StateBuilder(
)
}
- private fun getProviderErrorMessage(dataError: DataError): TextReference? {
+ private fun getProviderErrorMessage(dataError: DataError): TextReference {
return when (dataError) {
is DataError.SwapsAreUnavailableNowError -> resourceReference(
id = R.string.express_error_swap_unavailable,
formatArgs = wrappedList(dataError.code),
)
is DataError.ExchangeNotPossibleError -> resourceReference(
- id = R.string.express_error_provider_unavailable,
+ id = R.string.warning_express_pair_unavailable_message,
formatArgs = wrappedList(dataError.code),
)
+ is DataError.UnknownError -> resourceReference(R.string.common_unknown_error)
is DataError.ExchangeProviderNotActiveError,
is DataError.ExchangeProviderNotFoundError,
is DataError.ExchangeProviderNotAvailableError,
@@ -1114,7 +1102,18 @@ internal class StateBuilder(
id = R.string.express_error_swap_pair_unavailable,
formatArgs = wrappedList(dataError.code),
)
- else -> null
+ else -> resourceReference(R.string.express_error_code, wrappedList(dataError.code.toString()))
+ }
+ }
+
+ private fun getProviderErrorTitle(dataError: DataError): TextReference {
+ return when (dataError) {
+ is DataError.ExchangeNotPossibleError -> resourceReference(
+ id = R.string.warning_express_pair_unavailable_title,
+ formatArgs = wrappedList(dataError.code),
+ )
+ is DataError.UnknownError -> resourceReference(R.string.common_error)
+ else -> resourceReference(R.string.warning_express_refresh_required_title)
}
}
diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt
index eb128c84db..e0061c0c1b 100644
--- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt
+++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt
@@ -405,9 +405,13 @@ internal class SwapViewModel @Inject constructor(
}
private fun sendErrorAnalyticsEvent(error: DataError, provider: SwapProvider) {
+ val receiveToken = dataState.toCryptoCurrency?.currency?.let {
+ "${it.network.backendId}:${it.symbol}"
+ }
analyticsEventHandler.send(
SwapEvents.NoticeProviderError(
- token = initialCryptoCurrency.symbol,
+ sendToken = "${initialCryptoCurrency.network.backendId}:${initialCryptoCurrency.symbol}",
+ receiveToken = receiveToken ?: "",
provider = provider,
errorCode = error.code,
),