Updated on 2026-08-14
This commit is contained in:
parent
2d28d399ca
commit
092f5be9f7
10 changed files with 173 additions and 47 deletions
|
|
@ -14,28 +14,8 @@ fun ScenarioUnavailabilityReason.getUnavailabilityReasonText(): TextReference {
|
|||
formatArgs = wrappedList(unavailabilityReason.cryptoCurrencyName),
|
||||
)
|
||||
}
|
||||
is ScenarioUnavailabilityReason.PendingTransaction -> {
|
||||
when (unavailabilityReason.withdrawalScenario) {
|
||||
ScenarioUnavailabilityReason.WithdrawalScenario.SEND -> resourceReference(
|
||||
id = R.string.token_button_unavailability_reason_pending_transaction_send,
|
||||
formatArgs = wrappedList(unavailabilityReason.networkName),
|
||||
)
|
||||
ScenarioUnavailabilityReason.WithdrawalScenario.SELL -> resourceReference(
|
||||
id = R.string.token_button_unavailability_reason_pending_transaction_sell,
|
||||
formatArgs = wrappedList(unavailabilityReason.networkName),
|
||||
)
|
||||
}
|
||||
}
|
||||
is ScenarioUnavailabilityReason.EmptyBalance -> {
|
||||
when (unavailabilityReason.withdrawalScenario) {
|
||||
ScenarioUnavailabilityReason.WithdrawalScenario.SEND -> resourceReference(
|
||||
id = R.string.token_button_unavailability_reason_empty_balance_send,
|
||||
)
|
||||
ScenarioUnavailabilityReason.WithdrawalScenario.SELL -> resourceReference(
|
||||
id = R.string.token_button_unavailability_reason_empty_balance_sell,
|
||||
)
|
||||
}
|
||||
}
|
||||
is ScenarioUnavailabilityReason.PendingTransaction -> unavailabilityReason.getDescription()
|
||||
is ScenarioUnavailabilityReason.EmptyBalance -> unavailabilityReason.getDescription()
|
||||
is ScenarioUnavailabilityReason.BuyUnavailable -> {
|
||||
resourceReference(
|
||||
id = R.string.token_button_unavailability_reason_buy_unavailable,
|
||||
|
|
@ -62,8 +42,38 @@ fun ScenarioUnavailabilityReason.getUnavailabilityReasonText(): TextReference {
|
|||
ScenarioUnavailabilityReason.UnassociatedAsset -> resourceReference(
|
||||
id = R.string.warning_receive_blocked_hedera_token_association_required_message,
|
||||
)
|
||||
ScenarioUnavailabilityReason.UsedOutdatedData -> {
|
||||
resourceReference(id = R.string.token_button_unavailability_reason_out_od_date_balance)
|
||||
}
|
||||
ScenarioUnavailabilityReason.None -> {
|
||||
throw IllegalArgumentException("The unavailability reason must be other than None")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun ScenarioUnavailabilityReason.PendingTransaction.getDescription(): TextReference {
|
||||
return resourceReference(
|
||||
id = when (withdrawalScenario) {
|
||||
ScenarioUnavailabilityReason.WithdrawalScenario.SEND -> {
|
||||
R.string.token_button_unavailability_reason_pending_transaction_send
|
||||
}
|
||||
ScenarioUnavailabilityReason.WithdrawalScenario.SELL -> {
|
||||
R.string.token_button_unavailability_reason_pending_transaction_sell
|
||||
}
|
||||
},
|
||||
formatArgs = wrappedList(networkName),
|
||||
)
|
||||
}
|
||||
|
||||
private fun ScenarioUnavailabilityReason.EmptyBalance.getDescription(): TextReference {
|
||||
return resourceReference(
|
||||
id = when (withdrawalScenario) {
|
||||
ScenarioUnavailabilityReason.WithdrawalScenario.SEND -> {
|
||||
R.string.token_button_unavailability_reason_empty_balance_send
|
||||
}
|
||||
ScenarioUnavailabilityReason.WithdrawalScenario.SELL -> {
|
||||
R.string.token_button_unavailability_reason_empty_balance_sell
|
||||
}
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
@ -62,7 +62,28 @@ internal class DefaultNetworksStatusesStore(
|
|||
}
|
||||
|
||||
override suspend fun getSyncOrNull(key: UserWalletId): Set<NetworkStatus>? {
|
||||
return runtimeDataStore.getSyncOrNull(key = provideStringKey(key))
|
||||
val runtimeStatuses = runtimeDataStore.getSyncOrNull(key = provideStringKey(key)) ?: return null
|
||||
|
||||
val networks = runtimeStatuses.map(NetworkStatus::network).toSet()
|
||||
|
||||
val cachedStatuses = persistenceDataStore.data.firstOrNull()
|
||||
?.get(key.stringValue)
|
||||
?.mapNotNullTo(mutableSetOf()) { cached ->
|
||||
val network = networks.firstOrNull {
|
||||
it.id == cached.networkId &&
|
||||
it.derivationPath == NetworkDerivationPathConverter.convert(cached.derivationPath)
|
||||
}
|
||||
?: return@mapNotNullTo null
|
||||
|
||||
NetworkStatusConverter(network = network, isCached = true).convert(value = cached)
|
||||
}
|
||||
.orEmpty()
|
||||
|
||||
return mergeStatuses(
|
||||
networks = networks,
|
||||
cachedStatuses = cachedStatuses,
|
||||
runtimeStatuses = runtimeStatuses,
|
||||
)
|
||||
}
|
||||
|
||||
override suspend fun store(key: UserWalletId, value: NetworkStatus) {
|
||||
|
|
|
|||
|
|
@ -674,6 +674,8 @@
|
|||
<string name="scan_card_settings_message">Scanne die Karte oder Ring, um ihre Einstellungen zu ändern. Die Änderungen wirken sich nur auf die von dir gescannte Karte oder Ring aus und haben keine Auswirkungen auf andere mit deiner Wallet verknüpften Geräte.</string>
|
||||
<string name="scan_card_settings_title">Halte deine Karte oder Ring bereit!</string>
|
||||
<string name="security_alert_title">Sicherheitswarnung</string>
|
||||
<string name="seed_warning_no">Nein, habe ich nicht</string>
|
||||
<string name="seed_warning_yes">Ja, leite mich</string>
|
||||
<string name="selling_insufficient_balance_alert_message">Dein Konto verfügt nicht über ausreichend Guthaben, um Kryptowährungen zu verkaufen. Bitte zahle den gewünschten Vermögenswert ein, um fortzufahren.</string>
|
||||
<string name="selling_insufficient_balance_alert_title">Unzureichendes Guthaben</string>
|
||||
<string name="selling_regional_restriction_alert_message">Der Verkauf von Kryptowährung ist in Deiner Region derzeit nicht möglich. Wir arbeiten aktiv daran, Ihnen diese Option bald anzubieten – bleib dran!</string>
|
||||
|
|
@ -881,16 +883,16 @@
|
|||
<string name="swap_give_permission_fee_footer">Das Netzwerk erhebt eine Token-Genehmigungsgebühr, um zu überprüfen, ob Sie die Verwendung Ihres Tokens für den Swap genehmigen.</string>
|
||||
<string name="swap_promo_text">Tausche mehr Token zu besseren Kursen direkt in deiner Brieftasche.</string>
|
||||
<string name="swap_promo_title">Neuer Swap-Anbieter verfügbar!</string>
|
||||
<string name="swap_story_fifth_subtitle">Du kannst Dich darauf verlassen, dass Deine Transaktionen jederzeit reibungslos ablaufen, da Sie ständig geprüft werden</string>
|
||||
<string name="swap_story_fifth_title">Hilfe rund um die Uhr</string>
|
||||
<string name="swap_story_first_subtitle">Mit vertrauenswürdigen Börsenanbietern kannst Du mühelos Vermögenswerte tauschen, wobei alles sicher in Deiner Wallet verbleibt</string>
|
||||
<string name="swap_story_first_title">Tausche sich mit uns</string>
|
||||
<string name="swap_story_forth_subtitle">Höchste Sicherheit und geprüfte Anbieter gewährleisten, dass Deine Vermögenswerte bei jedem Swap geschützt sind</string>
|
||||
<string name="swap_story_forth_title">Sicherer denn je</string>
|
||||
<string name="swap_story_fifth_subtitle">Vertraue auf den rund um die Uhr verfügbaren Support bei allen Problemen</string>
|
||||
<string name="swap_story_fifth_title">Immer für Dich da</string>
|
||||
<string name="swap_story_first_subtitle">Mehrere vertrauenswürdige Anbieter an einem Ort – tausche mühelos alle Vermögenswerte in Deiner Wallet</string>
|
||||
<string name="swap_story_first_title">Tausche mit uns</string>
|
||||
<string name="swap_story_forth_subtitle">Keine Fummeleien, keine Umsätze, keine blinden Flecken – Deine Transaktion ist immer geschützt</string>
|
||||
<string name="swap_story_forth_title">Undurchdringliche Verteidigung</string>
|
||||
<string name="swap_story_second_subtitle">Maximiere Deine Wert mit Tarifen aus einem breiten Netzwerk vertrauenswürdiger Anbieter und wähle immer den Besten aus</string>
|
||||
<string name="swap_story_second_title">Bester Preis</string>
|
||||
<string name="swap_story_second_title">Unschlagbare Preise</string>
|
||||
<string name="swap_story_third_subtitle">Problemlos und intuitiv, sodass Deine Token mit nur wenigen Handgriffen getauscht werden können</string>
|
||||
<string name="swap_story_third_title">Einfacher als je zuvor</string>
|
||||
<string name="swap_story_third_title">Einfach bequem</string>
|
||||
<string name="swapping_alert_cex_description">Der Betrag umfasst:\n- Gebühr des Dienstanbieters\n- Netzgebühr für die Rücksendung von %s von der Vermittlungsstelle an die Adresse des Nutzers.</string>
|
||||
<string name="swapping_alert_cex_description_with_slippage">Der Betrag beinhaltet:\n• Honorar des Dienstleisters\n• Netzwerkgebühr für das Senden %1$s von der Börse zurück an die Adresse des Benutzers. \n\n Provider-Slippage kann bis zu %2$s</string>
|
||||
<string name="swapping_alert_dex_description">Der Betrag enthält die Gebühren des Dienstleisters.</string>
|
||||
|
|
@ -1089,6 +1091,8 @@
|
|||
<string name="warning_rate_app_title">Gefällt dir Tangem?</string>
|
||||
<string name="warning_receive_blocked_hedera_token_association_required_message">Du musst deinen Token zuordnen, bevor du Token erhalten kannst</string>
|
||||
<string name="warning_rent_fee_title">Netzmietgebühr erforderlich</string>
|
||||
<string name="warning_seedphrase_action_required_title">Handlungsbedarf</string>
|
||||
<string name="warning_seedphrase_contacted_support">Hast Du innerhalb von 7 Tagen nach dem Erstellen einer Wallet per App oder E-Mail Kontakt zum Support aufgenommen? Wenn ja oder wenn Du Dir nicht sicher bist, befolge die Anweisungen und führe diese vollständig aus.</string>
|
||||
<string name="warning_seedphrase_issue_answer_no">Vielen Dank! Alles erledigt! Keine weiteren Maßnahmen erforderlich.</string>
|
||||
<string name="warning_seedphrase_issue_answer_yes">Sie werden jetzt auf die offizielle Tangem-Website weitergeleitet. Bitte lesen und befolgen Sie dort die Anweisungen.</string>
|
||||
<string name="warning_seedphrase_issue_message">Hast Du das Tangem-Supportteam schon einmal direkt über diese Anwendung kontaktiert?</string>
|
||||
|
|
|
|||
|
|
@ -674,6 +674,8 @@
|
|||
<string name="scan_card_settings_message">Escanee la tarjeta o el anillo para cambiar su configuración. Los cambios afectarán solo a la tarjeta o el anillo que haya escaneado y no afectarán a otros dispositivos vinculados a su billetera.</string>
|
||||
<string name="scan_card_settings_title">¡Prepare su tarjeta/anillo!</string>
|
||||
<string name="security_alert_title">Alerta de seguridad</string>
|
||||
<string name="seed_warning_no">No, no lo hice</string>
|
||||
<string name="seed_warning_yes">Sí, guíame</string>
|
||||
<string name="selling_insufficient_balance_alert_message">No tiene fondos suficientes en su saldo para vender esta criptomoneda. Deposite el activo deseado para continuar.</string>
|
||||
<string name="selling_insufficient_balance_alert_title">Saldo insuficiente</string>
|
||||
<string name="selling_regional_restriction_alert_message">La venta de criptomonedas no está disponible en su región en este momento. Estamos trabajando activamente para ofrecerle esta opción pronto. ¡Manténgase conectado!</string>
|
||||
|
|
@ -881,16 +883,16 @@
|
|||
<string name="swap_give_permission_fee_footer">La red cobrará una tarifa de aprobación de token para verificar que está autorizando el uso de su token para el swap.</string>
|
||||
<string name="swap_promo_text">Intercambie más tokens a mejores tasas directamente en su billetera.</string>
|
||||
<string name="swap_promo_title">¡Nuevo proveedor de intercambio disponible!</string>
|
||||
<string name="swap_story_fifth_subtitle">Siéntase seguro con un soporte constante, lo que garantiza que sus transacciones se realicen sin problemas en cualquier momento</string>
|
||||
<string name="swap_story_fifth_title">Asistencia 24 horas al día</string>
|
||||
<string name="swap_story_first_subtitle">Los proveedores de intercambio de confianza le permiten intercambiar activos sin esfuerzo, manteniendo todo seguro en su billetera</string>
|
||||
<string name="swap_story_fifth_subtitle">Siéntase seguro con una asistencia permanente que le ayudará con cualquier problema</string>
|
||||
<string name="swap_story_fifth_title">Siempre aquí</string>
|
||||
<string name="swap_story_first_subtitle">Múltiples proveedores de confianza en un solo lugar: intercambie cualquier activo sin esfuerzo en su billetera</string>
|
||||
<string name="swap_story_first_title">Intercambie con nosotros</string>
|
||||
<string name="swap_story_forth_subtitle">La seguridad de alto nivel y los proveedores verificados garantizan la protección de sus activos en cada intercambio</string>
|
||||
<string name="swap_story_forth_title">Más seguro que nunca</string>
|
||||
<string name="swap_story_forth_subtitle">Sin cuelgues, sin pérdidas, sin puntos ciegos - su transacción siempre está protegida</string>
|
||||
<string name="swap_story_forth_title">Defensa impenetrable</string>
|
||||
<string name="swap_story_second_subtitle">Maximice su valor con tarifas de una amplia red de proveedores de confianza, eligiendo siempre la mejor</string>
|
||||
<string name="swap_story_second_title">Las mejores tarifas</string>
|
||||
<string name="swap_story_second_title">Tarifas inmejorables</string>
|
||||
<string name="swap_story_third_subtitle">Sencillo e intuitivo, permite cambiar tokens con solo unos cuantos toques</string>
|
||||
<string name="swap_story_third_title">Más fácil que nunca</string>
|
||||
<string name="swap_story_third_title">Simplemente cómodo</string>
|
||||
<string name="swapping_alert_cex_description">La cantidad incluye:\n• Tarifas del proveedor de servicios\n• Tarifas de red por enviar %s desde el intercambio a la dirección del usuario.</string>
|
||||
<string name="swapping_alert_cex_description_with_slippage">El monto incluye:\n• tarifas del proveedor de servicios\n• tarifas de red por enviar %1$s desde el intercambio a la dirección del usuario. \n\nEl slippage del proveedor puede alcanzar el %2$s</string>
|
||||
<string name="swapping_alert_dex_description">El importe incluye los honorarios del proveedor de servicios.</string>
|
||||
|
|
@ -978,7 +980,7 @@
|
|||
<string name="user_wallet_list_unlock_all_with">Desbloquear todo con %s</string>
|
||||
<string name="wallet_balance_blockchain_unreachable_try_later">La blockchain está Inaccesible. Inténtelo más tarde</string>
|
||||
<string name="wallet_balance_missing_derivation">Escanee la tarjeta o el anillo</string>
|
||||
<string name="wallet_been_activated_message">Esta billetera ya ha sido activada anteriormente.\nSi no fue usted quien lo hizo, comuníquese con el servicio de asistencia.\nTangem nunca vende billeteras junto con un código de acceso generado previamente.</string>
|
||||
<string name="wallet_been_activated_message">Esta billetera ya ha sido activada anteriormente.\nSi no fue usted quien lo hizo, comuníquese con el servicio de asistencia.\nTangem nunca vende billeteras con un código de acceso pre generado.</string>
|
||||
<string name="wallet_connect_alert_sign_message">Solicitud para firmar un mensaje.\n\n%s</string>
|
||||
<string name="wallet_connect_bnb_sign_message">Dapp %1$s, solicitando\nfirmar transacción BNB.\n\n%2$s</string>
|
||||
<string name="wallet_connect_bnb_trade_order_message">Orden de intercambio por %1$s\nPrecio: %2$s\nCantidad a recibir: %3$s\nCantidad a pagar: %4$s</string>
|
||||
|
|
@ -1089,6 +1091,8 @@
|
|||
<string name="warning_rate_app_title">¿Disfrutando de Tangem?</string>
|
||||
<string name="warning_receive_blocked_hedera_token_association_required_message">Deba asociar su token antes de recibir tokens</string>
|
||||
<string name="warning_rent_fee_title">Se requiere tarifa de alquiler de red</string>
|
||||
<string name="warning_seedphrase_action_required_title">Acción requerida</string>
|
||||
<string name="warning_seedphrase_contacted_support">¿Te pusiste en contacto con el servicio de asistencia a través de la aplicación o por correo electrónico en los 7 días posteriores a la creación de la billetera? Si lo hiciste o no estás seguro, sigue y completa las instrucciones.</string>
|
||||
<string name="warning_seedphrase_issue_answer_no">¡Gracias! ¡Todo listo! No se requieren más acciones.</string>
|
||||
<string name="warning_seedphrase_issue_answer_yes">Ahora será redirigido al sitio web oficial de Tangem. Por favor, lea y siga las instrucciones allí indicadas.</string>
|
||||
<string name="warning_seedphrase_issue_message">¿Alguna vez contactó al equipo de soporte de Tangem directamente desde esta aplicación?</string>
|
||||
|
|
|
|||
|
|
@ -271,6 +271,8 @@
|
|||
<string name="express_exchange_by">Échange par %s</string>
|
||||
<string name="express_exchange_notification_failed_text">Visitez le site Web du fournisseur pour obtenir un remboursement</string>
|
||||
<string name="express_exchange_notification_failed_title">Opération échouée par le fournisseur</string>
|
||||
<string name="express_exchange_notification_long_transaction_time_text">Votre échange prend plus de temps que prévu. Veuillez contacter le support du fournisseur pour obtenir de l\'aide.</string>
|
||||
<string name="express_exchange_notification_long_transaction_time_title">Longue durée des transactions</string>
|
||||
<string name="express_exchange_notification_refund_text">Le montant de la transaction a été remboursé en %1$s sur votre portefeuille en raison des règles OKX ou du pont. %2$s</string>
|
||||
<string name="express_exchange_notification_refund_title">Le montant a été remboursé en %1$s (réseau %2$s)</string>
|
||||
<string name="express_exchange_notification_verification_text">Visitez le site Web du fournisseur pour la vérification</string>
|
||||
|
|
@ -674,6 +676,8 @@
|
|||
<string name="scan_card_settings_message">Scannez la carte pour modifier ses paramètres. Les modifications n\'affecteront que la carte que vous avez scannée et n\'affecteront pas les autres cartes liées à votre portefeuille.</string>
|
||||
<string name="scan_card_settings_title">Préparez votre carte !</string>
|
||||
<string name="security_alert_title">Alerte de sécurité</string>
|
||||
<string name="seed_warning_no">Non</string>
|
||||
<string name="seed_warning_yes">Oui, guidez-moi</string>
|
||||
<string name="selling_insufficient_balance_alert_message">Vous n\'avez pas assez de fonds sur votre solde pour vendre cette cryptomonnaie. Veuillez déposer l\'actif souhaité pour continuer.</string>
|
||||
<string name="selling_insufficient_balance_alert_title">Solde insuffisant</string>
|
||||
<string name="selling_regional_restriction_alert_message">La vente de cryptomonnaies n\'est pas disponible dans votre région pour le moment. Nous travaillons activement pour vous proposer cette option prochainement. Restez connecté !</string>
|
||||
|
|
@ -1089,6 +1093,8 @@
|
|||
<string name="warning_rate_app_title">Vous appréciez Tangem ?</string>
|
||||
<string name="warning_receive_blocked_hedera_token_association_required_message">Vous devez associer votre jeton avant de recevoir des jetons</string>
|
||||
<string name="warning_rent_fee_title">Frais de location de réseau requis</string>
|
||||
<string name="warning_seedphrase_action_required_title">Action requise</string>
|
||||
<string name="warning_seedphrase_contacted_support">Avez-vous contacté l\'assistance via l\'application ou par e-mail dans les 7 jours suivant la création d\'un portefeuille ? Si vous l\'avez fait ou si vous n\'êtes pas sûr, suivez et complétez les instructions.</string>
|
||||
<string name="warning_seedphrase_issue_answer_no">Merci ! Tout est en ordre ! Aucune autre action n\'est requise.</string>
|
||||
<string name="warning_seedphrase_issue_answer_yes">Vous allez être redirigé vers le site officiel de Tangem. Veuillez lire et suivre les instructions qui y sont indiquées.</string>
|
||||
<string name="warning_seedphrase_issue_message">Avez-vous déjà contacté l\'équipe de support Tangem directement depuis cette application ?</string>
|
||||
|
|
@ -1103,6 +1109,7 @@
|
|||
<string name="warning_some_token_balances_not_updated">Certains soldes de jetons n\'ont pas pu être mis à jour</string>
|
||||
<string name="warning_testnet_card_message">Il s\'agit d\'une carte Testnet. Elle ne peut pas traiter les transactions et ne doit être utilisée qu\'à des fins de test et de développement.</string>
|
||||
<string name="warning_testnet_card_title">À des fins de test uniquement</string>
|
||||
<string name="warning_token_balance_not_updated">Le solde peut être obsolète. Rafraîchissez la page.</string>
|
||||
<string name="welcome_interrupted_backup_alert_discard">Ignorer</string>
|
||||
<string name="welcome_interrupted_backup_alert_message">Vous avez une sauvegarde interrompue. Voulez-vous la reprendre ?</string>
|
||||
<string name="welcome_interrupted_backup_alert_resume">Oui, reprendre</string>
|
||||
|
|
|
|||
|
|
@ -268,6 +268,8 @@
|
|||
<string name="express_exchange_by">%sによる交換</string>
|
||||
<string name="express_exchange_notification_failed_text">返金を受けるには、プロバイダーのウェブサイトにアクセスしてください。</string>
|
||||
<string name="express_exchange_notification_failed_title">プロバイダーによる操作が失敗しました。</string>
|
||||
<string name="express_exchange_notification_long_transaction_time_text">スワップに予想以上の時間がかかっています。プロバイダーサポートにお問い合わせください。</string>
|
||||
<string name="express_exchange_notification_long_transaction_time_title">長い取引時間</string>
|
||||
<string name="express_exchange_notification_refund_text">OKXまたはブリッジのルールにより、取引金額は%1$sでウォレットに返金されました。%2$s</string>
|
||||
<string name="express_exchange_notification_refund_title">金額は %1$s(%2$sネットワーク)で返金されました</string>
|
||||
<string name="express_exchange_notification_verification_text">確認するには、プロバイダーのウェブサイトにアクセスしてください。</string>
|
||||
|
|
@ -664,6 +666,8 @@
|
|||
<string name="scan_card_settings_message">カードまたはリングをスキャンして設定を変更します。変更はスキャンしたカードまたはリングにのみ影響し、ウォレットに関連付けられている他のデバイスには影響しません。</string>
|
||||
<string name="scan_card_settings_title">Tangemを準備してください!</string>
|
||||
<string name="security_alert_title">セキュリティ警告</string>
|
||||
<string name="seed_warning_no">いいえ、しませんでした</string>
|
||||
<string name="seed_warning_yes">はい、案内してください</string>
|
||||
<string name="selling_insufficient_balance_alert_message">暗号通貨を売却するための十分な資金が残高にありません。続行するには希望の資産を入金してください。</string>
|
||||
<string name="selling_insufficient_balance_alert_title">残高不足</string>
|
||||
<string name="selling_regional_restriction_alert_message">現在、お住まいの地域では暗号資産の売却はご利用いただけません。このオプションをすぐにご利用いただけるよう積極的に取り組んでいますので、お楽しみに!</string>
|
||||
|
|
@ -1078,6 +1082,8 @@
|
|||
<string name="warning_rate_app_title">Tangemを楽しんでいますか?</string>
|
||||
<string name="warning_receive_blocked_hedera_token_association_required_message">トークンを受け取る前に、トークンを関連付ける必要があります。</string>
|
||||
<string name="warning_rent_fee_title">ネットワーク使用料が必要です</string>
|
||||
<string name="warning_seedphrase_action_required_title">対応が必要です</string>
|
||||
<string name="warning_seedphrase_contacted_support">ウォレットを作成してから7日以内にアプリまたはEメール経由でサポートに連絡しましたか?連絡したか不明な場合は、手順に従って完了してください。</string>
|
||||
<string name="warning_seedphrase_issue_answer_no">ありがとうございます。準備完了です。これ以上の操作は必要ありません。</string>
|
||||
<string name="warning_seedphrase_issue_answer_yes">Tangemの公式ウェブサイトに移動します。そちらの指示に従ってください。</string>
|
||||
<string name="warning_seedphrase_issue_message">このアプリ経由でTangemサポートチームに直接連絡したことがありますか?</string>
|
||||
|
|
@ -1092,6 +1098,7 @@
|
|||
<string name="warning_some_token_balances_not_updated">一部のトークン残高を更新できませんでした</string>
|
||||
<string name="warning_testnet_card_message">これはテストネットカードです。取引処理はできませんので、テストおよび開発目的でのみご利用ください。</string>
|
||||
<string name="warning_testnet_card_title">テスト目的のみ</string>
|
||||
<string name="warning_token_balance_not_updated">残高が古い可能性があります。ページを更新してください。</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>
|
||||
|
|
|
|||
|
|
@ -271,6 +271,8 @@
|
|||
<string name="express_exchange_by">Exchange by %s</string>
|
||||
<string name="express_exchange_notification_failed_text">Visit provider’s website to refund your money</string>
|
||||
<string name="express_exchange_notification_failed_title">Operation failed by provider</string>
|
||||
<string name="express_exchange_notification_long_transaction_time_text">Your swap is taking longer than expected. Please go to provider support for assistance.</string>
|
||||
<string name="express_exchange_notification_long_transaction_time_title">Long transaction time</string>
|
||||
<string name="express_exchange_notification_refund_text">The transaction amount was refunded in %1$s to your wallet due to OKX or bridge rules. %2$s</string>
|
||||
<string name="express_exchange_notification_refund_title">The amount was refunded in %1$s (%2$s network)</string>
|
||||
<string name="express_exchange_notification_verification_text">Visit provider’s website for verification</string>
|
||||
|
|
@ -813,6 +815,10 @@
|
|||
<string name="staking_notification_low_staked_balance_title">Low staked balance</string>
|
||||
<string name="staking_notification_minimum_balance_error_text">A minimum of %1$s %2$s is required for restaking. Please top up your balance.</string>
|
||||
<string name="staking_notification_minimum_balance_error_title">Not enough %s</string>
|
||||
<string name="staking_notification_minimum_balance_title"> Insufficient Balance for Staking</string>
|
||||
<string name="staking_notification_minimum_restake_ada_text">A minimum of 3 ADA is required for restaking. Please top up your balance.</string>
|
||||
<string name="staking_notification_minimum_restake_ada_title">Not enough ADA</string>
|
||||
<string name="staking_notification_minimum_stake_ada_text">The minimum amount required for staking must exceed 5 ADA. Please top up your balance to start staking.</string>
|
||||
<string name="staking_notification_network_error_text">Staking is currently unavailable due to network conditions. Please try again later.</string>
|
||||
<string name="staking_notification_new_validator_funds_transfer">Staking on the %1$s network with a new validator will automatically transfer all previously staked funds to this validator.</string>
|
||||
<string name="staking_notification_restake_rewards_text">Reinvests your earned rewards in your staked amount, increasing potential earnings.</string>
|
||||
|
|
@ -918,6 +924,7 @@
|
|||
<string name="token_button_unavailability_reason_empty_balance_sell">You do not have funds to sell. Top up your account to be able to sell funds from it.</string>
|
||||
<string name="token_button_unavailability_reason_empty_balance_send">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_not_exchangeable">Swapping %s is not supported by current providers, but we are working to add more options.</string>
|
||||
<string name="token_button_unavailability_reason_out_od_date_balance">The displayed balance might be outdated due to caching.</string>
|
||||
<string name="token_button_unavailability_reason_pending_transaction_sell">Selling funds will be available once the pending transaction(s) on the %s network is complete.</string>
|
||||
<string name="token_button_unavailability_reason_pending_transaction_send">Sending funds will be available once the pending transaction(s) in network %s is complete</string>
|
||||
<string name="token_button_unavailability_reason_sell_unavailable">Selling %s is not supported by current providers, but we are working to add more options.</string>
|
||||
|
|
@ -1107,6 +1114,7 @@
|
|||
<string name="warning_some_token_balances_not_updated">Some token balances could not be updated</string>
|
||||
<string name="warning_testnet_card_message">This is a Testnet card. It cannot process transactions and should only be used for testing and development purposes.</string>
|
||||
<string name="warning_testnet_card_title">For testing purposes only</string>
|
||||
<string name="warning_token_balance_not_updated">Balance may be outdated. Refresh the page.</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>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ package com.tangem.domain.tokens.model
|
|||
sealed class ScenarioUnavailabilityReason {
|
||||
data object None : ScenarioUnavailabilityReason()
|
||||
|
||||
data object UsedOutdatedData : ScenarioUnavailabilityReason()
|
||||
|
||||
// staking-specific
|
||||
data class StakingUnavailable(val cryptoCurrencyName: String) : ScenarioUnavailabilityReason()
|
||||
|
||||
|
|
|
|||
|
|
@ -115,15 +115,18 @@ sealed class TokenScreenAnalyticsEvent(
|
|||
|
||||
fun ScenarioUnavailabilityReason.toReasonAnalyticsText(): String {
|
||||
return when (this) {
|
||||
is ScenarioUnavailabilityReason.BuyUnavailable -> UNAVAILABLE
|
||||
is ScenarioUnavailabilityReason.BuyUnavailable,
|
||||
is ScenarioUnavailabilityReason.NotExchangeable,
|
||||
is ScenarioUnavailabilityReason.NotSupportedBySellService,
|
||||
is ScenarioUnavailabilityReason.StakingUnavailable,
|
||||
ScenarioUnavailabilityReason.UnassociatedAsset,
|
||||
-> UNAVAILABLE
|
||||
is ScenarioUnavailabilityReason.EmptyBalance -> EMPTY
|
||||
ScenarioUnavailabilityReason.None -> ""
|
||||
is ScenarioUnavailabilityReason.NotExchangeable -> UNAVAILABLE
|
||||
is ScenarioUnavailabilityReason.NotSupportedBySellService -> UNAVAILABLE
|
||||
is ScenarioUnavailabilityReason.PendingTransaction -> PENDING
|
||||
is ScenarioUnavailabilityReason.StakingUnavailable -> UNAVAILABLE
|
||||
ScenarioUnavailabilityReason.UnassociatedAsset -> UNAVAILABLE
|
||||
ScenarioUnavailabilityReason.Unreachable -> ""
|
||||
ScenarioUnavailabilityReason.None,
|
||||
ScenarioUnavailabilityReason.Unreachable,
|
||||
ScenarioUnavailabilityReason.UsedOutdatedData,
|
||||
-> ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.tangem.domain.tokens
|
|||
|
||||
import com.tangem.domain.common.util.cardTypesResolver
|
||||
import com.tangem.domain.exchange.RampStateManager
|
||||
import com.tangem.domain.models.StatusSource
|
||||
import com.tangem.domain.promo.PromoRepository
|
||||
import com.tangem.domain.promo.models.StoryContentIds
|
||||
import com.tangem.domain.staking.model.StakingAvailability
|
||||
|
|
@ -50,7 +51,7 @@ class GetCryptoCurrencyActionsUseCase(
|
|||
currencyStatusOperations.getPrimaryCurrencyStatusFlow(userWallet.walletId, includeQuotes = false)
|
||||
} else {
|
||||
currencyStatusOperations.getNetworkCoinFlow(
|
||||
userWallet.walletId,
|
||||
userWalletId = userWallet.walletId,
|
||||
networkId = networkId,
|
||||
derivationPath = cryptoCurrencyStatus.currency.network.derivationPath,
|
||||
includeQuotes = false,
|
||||
|
|
@ -113,6 +114,10 @@ class GetCryptoCurrencyActionsUseCase(
|
|||
return getActionsForUnreachableCurrency(userWallet, cryptoCurrencyStatus, requirements)
|
||||
}
|
||||
|
||||
if (cryptoCurrencyStatus.value.source != StatusSource.ACTUAL) {
|
||||
return getActionsForOutdatedData(userWallet, cryptoCurrencyStatus, requirements)
|
||||
}
|
||||
|
||||
val activeList = mutableListOf<TokenActionsState.ActionState>()
|
||||
val disabledList = mutableListOf<TokenActionsState.ActionState>()
|
||||
|
||||
|
|
@ -257,6 +262,61 @@ class GetCryptoCurrencyActionsUseCase(
|
|||
return actionsList
|
||||
}
|
||||
|
||||
private suspend fun getActionsForOutdatedData(
|
||||
userWallet: UserWallet,
|
||||
cryptoCurrencyStatus: CryptoCurrencyStatus,
|
||||
requirements: AssetRequirementsCondition?,
|
||||
): List<TokenActionsState.ActionState> {
|
||||
val activeList = mutableListOf<TokenActionsState.ActionState>()
|
||||
|
||||
// copy address
|
||||
if (isAddressAvailable(cryptoCurrencyStatus.value.networkAddress)) {
|
||||
activeList.add(TokenActionsState.ActionState.CopyAddress(ScenarioUnavailabilityReason.None))
|
||||
}
|
||||
|
||||
// receive
|
||||
if (isAddressAvailable(cryptoCurrencyStatus.value.networkAddress)) {
|
||||
val scenario = getReceiveScenario(requirements)
|
||||
activeList.add(TokenActionsState.ActionState.Receive(scenario))
|
||||
}
|
||||
|
||||
// swap
|
||||
activeList.add(
|
||||
TokenActionsState.ActionState.Swap(
|
||||
unavailabilityReason = ScenarioUnavailabilityReason.UsedOutdatedData,
|
||||
showBadge = false,
|
||||
),
|
||||
)
|
||||
|
||||
// buy
|
||||
if (rampManager.availableForBuy(userWallet.scanResponse, userWallet.walletId, cryptoCurrencyStatus.currency)) {
|
||||
activeList.add(TokenActionsState.ActionState.Buy(ScenarioUnavailabilityReason.None))
|
||||
} else {
|
||||
activeList.add(
|
||||
TokenActionsState.ActionState.Buy(
|
||||
ScenarioUnavailabilityReason.BuyUnavailable(
|
||||
cryptoCurrencyName = cryptoCurrencyStatus.currency.name,
|
||||
),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
// staking
|
||||
activeList.add(TokenActionsState.ActionState.Stake(ScenarioUnavailabilityReason.UsedOutdatedData, null))
|
||||
|
||||
// send
|
||||
activeList.add(TokenActionsState.ActionState.Send(ScenarioUnavailabilityReason.UsedOutdatedData))
|
||||
|
||||
// region sell
|
||||
activeList.add(TokenActionsState.ActionState.Sell(ScenarioUnavailabilityReason.UsedOutdatedData))
|
||||
// endregion
|
||||
|
||||
// hide
|
||||
activeList.add(TokenActionsState.ActionState.HideToken(ScenarioUnavailabilityReason.None))
|
||||
|
||||
return activeList
|
||||
}
|
||||
|
||||
private fun getReceiveScenario(requirements: AssetRequirementsCondition?): ScenarioUnavailabilityReason {
|
||||
return if (requirements is AssetRequirementsCondition.PaidTransaction ||
|
||||
requirements is AssetRequirementsCondition.PaidTransactionWithFee
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue