Updated on 2026-08-14

This commit is contained in:
Tangem 2023-10-13 14:26:43 +05:00
parent 2ad2edd6c8
commit dd11f56a38
5 changed files with 71 additions and 46 deletions

View file

@ -568,21 +568,26 @@
<string name="warning_button_learn_more">Узнать больше</string>
<string name="warning_button_ok">Понятно!</string>
<string name="warning_button_really_cool">Очень круто!</string>
<string name="warning_existential_deposit_message">Сеть %1$s использует концепцию экзистенциального депозита. Если баланс вашего счета опустится ниже %2$s, он будет деактивирован, а все оставшиеся средства будут уничтожены.</string>
<string name="warning_existential_deposit_title">Для работы с сетью необходим депозит.</string>
<string name="warning_existential_deposit_message">Cеть %1$s использует концепцию экзистенциального депозита. Если баланс вашего счета будет ниже %2$s, то он будет деактивирован, а средства на счете уничтожены.</string>
<string name="warning_existential_deposit_title">Для работы с сетью необходим депозит</string>
<string name="warning_failed_to_verify_card_message">Эта карта может быть производственным образцом или подделкой</string>
<string name="warning_failed_to_verify_card_title">Проверка подлинности не удалась</string>
<string name="warning_important_security_info">Важная информация о безопасности %s</string>
<string name="warning_low_signatures_format">На этой карте осталось только %s подписей. Вы должны вывести все свои средства.</string>
<string name="warning_network_unreachable_message">В данный момент сеть недоступна. Пожалуйста, попробуйте позже.</string>
<string name="warning_network_unreachable_title">Сеть недоступна.</string>
<string name="warning_rate_app_message">Как вам Tangem?</string>
<string name="warning_rate_app_title">Один вопрос</string>
<string name="warning_network_unreachable_title">Сеть недоступна</string>
<string name="warning_no_account_title">Пополните ваш кошелек</string>
<string name="warning_rate_app_message">Ваш отзыв мотивирует нас сделать кошелек Tangem еще лучше</string>
<string name="warning_rate_app_title">Нравится Tangem?</string>
<string name="warning_rent_fee_title">Необходима плата за аренду сети</string>
<string name="warning_send_blocked_funds_for_fee_message">%1$s - это токен в сети %2$s. Для совершения транзакции %3$s, вам необходимо внести депозит в размере %4$s (%5$s), чтобы покрыть комиссию сети.</string>
<string name="warning_send_blocked_funds_for_fee_title">Недостаточно %1$s для оплаты комиссии сети</string>
<string name="warning_send_blocked_pending_transactions_message">Отправка средств станет доступной после завершения транзакции %s</string>
<string name="warning_signed_tx_previously">Эта карта подписывала транзакции в прошлом</string>
<string name="warning_subtitle_network_unreachable">В настоящее время сеть недоступна. Пожалуйста, повторите попытку позже.</string>
<string name="warning_subtitle_some_networks_unreachable">Некоторые сети в настоящее время недоступны. Пожалуйста, повторите попытку позже.</string>
<string name="warning_solana_rent_fee_message">Сеть Solana взимает арендную плату в размере %1$s каждые 2 дня. Аккаунты, которые не могут позволить себе арендную плату, удаляются из сети. Пополните свой счет более чем на %2$s, чтобы не платить арендную плату.</string>
<string name="warning_some_networks_unreachable_message">Некоторые сети в настоящее время недоступны. Пожалуйста, повторите попытку позже.</string>
<string name="warning_some_networks_unreachable_title">Некоторые сети недоступны</string>
<string name="warning_testnet_card_message">Это тестовая карта. Не принимайте её в качестве оплаты. Эта карта должна использоваться только в целях тестирования и разработки.</string>
<string name="warning_title_some_networks_unreachable">Некоторые сети недоступны</string>
<string name="welcome_interrupted_backup_alert_discard">Отказаться</string>
<string name="welcome_interrupted_backup_alert_message">Вы не закончили резервное копирование. Хотите продолжить?</string>
<string name="welcome_interrupted_backup_alert_resume">Да, возобновить</string>

View file

@ -588,7 +588,7 @@
<string name="warning_button_love_it">Love it!</string>
<string name="warning_button_ok">Ok, Got it!</string>
<string name="warning_button_really_cool">Really cool!</string>
<string name="warning_existential_deposit_message">%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.</string>
<string name="warning_existential_deposit_message">%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.</string>
<string name="warning_existential_deposit_title">Network requires Existential Deposit</string>
<string name="warning_failed_to_verify_card_message">This card might be a production sample or counterfeit</string>
<string name="warning_failed_to_verify_card_title">Authenticity check failed</string>
@ -596,15 +596,19 @@
<string name="warning_low_signatures_format">There are only %s signatures available on this card. You must withdraw all of your funds.</string>
<string name="warning_network_unreachable_message">The network is currently unreachable. Please try again later.</string>
<string name="warning_network_unreachable_title">Network is unreachable</string>
<string name="warning_rate_app_message">How do you like Tangem?</string>
<string name="warning_rate_app_title">One question</string>
<string name="warning_rate_app_title_new">Rate the app</string>
<string name="warning_no_account_title">Top up your wallet</string>
<string name="warning_rate_app_message">Your review keeps us motivated to make Tangem Wallet even better</string>
<string name="warning_rate_app_title">Enjoying Tangem?</string>
<string name="warning_rent_fee_title">Network rent fee required</string>
<string name="warning_send_blocked_funds_for_fee_message">%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.</string>
<string name="warning_send_blocked_funds_for_fee_title">Insufficient %1$s to cover network fee</string>
<string name="warning_send_blocked_pending_transactions_message">Sending funds will be available once the %s transaction is complete</string>
<string name="warning_signed_tx_previously">This card has signed transactions in the past</string>
<string name="warning_subtitle_network_unreachable">Network currently is unreachable. Please try again later.</string>
<string name="warning_subtitle_some_networks_unreachable">Some networks currently are unreachable. Please try again later.</string>
<string name="warning_solana_rent_fee_message">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.</string>
<string name="warning_some_networks_unreachable_message">Some networks currently are unreachable. Please try again later.</string>
<string name="warning_some_networks_unreachable_title">Some networks are unreachable</string>
<string name="warning_testnet_card_message">This is a Testnet card. Don\'t accept it as a payment. This card must only be used for testing and development purposes.</string>
<string name="warning_title_note_top_up">Note top up</string>
<string name="warning_title_some_networks_unreachable">Some networks are unreachable</string>
<string name="welcome_interrupted_backup_alert_discard">Discard</string>
<string name="welcome_interrupted_backup_alert_message">You have an interrupted backup. Do you want to resume?</string>
<string name="welcome_interrupted_backup_alert_resume">Yes, resume</string>

View file

@ -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,
),
)
)
}
}

View file

@ -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(

View file

@ -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(