diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml
index 2250396755..4917da1390 100644
--- a/core/res/src/main/res/values-ru/strings.xml
+++ b/core/res/src/main/res/values-ru/strings.xml
@@ -568,21 +568,26 @@
Узнать больше
Понятно!
Очень круто!
- Сеть %1$s использует концепцию экзистенциального депозита. Если баланс вашего счета опустится ниже %2$s, он будет деактивирован, а все оставшиеся средства будут уничтожены.
- Для работы с сетью необходим депозит.
+ Cеть %1$s использует концепцию экзистенциального депозита. Если баланс вашего счета будет ниже %2$s, то он будет деактивирован, а средства на счете уничтожены.
+ Для работы с сетью необходим депозит
Эта карта может быть производственным образцом или подделкой
Проверка подлинности не удалась
Важная информация о безопасности %s
На этой карте осталось только %s подписей. Вы должны вывести все свои средства.
В данный момент сеть недоступна. Пожалуйста, попробуйте позже.
- Сеть недоступна.
- Как вам Tangem?
- Один вопрос
+ Сеть недоступна
+ Пополните ваш кошелек
+ Ваш отзыв мотивирует нас сделать кошелек Tangem еще лучше
+ Нравится Tangem?
+ Необходима плата за аренду сети
+ %1$s - это токен в сети %2$s. Для совершения транзакции %3$s, вам необходимо внести депозит в размере %4$s (%5$s), чтобы покрыть комиссию сети.
+ Недостаточно %1$s для оплаты комиссии сети
+ Отправка средств станет доступной после завершения транзакции %s
Эта карта подписывала транзакции в прошлом
- В настоящее время сеть недоступна. Пожалуйста, повторите попытку позже.
- Некоторые сети в настоящее время недоступны. Пожалуйста, повторите попытку позже.
+ Сеть Solana взимает арендную плату в размере %1$s каждые 2 дня. Аккаунты, которые не могут позволить себе арендную плату, удаляются из сети. Пополните свой счет более чем на %2$s, чтобы не платить арендную плату.
+ Некоторые сети в настоящее время недоступны. Пожалуйста, повторите попытку позже.
+ Некоторые сети недоступны
Это тестовая карта. Не принимайте её в качестве оплаты. Эта карта должна использоваться только в целях тестирования и разработки.
- Некоторые сети недоступны
Отказаться
Вы не закончили резервное копирование. Хотите продолжить?
Да, возобновить
diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml
index 8b245bc9b9..b04bede936 100644
--- a/core/res/src/main/res/values/strings.xml
+++ b/core/res/src/main/res/values/strings.xml
@@ -588,7 +588,7 @@
Love it!
Ok, Got it!
Really cool!
- %1$s network has a concept of Existential Deposit. If your account drops below %2$s it will be deactivated and any remaining funds will be destroyed.
+ %1$s network requires an Existential Deposit. If your account drops below %2$s, it will be deactivated, and any remaining funds will be destroyed.
Network requires Existential Deposit
This card might be a production sample or counterfeit
Authenticity check failed
@@ -596,15 +596,19 @@
There are only %s signatures available on this card. You must withdraw all of your funds.
The network is currently unreachable. Please try again later.
Network is unreachable
- How do you like Tangem?
- One question
- Rate the app
+ Top up your wallet
+ Your review keeps us motivated to make Tangem Wallet even better
+ Enjoying Tangem?
+ Network rent fee required
+ %1$s is a token in the %2$s network. To make a %3$s transaction, you must deposit some %4$s (%5$s) to cover the network fee.
+ Insufficient %1$s to cover network fee
+ Sending funds will be available once the %s transaction is complete
This card has signed transactions in the past
- Network currently is unreachable. Please try again later.
- Some networks currently are unreachable. Please try again later.
+ Solana network charges a rent of %1$s every 2 days. Accounts that can\'t afford the rent are purged from the network. Deposit your account with more than %2$s to use it for free.
+ Some networks currently are unreachable. Please try again later.
+ Some networks are unreachable
This is a Testnet card. Don\'t accept it as a payment. This card must only be used for testing and development purposes.
Note top up
- Some networks are unreachable
Discard
You have an interrupted backup. Do you want to resume?
Yes, resume
diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/components/TokenDetailsNotification.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/components/TokenDetailsNotification.kt
index 99d77114ba..fd43bdcd6e 100644
--- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/components/TokenDetailsNotification.kt
+++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/components/TokenDetailsNotification.kt
@@ -11,49 +11,52 @@ import com.tangem.features.tokendetails.impl.R
// TODO: Finalize notification strings [REDACTED_JIRA]
@Immutable
-sealed class TokenDetailsNotification(
- open val config: NotificationConfig,
-) {
+sealed class TokenDetailsNotification {
+
+ abstract val config: NotificationConfig
+
+ sealed class Informational : TokenDetailsNotification()
+ sealed class Warning : TokenDetailsNotification()
data class RentInfo(
private val rentInfo: CryptoCurrencyWarning.Rent,
private val onCloseClick: () -> Unit,
- ) : TokenDetailsNotification(
- config = NotificationConfig(
- title = TextReference.Res(R.string.send_network_fee_title),
+ ) : Warning() {
+ override val config = NotificationConfig(
+ title = TextReference.Res(R.string.warning_rent_fee_title),
subtitle = TextReference.Res(
- id = R.string.solana_rent_warning,
+ id = R.string.warning_solana_rent_fee_message,
formatArgs = wrappedList(rentInfo.rent, rentInfo.exemptionAmount),
),
iconResId = R.drawable.img_attention_20,
onCloseClick = onCloseClick,
- ),
- )
+ )
+ }
data class ExistentialDeposit(
private val existentialInfo: CryptoCurrencyWarning.ExistentialDeposit,
- ) : TokenDetailsNotification(
- config = NotificationConfig(
+ ) : Informational() {
+ override val config = NotificationConfig(
title = resourceReference(R.string.warning_existential_deposit_title),
subtitle = TextReference.Res(
id = R.string.warning_existential_deposit_message,
formatArgs = wrappedList(existentialInfo.currencyName, existentialInfo.edStringValueWithSymbol),
),
- iconResId = R.drawable.img_attention_20,
- ),
- )
+ iconResId = R.drawable.ic_alert_circle_24,
+ )
+ }
data class NetworkFee(
private val feeInfo: CryptoCurrencyWarning.BalanceNotEnoughForFee,
private val onBuyClick: () -> Unit,
- ) : TokenDetailsNotification(
- config = NotificationConfig(
+ ) : Warning() {
+ override val config = NotificationConfig(
title = TextReference.Res(
- id = R.string.notification_title_not_enough_funds,
+ id = R.string.warning_send_blocked_funds_for_fee_title,
formatArgs = wrappedList(feeInfo.blockchainFullName),
),
subtitle = TextReference.Res(
- id = R.string.token_details_send_blocked_fee_format,
+ id = R.string.warning_send_blocked_funds_for_fee_message,
formatArgs = wrappedList(
feeInfo.currency.name,
feeInfo.blockchainFullName,
@@ -64,17 +67,20 @@ sealed class TokenDetailsNotification(
),
iconResId = feeInfo.currency.networkIconResId,
buttonsState = NotificationConfig.ButtonsState.SecondaryButtonConfig(
- text = TextReference.Res(R.string.common_buy),
+ text = resourceReference(
+ id = R.string.common_buy_currency,
+ formatArgs = wrappedList(feeInfo.blockchainSymbol),
+ ),
onClick = onBuyClick,
),
- ),
- )
+ )
+ }
- object NetworksUnreachable : TokenDetailsNotification(
- config = NotificationConfig(
+ object NetworksUnreachable : Warning() {
+ override val config = NotificationConfig(
title = resourceReference(R.string.warning_network_unreachable_title),
subtitle = resourceReference(R.string.warning_network_unreachable_message),
iconResId = R.drawable.img_attention_20,
- ),
- )
+ )
+ }
}
\ No newline at end of file
diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/TokenDetailsScreen.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/TokenDetailsScreen.kt
index e2ecb00e2e..67f09871a1 100644
--- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/TokenDetailsScreen.kt
+++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/TokenDetailsScreen.kt
@@ -32,6 +32,7 @@ import com.tangem.core.ui.components.transactions.txHistoryItems
import com.tangem.core.ui.res.TangemTheme
import com.tangem.feature.tokendetails.presentation.tokendetails.TokenDetailsPreviewData
import com.tangem.feature.tokendetails.presentation.tokendetails.state.TokenDetailsState
+import com.tangem.feature.tokendetails.presentation.tokendetails.state.components.TokenDetailsNotification
import com.tangem.feature.tokendetails.presentation.tokendetails.ui.components.TokenDetailsBalanceBlock
import com.tangem.feature.tokendetails.presentation.tokendetails.ui.components.TokenDetailsDialogs
import com.tangem.feature.tokendetails.presentation.tokendetails.ui.components.TokenDetailsTopAppBar
@@ -93,7 +94,16 @@ internal fun TokenDetailsScreen(state: TokenDetailsState) {
items = state.notifications,
key = { it.config::class.java },
contentType = { it.config::class.java },
- itemContent = { Notification(config = it.config, modifier = itemModifier.animateItemPlacement()) },
+ itemContent = {
+ Notification(
+ modifier = itemModifier.animateItemPlacement(),
+ config = it.config,
+ iconTint = when (it) {
+ is TokenDetailsNotification.Warning -> null
+ is TokenDetailsNotification.Informational -> TangemTheme.colors.icon.accent
+ },
+ )
+ },
)
if (!state.isCustomToken) {
item(
diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/components/WalletNotification.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/components/WalletNotification.kt
index 5a2120d0e3..6c3fd2d2d8 100644
--- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/components/WalletNotification.kt
+++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/components/WalletNotification.kt
@@ -79,13 +79,13 @@ sealed class WalletNotification(val config: NotificationConfig) {
)
object NetworksUnreachable : Warning(
- title = resourceReference(id = R.string.wallet_balance_blockchain_unreachable),
- subtitle = resourceReference(id = R.string.warning_subtitle_network_unreachable),
+ title = resourceReference(id = R.string.warning_network_unreachable_title),
+ subtitle = resourceReference(id = R.string.warning_network_unreachable_message),
)
object SomeNetworksUnreachable : Warning(
- title = resourceReference(id = R.string.warning_title_some_networks_unreachable),
- subtitle = resourceReference(id = R.string.warning_subtitle_some_networks_unreachable),
+ title = resourceReference(id = R.string.warning_some_networks_unreachable_title),
+ subtitle = resourceReference(id = R.string.warning_some_networks_unreachable_message),
)
data class TopUpNote(val errorMessage: String) : Warning(
@@ -137,7 +137,7 @@ sealed class WalletNotification(val config: NotificationConfig) {
val onCloseClick: () -> Unit,
) : WalletNotification(
config = NotificationConfig(
- title = resourceReference(id = R.string.warning_rate_app_title_new),
+ title = resourceReference(id = R.string.warning_rate_app_title),
subtitle = resourceReference(id = R.string.warning_rate_app_message),
iconResId = R.drawable.ic_star_24,
buttonsState = NotificationConfig.ButtonsState.PairButtonsConfig(