Updated on 2026-08-14

This commit is contained in:
Tangem 2024-04-17 10:42:01 +03:00
parent f8b66b9637
commit f117e5a246
7 changed files with 44 additions and 13 deletions

View file

@ -427,7 +427,7 @@
<string name="send_additional_field_already_included">Уже содержится в введенном адресе</string>
<string name="send_alert_fee_coverage_subract_text">Вычесть</string>
<string name="send_alert_fee_coverage_title">Недостаточно средств для покрытия комиссии сети. Вычесть недостающую сумму для покрытия комиссии из отправляемой суммы?</string>
<string name="send_alert_fee_too_high_text">Сумма комиссии в %@ раз превышает рекомендованную. Убедитесь, что указанная комиссия верна.</string>
<string name="send_alert_fee_too_high_text">Сумма комиссии в %s раз превышает рекомендованную. Убедитесь, что указанная комиссия верна.</string>
<string name="send_alert_fee_too_low_text">Вы указали комиссию ниже рекомендуемой, это может привести к задержке исполнения вашей транзакции. Продолжить?</string>
<string name="send_alert_transaction_failed_text">Причина: %1$s\nКод: %2$s</string>
<string name="send_alert_transaction_failed_title">Транзакция не выполнена</string>
@ -537,9 +537,9 @@
<string name="toast_balances_hidden">Балансы скрыты</string>
<string name="toast_balances_shown">Балансы показаны</string>
<string name="toast_undo">Отменить</string>
<string name="token_button_unavailability_generic_description">Выбранная операция в данный момент недоступна. Попробуйте позже.</string>
<string name="token_button_unavailability_reason_buy_unavailable">В данный момент покупка монеты %s недоступна. Но мы работаем над её добавлением.</string>
<string name="token_button_unavailability_reason_empty_balance">У вас нет средств для отправки. Пополните счет, чтобы иметь возможность отправить с него средства.</string>
<string name="token_button_unavailability_reason_no_quotes">Выбранная операция в данный момент недоступна. Попробуйте позже.</string>
<string name="token_button_unavailability_reason_not_exchangeable">Обмен %s не доступен. Но мы работаем над его добавлением.</string>
<string name="token_button_unavailability_reason_sell_unavailable">В данный момент продажа монеты %s недоступна. Но мы работаем над её добавлением.</string>
<string name="token_details_generate_xpub">Сгенерировать XPUB</string>
@ -548,6 +548,7 @@
<string name="token_details_hide_alert_title">Скрыть %s</string>
<string name="token_details_hide_token">Скрыть токен</string>
<string name="token_details_token_type_subtitle">%1$s токен в сети %%image%% %2$s</string>
<string name="token_details_token_type_subtitle_no_standard">Токен в сети %%image%% %1$s</string>
<string name="token_details_unable_hide_alert_message">Токен %1$s является основной валютой в сети %2$s и не может быть скрыт до тех пор, пока у вас в списке есть другие токены этой сети.</string>
<string name="token_details_unable_hide_alert_title">Невозможно скрыть %s</string>
<string name="token_swap_changelly_promotion_message">Обменивайте этот токен на другие с %1$s комиссии за обслуживание с %2$s по %3$s февраля.</string>

View file

@ -534,9 +534,9 @@
<string name="toast_balances_hidden">Balances hidden</string>
<string name="toast_balances_shown">Balances shown</string>
<string name="toast_undo">Undo</string>
<string name="token_button_unavailability_generic_description">This operation is currently unavailable. Please try again later.</string>
<string name="token_button_unavailability_reason_buy_unavailable">The purchase of the %s is currently unavailable. But we are working on adding it.</string>
<string name="token_button_unavailability_reason_empty_balance">You do not have funds to send. Top up your account to be able to send funds from it.</string>
<string name="token_button_unavailability_reason_no_quotes">This operation is currently unavailable. Please try again later.</string>
<string name="token_button_unavailability_reason_not_exchangeable">%s swap is not available. But we are working on adding it.</string>
<string name="token_button_unavailability_reason_sell_unavailable">Sell of the %s coin is currently unavailable. But we are working on adding it.</string>
<string name="token_details_generate_xpub">Generate XPUB</string>
@ -545,6 +545,7 @@
<string name="token_details_hide_alert_title">Hide %s</string>
<string name="token_details_hide_token">Hide token</string>
<string name="token_details_token_type_subtitle">%1$s token in %%image%% %2$s network</string>
<string name="token_details_token_type_subtitle_no_standard">Token in %%image%% %1$s network</string>
<string name="token_details_unable_hide_alert_message">The %1$s token is the main currency on the %2$s network and cannot be hidden as long as you have other tokens on this network in the list.</string>
<string name="token_details_unable_hide_alert_title">Unable to hide %s</string>
<string name="token_swap_changelly_promotion_message">Exchange this token for another at %1$s service fees from February %2$s-%3$s.</string>

View file

@ -57,6 +57,21 @@ internal object TokenDetailsPreviewData {
),
)
val tokenInfoBlockStateWithLongNameNoStandard = TokenInfoBlockState(
name = "Tether (USDT) with long name test",
iconState = TokenInfoBlockState.IconState.TokenIcon(
url = "https://s3.eu-central-1.amazonaws.com/tangem.api/coins/large/stellar.png",
fallbackTint = Color.Cyan,
fallbackBackground = Color.Blue,
isGrayscale = false,
),
currency = TokenInfoBlockState.Currency.Token(
standardName = null,
networkIcon = R.drawable.img_shibarium_22,
networkName = "Shibarium",
),
)
val tokenInfoBlockState = TokenInfoBlockState(
name = "Tether USDT",
iconState = TokenInfoBlockState.IconState.CustomTokenIcon(

View file

@ -19,7 +19,7 @@ internal data class TokenInfoBlockState(
* @param networkIcon - token's network icon.
*/
data class Token(
val standardName: String,
val standardName: String?,
val networkName: String,
@DrawableRes val networkIcon: Int,
) : Currency()

View file

@ -8,6 +8,7 @@ import com.tangem.core.ui.extensions.networkIconResId
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.res.TangemTheme
import com.tangem.domain.tokens.model.CryptoCurrency
import com.tangem.domain.tokens.model.Network
import com.tangem.feature.tokendetails.presentation.tokendetails.state.*
import com.tangem.feature.tokendetails.presentation.tokendetails.state.components.TokenDetailsActionButton
import com.tangem.feature.tokendetails.presentation.tokendetails.state.components.TokenDetailsPullToRefreshConfig
@ -40,7 +41,7 @@ internal class TokenDetailsSkeletonStateConverter(
currency = when (value) {
is CryptoCurrency.Coin -> TokenInfoBlockState.Currency.Native
is CryptoCurrency.Token -> TokenInfoBlockState.Currency.Token(
standardName = value.network.standardType.name,
standardName = value.network.standardType.getSpecifiedNameOrNull(),
networkName = value.network.name,
networkIcon = value.networkIconResId,
)
@ -65,6 +66,9 @@ internal class TokenDetailsSkeletonStateConverter(
)
}
private fun Network.StandardType.getSpecifiedNameOrNull(): String? =
name.takeIf { this !is Network.StandardType.Unspecified }
private fun createMenu(cryptoCurrency: CryptoCurrency): TokenDetailsAppBarMenuConfig = TokenDetailsAppBarMenuConfig(
items = buildList {
if (featureToggles.isGenerateXPubEnabled() && isBitcoin(cryptoCurrency.network.id.value)) {

View file

@ -105,13 +105,22 @@ private const val SEPARATOR = " %image% "
@Composable
private fun extractNetwork(tokenCurrency: TokenInfoBlockState.Currency.Token): ExtractedTokenNetworkText {
val splitString = stringResource(
id = R.string.token_details_token_type_subtitle,
formatArgs = arrayOf(
tokenCurrency.standardName,
tokenCurrency.networkName,
),
).split(SEPARATOR)
val splitString = if (tokenCurrency.standardName != null) {
stringResource(
id = R.string.token_details_token_type_subtitle,
formatArgs = arrayOf(
tokenCurrency.standardName,
tokenCurrency.networkName,
),
).split(SEPARATOR)
} else {
stringResource(
id = R.string.token_details_token_type_subtitle_no_standard,
formatArgs = arrayOf(
tokenCurrency.networkName,
),
).split(SEPARATOR)
}
return remember(splitString) {
ExtractedTokenNetworkText(
@ -153,5 +162,6 @@ private class TokenInfoStateProvider : CollectionPreviewParameterProvider<TokenI
TokenDetailsPreviewData.tokenInfoBlockState,
TokenDetailsPreviewData.tokenInfoBlockStateWithLongName,
TokenDetailsPreviewData.tokenInfoBlockStateWithLongNameInMainCurrency,
TokenDetailsPreviewData.tokenInfoBlockStateWithLongNameNoStandard,
),
)

@ -1 +1 @@
Subproject commit 0e4934995b8e7c69862ef80362e86bd166bd1288
Subproject commit d8e6da9ab3a0442657822352cb6274237d88e77d