Updated on 2026-08-14
This commit is contained in:
parent
872df0ecb7
commit
9b4b339b8d
23 changed files with 278 additions and 81 deletions
|
|
@ -139,6 +139,7 @@
|
|||
<string name="common_fee_selector_option_market">Markt</string>
|
||||
<string name="common_fee_selector_option_slow">Langsam</string>
|
||||
<string name="common_fee_selector_title">Gebühren</string>
|
||||
<string name="common_finish">Beenden</string>
|
||||
<string name="common_generate_addresses">Adressen synchronisieren</string>
|
||||
<string name="common_go_to_provider">Zum Anbieter gehen</string>
|
||||
<string name="common_go_to_token">Zum Token</string>
|
||||
|
|
@ -158,6 +159,7 @@
|
|||
<string name="common_no_address">Keine Adresse</string>
|
||||
<string name="common_now">Jetzt</string>
|
||||
<string name="common_ok">OK</string>
|
||||
<string name="common_open_in_browser">Im Browser öffnen</string>
|
||||
<string name="common_origin_card">Hauptkarte oder Ring</string>
|
||||
<string name="common_origin_ring">Primärring</string>
|
||||
<string name="common_passphrase">Passphrase</string>
|
||||
|
|
@ -181,6 +183,7 @@
|
|||
<string name="common_send">Senden</string>
|
||||
<string name="common_server_unavailable">Der Server ist nicht verfügbar. Bitte versuche es später erneut.</string>
|
||||
<string name="common_share">Teilen</string>
|
||||
<string name="common_share_link">Link teilen</string>
|
||||
<string name="common_sign">Signieren</string>
|
||||
<string name="common_sign_and_send">Signieren und senden</string>
|
||||
<string name="common_stake">Staken</string>
|
||||
|
|
@ -495,6 +498,10 @@
|
|||
<string name="markets_tooltip_message">Rufe dies auf oder tippe auf die Suchleiste, um Token direkt vom Markt hinzuzufügen</string>
|
||||
<string name="markets_tooltip_title">Token hinzufügen</string>
|
||||
<string name="nfc_error_unavailable">NFC ist auf deinem Gerät nicht verfügbar</string>
|
||||
<string name="nft_wallet_count">%1$d NFTs in der %2$d Sammlung</string>
|
||||
<string name="nft_wallet_receive_nft">Tippe hier, um das erste NFT zu erhalten</string>
|
||||
<string name="nft_wallet_title">NFT-Sammlungen</string>
|
||||
<string name="nft_wallet_unable_to_load">Die Daten konnten nicht geladen werden</string>
|
||||
<string name="onboarding_access_code_feature_1_description">Du musst einen einzigen Zugangscode einrichten, um alle deine Geräte zu schützen</string>
|
||||
<string name="onboarding_access_code_feature_1_title">Schützen</string>
|
||||
<string name="onboarding_access_code_feature_2_description">Du kannst später auf jeder Karte oder Ring einen individuellen Zugangscode einrichten</string>
|
||||
|
|
@ -760,6 +767,8 @@
|
|||
<string name="send_summary_transaction_description_suffix_including">inklusive einer Netzgebühr von %1$s</string>
|
||||
<string name="send_transaction_success">Die Transaktion wurde erfolgreich signiert und an den Blockchain-Knoten gesendet. Die Walletbilanz wird aktualisiert</string>
|
||||
<string name="send_tron_account_activation_error">%1$s ist ein Vermögenswert im Tron-Netzwerk. Um die Gebühr zu berechnen und eine Transaktion durchzuführen, musst du etwas Tron (TRX) auf deinem Konto einzahlen.</string>
|
||||
<string name="send_validation_destination_tag_required_description">Um diese Transaktion für die angegebene Adresse abzuschließen, ist ein Ziel-Tag (Memo) erforderlich.</string>
|
||||
<string name="send_validation_destination_tag_required_title">Ziel-Tag erforderlich</string>
|
||||
<string name="sent_transaction_sent_title">Transaktion gesendet</string>
|
||||
<string name="settings_card_settings_footer">Bereite das Scannen der Karte oder Ring vor, die du einrichten möchtest.</string>
|
||||
<string name="settings_forget_wallet">Entferne diese Wallet</string>
|
||||
|
|
@ -857,6 +866,7 @@
|
|||
<string name="staking_rewards">Belohnungen</string>
|
||||
<string name="staking_stake_locked">Stake gesperrt</string>
|
||||
<string name="staking_stake_more">Mehr staken</string>
|
||||
<string name="staking_stake_more_button_unavailability_reason">Beim Staking %1$s wird Dein gesamtes %2$s -Guthaben eingesetzt. Alle weiteren %2$s due Du in Deine Tangem-Wallet einzahlst, werden ebenfalls automatisch eingesetzt.</string>
|
||||
<string name="staking_staked_amount">Gestakeder Betrag</string>
|
||||
<string name="staking_summary_description_text">Du setzt %1$s ein und ethältst Deine Belohnung %2$s</string>
|
||||
<string name="staking_tap_to_unlock">Zum Entsperren antippen</string>
|
||||
|
|
@ -931,7 +941,7 @@
|
|||
<string name="token_button_unavailability_reason_custom_token">Die Aktion ist für benutzerdefinierte Token nicht verfügbar.</string>
|
||||
<string name="token_button_unavailability_reason_empty_balance_sell">Du hast kein Guthaben um dies zu Verkaufen. Lade dein Konto auf, um Geld von dort zu verkaufen.</string>
|
||||
<string name="token_button_unavailability_reason_empty_balance_send">Du hast kein Guthaben zum Versenden. Lade dein Konto auf, um Geld von dort aus senden zu können.</string>
|
||||
<string name="token_button_unavailability_reason_loading">Die Daten wurden noch nicht geladen. Dies kann einige Sekunden dauern. Bitte versuche es später erneut.</string>
|
||||
<string name="token_button_unavailability_reason_loading">Die Daten werden gerade geladen. Dies kann einige Sekunden dauern. Bitte versuche es später noch einmal.</string>
|
||||
<string name="token_button_unavailability_reason_not_exchangeable">Das Tauschen von %s wird von aktuellen Anbietern nicht unterstützt, aber wir arbeiten daran, weitere Optionen hinzuzufügen.</string>
|
||||
<string name="token_button_unavailability_reason_out_of_date_balance">Der angezeigte Kontostand kann aufgrund der Zwischenspeicherung veraltet sein.</string>
|
||||
<string name="token_button_unavailability_reason_pending_transaction_sell">Der Verkauf von Geldmitteln ist möglich, sobald die ausstehende(n) Transaktion(en) im %s -Netzwerk abgeschlossen ist/sind.</string>
|
||||
|
|
@ -995,6 +1005,24 @@
|
|||
<string name="user_wallet_list_rename_popup_title">Wallet umbenennen</string>
|
||||
<string name="user_wallet_list_unlock_all">Alle freischalten</string>
|
||||
<string name="user_wallet_list_unlock_all_with">Alle mit %s freischalten</string>
|
||||
<plurals name="visa_limits_available_for_days_title">
|
||||
<item quantity="one">Verfügbar für %d Tag</item>
|
||||
<item quantity="other">Verfügbar für %d Tage</item>
|
||||
</plurals>
|
||||
<string name="visa_main_balances_and_limits">Guthaben und Limits</string>
|
||||
<string name="visa_onboarding_approve_wallet_selector_notification_message">Bitte wähle die Wallet aus, mit der Du den Registrierungsprozess gestartet hast, um die Transaktion zur Erstellung Deines Kontos auf der Blockchain zu signieren</string>
|
||||
<string name="visa_onboarding_close_alert_message">Möchtest Du den Vorgang wirklich beenden? Du kannst später dort fortfahren, wo Du aufgehört hast.</string>
|
||||
<string name="visa_onboarding_in_progress_description">Das wird nicht lange dauern. Wir richten gerade Dein Konto ein.</string>
|
||||
<string name="visa_onboarding_in_progress_issuer_description">Das wird nicht lange dauern. Wir schließen die Aktivierung ab.</string>
|
||||
<string name="visa_onboarding_in_progress_title">Alles wird vorbereitet!</string>
|
||||
<string name="visa_onboarding_pin_validation_error_message">Ungültige PIN: Sequenzen oder Wiederholungen vermeiden</string>
|
||||
<string name="visa_onboarding_success_screen_description">Schon kann es losgehen!</string>
|
||||
<string name="visa_onboarding_wallet_connect_description">Du kannst Deine Verbindung \n auf der Website des Drittanbieters \n herstellen und zurück zur Tangem-App gelangen</string>
|
||||
<string name="visa_onboarding_wallet_connect_title">Zur Website gehen</string>
|
||||
<string name="visa_onboarding_welcome_back_description">Fahren wir mit der Einrichtung Deines Kontos fort.</string>
|
||||
<string name="visa_onboarding_welcome_back_title">Willkommen zurück!</string>
|
||||
<string name="visa_onboarding_welcome_description">Folge den Schritten, um Dein Konto einzurichten.</string>
|
||||
<string name="visa_onboarding_welcome_title">Willkommen!</string>
|
||||
<string name="visa_unlock_notification_button">Freischalten</string>
|
||||
<string name="visa_unlock_notification_subtitle">Scanne Deine Karte, um den Zugriff freizuschalten</string>
|
||||
<string name="visa_unlock_notification_title">Benötigte Freischaltung</string>
|
||||
|
|
|
|||
|
|
@ -1038,7 +1038,7 @@
|
|||
<string name="warning_beacon_chain_retirement_title">BNB Beacon Chain va s\'arrêter de fonctionner</string>
|
||||
<string name="warning_blocked_funds_for_fee_message">Veuillez déposer environ %1$s pour couvrir les frais de réseau</string>
|
||||
<string name="warning_blocked_funds_for_fee_title">Fonds insuffisants pour couvrir les frais de réseau</string>
|
||||
<string name="warning_button_could_be_better">Pas terrible</string>
|
||||
<string name="warning_button_could_be_better">Peut mieux faire</string>
|
||||
<string name="warning_button_like_it">J\'aime</string>
|
||||
<string name="warning_button_ok">Ok, compris!</string>
|
||||
<string name="warning_button_really_cool">Vraiment cool !</string>
|
||||
|
|
|
|||
|
|
@ -136,6 +136,7 @@
|
|||
<string name="common_fee_selector_option_market">マーケット</string>
|
||||
<string name="common_fee_selector_option_slow">遅い</string>
|
||||
<string name="common_fee_selector_title">速度と料金</string>
|
||||
<string name="common_finish">終了</string>
|
||||
<string name="common_generate_addresses">アドレスを同期する</string>
|
||||
<string name="common_go_to_provider">プロバイダーへ移動</string>
|
||||
<string name="common_go_to_token">トークンへ移動</string>
|
||||
|
|
@ -155,6 +156,7 @@
|
|||
<string name="common_no_address">アドレスがありません</string>
|
||||
<string name="common_now">今</string>
|
||||
<string name="common_ok">わかりました</string>
|
||||
<string name="common_open_in_browser">ブラウザで開く</string>
|
||||
<string name="common_origin_card">プライマリーカード</string>
|
||||
<string name="common_origin_ring">プライマリーリング</string>
|
||||
<string name="common_passphrase">パスフレーズ</string>
|
||||
|
|
@ -178,6 +180,7 @@
|
|||
<string name="common_send">送る</string>
|
||||
<string name="common_server_unavailable">サーバーが利用できません。しばらくしてからもう一度お試しください。</string>
|
||||
<string name="common_share">共有</string>
|
||||
<string name="common_share_link">リンクを共有</string>
|
||||
<string name="common_sign">署名</string>
|
||||
<string name="common_sign_and_send">署名して送信</string>
|
||||
<string name="common_stake">ステーキング</string>
|
||||
|
|
@ -489,6 +492,19 @@
|
|||
<string name="markets_tooltip_message">これをドラッグするか、検索窓をタップして、マーケットから直接トークンを追加します</string>
|
||||
<string name="markets_tooltip_title">トークンを追加</string>
|
||||
<string name="nfc_error_unavailable">お使いのデバイスではNFCが使用できません</string>
|
||||
<plurals name="nft_collections_count">
|
||||
<item quantity="other">アイテム</item>
|
||||
</plurals>
|
||||
<string name="nft_collections_empty_description">ウォレットに送信されたNFTがここに表示されます。</string>
|
||||
<string name="nft_collections_empty_title">コレクションはまだありません</string>
|
||||
<string name="nft_collections_receive">NFTを受け取る</string>
|
||||
<string name="nft_collections_title">NFTコレクション</string>
|
||||
<string name="nft_collections_warning_subtitle">一部のデータが読み込まれない場合があります</string>
|
||||
<string name="nft_collections_warning_title">一時的な読み込みの問題</string>
|
||||
<string name="nft_wallet_count">%1$dコレクションの%2$dNFT</string>
|
||||
<string name="nft_wallet_receive_nft">ここをタップして最初のNFTを受け取ります</string>
|
||||
<string name="nft_wallet_title">NFTコレクション</string>
|
||||
<string name="nft_wallet_unable_to_load">データを読み込めません</string>
|
||||
<string name="onboarding_access_code_feature_1_description">すべてのデバイスを保護するには、単一のアクセスコードを設定してください。</string>
|
||||
<string name="onboarding_access_code_feature_1_title">保護する</string>
|
||||
<string name="onboarding_access_code_feature_2_description">後で各カードおよびリングに個別のアクセスコードを設定できます。</string>
|
||||
|
|
@ -750,6 +766,8 @@
|
|||
<string name="send_summary_transaction_description_suffix_including">ネットワーク手数料%1$sを含む</string>
|
||||
<string name="send_transaction_success">取引は正常に署名され、ブロックチェーンノードに送信されました。ウォレットの残高はしばらくして更新されます。</string>
|
||||
<string name="send_tron_account_activation_error">%1$sはTronネットワークのアセットです。手数料を計算して取引を行うには、アカウントにTron(TRX)を入金する必要があります。</string>
|
||||
<string name="send_validation_destination_tag_required_description">指定されたアドレスへの取引を完了するには、宛先タグ(メモ)が必要です。</string>
|
||||
<string name="send_validation_destination_tag_required_title">宛先タグが必要です</string>
|
||||
<string name="sent_transaction_sent_title">取引が送信されました</string>
|
||||
<string name="settings_card_settings_footer">設定したいカードまたはリングをスキャンするために準備してください。</string>
|
||||
<string name="settings_forget_wallet">ウォレット削除</string>
|
||||
|
|
@ -847,6 +865,7 @@
|
|||
<string name="staking_rewards">報酬</string>
|
||||
<string name="staking_stake_locked">ステーキングはロックされています</string>
|
||||
<string name="staking_stake_more">もっとステーキングする</string>
|
||||
<string name="staking_stake_more_button_unavailability_reason">%1$sをステーキングすると、 %2$s残高全体がステーキングされます。Tangemウォレットに入金した追加の%2$sも、自動的にステーキングされます。</string>
|
||||
<string name="staking_staked_amount">ステーキング中の金額</string>
|
||||
<string name="staking_summary_description_text">%1$sをステーキングし、報酬%2$sを受け取ります</string>
|
||||
<string name="staking_tap_to_unlock">タップしてロック解除</string>
|
||||
|
|
@ -985,6 +1004,20 @@
|
|||
<string name="user_wallet_list_rename_popup_title">ウォレット名の変更</string>
|
||||
<string name="user_wallet_list_unlock_all">すべてのロックを解除</string>
|
||||
<string name="user_wallet_list_unlock_all_with">%sですべてをロック解除</string>
|
||||
<plurals name="visa_limits_available_for_days_title">
|
||||
<item quantity="other">%d日間利用可能</item>
|
||||
</plurals>
|
||||
<string name="visa_main_balances_and_limits">残高と限度額</string>
|
||||
<string name="visa_onboarding_close_alert_message">本当に終了してもよろしいですか?中断したところから後で続行できます。</string>
|
||||
<string name="visa_onboarding_in_progress_description">長くはかかりません。アカウントを設定しています。</string>
|
||||
<string name="visa_onboarding_in_progress_issuer_description">長くはかかりません。アクティベーションを完了しています。</string>
|
||||
<string name="visa_onboarding_in_progress_title">準備完了です!</string>
|
||||
<string name="visa_onboarding_pin_validation_error_message">無効な暗証番号:連続や繰り返しを避けてください</string>
|
||||
<string name="visa_onboarding_wallet_connect_title">ウェブサイトに移動</string>
|
||||
<string name="visa_onboarding_welcome_back_description">アカウントの設定を続けましょう。</string>
|
||||
<string name="visa_onboarding_welcome_back_title">お帰りなさい!</string>
|
||||
<string name="visa_onboarding_welcome_description">手順に従ってアカウントを設定してください。</string>
|
||||
<string name="visa_onboarding_welcome_title">ようこそ!</string>
|
||||
<string name="visa_unlock_notification_button">ロック解除</string>
|
||||
<string name="visa_unlock_notification_subtitle">カードをスキャンしてアクセスロックを解除する</string>
|
||||
<string name="visa_unlock_notification_title">ロック解除が必要</string>
|
||||
|
|
|
|||
|
|
@ -139,6 +139,7 @@
|
|||
<string name="common_fee_selector_option_market">Market</string>
|
||||
<string name="common_fee_selector_option_slow">Slow</string>
|
||||
<string name="common_fee_selector_title">Speed and fee</string>
|
||||
<string name="common_finish">Finish</string>
|
||||
<string name="common_generate_addresses">Synchronize addresses</string>
|
||||
<string name="common_go_to_provider">Go to provider</string>
|
||||
<string name="common_go_to_token">Go to token</string>
|
||||
|
|
@ -158,6 +159,7 @@
|
|||
<string name="common_no_address">No address</string>
|
||||
<string name="common_now">Now</string>
|
||||
<string name="common_ok">OK</string>
|
||||
<string name="common_open_in_browser">Open in Browser</string>
|
||||
<string name="common_origin_card">Primary card</string>
|
||||
<string name="common_origin_ring">Primary ring</string>
|
||||
<string name="common_passphrase">Passphrase</string>
|
||||
|
|
@ -181,6 +183,7 @@
|
|||
<string name="common_send">Send</string>
|
||||
<string name="common_server_unavailable">The server is not available, please try again later</string>
|
||||
<string name="common_share">Share</string>
|
||||
<string name="common_share_link">Share Link</string>
|
||||
<string name="common_sign">Sign</string>
|
||||
<string name="common_sign_and_send">Sign and send</string>
|
||||
<string name="common_stake">Stake</string>
|
||||
|
|
@ -190,6 +193,7 @@
|
|||
<string name="common_success">Success</string>
|
||||
<string name="common_support">Support</string>
|
||||
<string name="common_swap">Swap</string>
|
||||
<string name="common_tangem_wallet">Tangem Wallet</string>
|
||||
<string name="common_terms_and_conditions">terms and conditions</string>
|
||||
<string name="common_terms_of_use">Terms of Use</string>
|
||||
<string name="common_today">Today</string>
|
||||
|
|
@ -495,9 +499,19 @@
|
|||
<string name="markets_tooltip_message">Pull this up or tap the search bar to add tokens directly from the market</string>
|
||||
<string name="markets_tooltip_title">Add tokens</string>
|
||||
<string name="nfc_error_unavailable">NFC is not available on your device</string>
|
||||
<string name="nft_wallet_title">NFT collections</string>
|
||||
<string name="nft_wallet_receive_nft">Tap here to receive first NFT</string>
|
||||
<plurals name="nft_collections_count">
|
||||
<item quantity="one">%d item</item>
|
||||
<item quantity="other">%d items</item>
|
||||
</plurals>
|
||||
<string name="nft_collections_empty_description">NFTs sent to your wallet address will show up here.</string>
|
||||
<string name="nft_collections_empty_title">No collections, yet</string>
|
||||
<string name="nft_collections_receive">Receive NFT</string>
|
||||
<string name="nft_collections_title">NFT collections</string>
|
||||
<string name="nft_collections_warning_subtitle">Some data may not load</string>
|
||||
<string name="nft_collections_warning_title">Temporary loading problems</string>
|
||||
<string name="nft_wallet_count">%1$d NFTs in %2$d collection</string>
|
||||
<string name="nft_wallet_receive_nft">Tap here to receive first NFT</string>
|
||||
<string name="nft_wallet_title">NFT collections</string>
|
||||
<string name="nft_wallet_unable_to_load">Unable to load the data</string>
|
||||
<string name="onboarding_access_code_feature_1_description">Set up a single access code to protect all your devices.</string>
|
||||
<string name="onboarding_access_code_feature_1_title">Protect</string>
|
||||
|
|
@ -764,6 +778,8 @@
|
|||
<string name="send_summary_transaction_description_suffix_including">including a network fee of %1$s</string>
|
||||
<string name="send_transaction_success">Transaction has been successfully signed and sent to the blockchain node. Wallet balance will be updated in a while</string>
|
||||
<string name="send_tron_account_activation_error">%1$s is an asset in the Tron network. To calculate the fee and make a transaction you need to deposit some Tron (TRX) in your account.</string>
|
||||
<string name="send_validation_destination_tag_required_description">A destination tag (memo) is required to complete this transaction for the specified address.</string>
|
||||
<string name="send_validation_destination_tag_required_title">Destination Tag Required</string>
|
||||
<string name="sent_transaction_sent_title">Transaction sent</string>
|
||||
<string name="settings_card_settings_footer">Prepare to scan card or ring you want to set up.</string>
|
||||
<string name="settings_forget_wallet">Forget wallet</string>
|
||||
|
|
@ -1000,6 +1016,69 @@
|
|||
<string name="user_wallet_list_rename_popup_title">Rename wallet</string>
|
||||
<string name="user_wallet_list_unlock_all">Unlock all</string>
|
||||
<string name="user_wallet_list_unlock_all_with">Unlock all with %s</string>
|
||||
<string name="visa_balance_limits_details_aml_verified">AML verifired</string>
|
||||
<string name="visa_balance_limits_details_available">Available</string>
|
||||
<string name="visa_balance_limits_details_blocked">Blocked</string>
|
||||
<string name="visa_balance_limits_details_debt">Debt</string>
|
||||
<string name="visa_balance_limits_details_limits">Limits</string>
|
||||
<string name="visa_balance_limits_details_no_otp_limit">Other (no-otp)</string>
|
||||
<string name="visa_balance_limits_details_single_transaction">Single transaction</string>
|
||||
<string name="visa_balance_limits_details_total">Total</string>
|
||||
<plurals name="visa_limits_available_for_days_title">
|
||||
<item quantity="one">available for %d day</item>
|
||||
<item quantity="other">available for %d days</item>
|
||||
</plurals>
|
||||
<string name="visa_main_available_balance_alert_message">Available balance is actual funds available, considering pending transactions, blocked amounts, and debit balance to prevent overdrafts.</string>
|
||||
<string name="visa_main_available_till_date">Available till %1$s</string>
|
||||
<string name="visa_main_balances_and_limits">Balances & Limits</string>
|
||||
<string name="visa_main_button_alert_missing_payment_account_info_message">Missing Payment account information. Please contact support</string>
|
||||
<string name="visa_main_button_alert_missing_token_info">Unable to load information about token</string>
|
||||
<string name="visa_main_button_alert_still_loading">Information is still loading, please wait</string>
|
||||
<string name="visa_main_limits_alert_description_message">Limits are needed to control costs, improve security, manage risk. You can spend %1$s during the period for card payments in shops and %2$s for other transactions, e.g. subscriptions or debts.</string>
|
||||
<string name="visa_onboarding_access_code_description">The access code will be used manage your payment account and protect it from unauthorized access</string>
|
||||
<string name="visa_onboarding_access_code_navigation_title">Access Code</string>
|
||||
<string name="visa_onboarding_account_activation_navigation_title">Account activation</string>
|
||||
<string name="visa_onboarding_approve_wallet_selector_notification_message">Please choose the wallet you started the registration process with to sign the transaction for creating your account on the Blockchain</string>
|
||||
<string name="visa_onboarding_cancel_activation">Cancel Activation</string>
|
||||
<string name="visa_onboarding_close_alert_message">Are you sure you want to exit? You can continue later from where you left off.</string>
|
||||
<string name="visa_onboarding_in_progress_description">This won\'t take long. We\'re setting up your account.</string>
|
||||
<string name="visa_onboarding_in_progress_issuer_description">This won’t take long. We’re completing the activation.</string>
|
||||
<string name="visa_onboarding_in_progress_title">Getting everything ready!</string>
|
||||
<string name="visa_onboarding_other_wallet">Other wallet</string>
|
||||
<string name="visa_onboarding_pin_code_description">Set up a 4-digit code.
It will be used for payments.</string>
|
||||
<string name="visa_onboarding_pin_code_navigation_title">PIN code</string>
|
||||
<string name="visa_onboarding_pin_code_title">Create PIN Code</string>
|
||||
<string name="visa_onboarding_pin_validation_error_message">Invalid PIN: avoid sequences or repeats</string>
|
||||
<string name="visa_onboarding_success_screen_description">You\'re good to go!</string>
|
||||
<string name="visa_onboarding_tangem_approve_description">Prepare the Tangem card and tap to approve</string>
|
||||
<string name="visa_onboarding_tangem_approve_title">Prepare Tangem Wallet</string>
|
||||
<string name="visa_onboarding_wallet_connect_description">You will be able to complete your connection \n on the third-party web-site \n and back to the Tangem app</string>
|
||||
<string name="visa_onboarding_wallet_connect_title">Go to Website</string>
|
||||
<string name="visa_onboarding_wallet_connection_navigation_title">Wallet connection</string>
|
||||
<string name="visa_onboarding_wallet_list_header">Choose wallet</string>
|
||||
<string name="visa_onboarding_welcome_back_button_title">Continue Activation</string>
|
||||
<string name="visa_onboarding_welcome_back_description">Let\'s continue setting up your account.</string>
|
||||
<string name="visa_onboarding_welcome_back_title">Welcome back!</string>
|
||||
<string name="visa_onboarding_welcome_button_title">Start Activation</string>
|
||||
<string name="visa_onboarding_welcome_description">Follow the steps to set up your account.</string>
|
||||
<string name="visa_onboarding_welcome_title">Welcome!</string>
|
||||
<string name="visa_transaction_details_blockchain_amount">Blockchain amount</string>
|
||||
<string name="visa_transaction_details_currency_code">Currency code</string>
|
||||
<string name="visa_transaction_details_date">Date</string>
|
||||
<string name="visa_transaction_details_error_code">Error code</string>
|
||||
<string name="visa_transaction_details_header">Transaction details</string>
|
||||
<string name="visa_transaction_details_merchant_category_code">Merchant category code</string>
|
||||
<string name="visa_transaction_details_merchant_city">Merchant city</string>
|
||||
<string name="visa_transaction_details_merchant_country_code">Merchant country code</string>
|
||||
<string name="visa_transaction_details_merchant_name">Merchant name</string>
|
||||
<string name="visa_transaction_details_request_id">Request ID</string>
|
||||
<string name="visa_transaction_details_status">Status</string>
|
||||
<string name="visa_transaction_details_title">Transaction</string>
|
||||
<string name="visa_transaction_details_transaction_amount">Transaction amount</string>
|
||||
<string name="visa_transaction_details_transaction_hash">Transaction hash</string>
|
||||
<string name="visa_transaction_details_transaction_request">Transaction request</string>
|
||||
<string name="visa_transaction_details_transaction_status">Transaction status</string>
|
||||
<string name="visa_transaction_details_type">Type</string>
|
||||
<string name="visa_unlock_notification_button">Unlock</string>
|
||||
<string name="visa_unlock_notification_subtitle">Scan your card to unlock access</string>
|
||||
<string name="visa_unlock_notification_title">Needed unlock</string>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,14 @@ import com.tangem.core.ui.decompose.ComposableContentComponent
|
|||
|
||||
interface OnboardingDoneComponent : ComposableContentComponent {
|
||||
|
||||
data class Params(val onDone: () -> Unit)
|
||||
data class Params(
|
||||
val mode: Mode,
|
||||
val onDone: () -> Unit,
|
||||
)
|
||||
|
||||
enum class Mode {
|
||||
WalletCreated, GoodToGo
|
||||
}
|
||||
|
||||
interface Factory : ComponentFactory<Params, OnboardingDoneComponent>
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
package com.tangem.features.onboarding.v2.done.impl
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import com.tangem.core.decompose.context.AppComponentContext
|
||||
import com.tangem.features.onboarding.v2.done.api.OnboardingDoneComponent
|
||||
|
|
@ -18,7 +17,8 @@ internal class DefaultOnboardingDoneComponent @AssistedInject constructor(
|
|||
@Composable
|
||||
override fun Content(modifier: Modifier) {
|
||||
OnboardingDone(
|
||||
onContinueClick = remember(this) { params.onDone },
|
||||
mode = params.mode,
|
||||
onContinueClick = params.onDone,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,10 +20,16 @@ import com.tangem.core.ui.components.*
|
|||
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
import com.tangem.features.onboarding.v2.done.api.OnboardingDoneComponent
|
||||
import com.tangem.features.onboarding.v2.impl.R
|
||||
|
||||
@Suppress("LongMethod")
|
||||
@Composable
|
||||
internal fun OnboardingDone(onContinueClick: () -> Unit, modifier: Modifier = Modifier) {
|
||||
internal fun OnboardingDone(
|
||||
mode: OnboardingDoneComponent.Mode,
|
||||
onContinueClick: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
val composition by rememberLottieComposition(spec = LottieCompositionSpec.RawRes(R.raw.anim_confetti))
|
||||
val progress by animateLottieCompositionAsState(composition)
|
||||
var showConfetti by remember { mutableStateOf(false) }
|
||||
|
|
@ -57,7 +63,12 @@ internal fun OnboardingDone(onContinueClick: () -> Unit, modifier: Modifier = Mo
|
|||
SpacerH12()
|
||||
Text(
|
||||
modifier = Modifier.padding(horizontal = 32.dp),
|
||||
text = stringResourceSafe(R.string.onboarding_subtitle_success_tangem_wallet_onboarding),
|
||||
text = when (mode) {
|
||||
OnboardingDoneComponent.Mode.WalletCreated ->
|
||||
stringResourceSafe(R.string.onboarding_subtitle_success_tangem_wallet_onboarding)
|
||||
OnboardingDoneComponent.Mode.GoodToGo ->
|
||||
stringResourceSafe(R.string.visa_onboarding_success_screen_description)
|
||||
},
|
||||
style = TangemTheme.typography.body1,
|
||||
color = TangemTheme.colors.text.secondary,
|
||||
textAlign = TextAlign.Center,
|
||||
|
|
@ -100,6 +111,9 @@ internal fun OnboardingDone(onContinueClick: () -> Unit, modifier: Modifier = Mo
|
|||
@Composable
|
||||
private fun Preview() {
|
||||
TangemThemePreview {
|
||||
OnboardingDone(onContinueClick = {})
|
||||
OnboardingDone(
|
||||
mode = OnboardingDoneComponent.Mode.WalletCreated,
|
||||
onContinueClick = {},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -20,6 +20,7 @@ import com.tangem.features.biometry.AskBiometryComponent
|
|||
import com.tangem.features.biometry.BiometryFeatureToggles
|
||||
import com.tangem.features.onboarding.v2.TitleProvider
|
||||
import com.tangem.features.onboarding.v2.common.ui.CantLeaveBackupDialog
|
||||
import com.tangem.features.onboarding.v2.done.api.OnboardingDoneComponent
|
||||
import com.tangem.features.onboarding.v2.entry.OnboardingEntryComponent
|
||||
import com.tangem.features.onboarding.v2.entry.impl.analytics.OnboardingEntryEvent
|
||||
import com.tangem.features.onboarding.v2.entry.impl.routing.OnboardingRoute
|
||||
|
|
@ -105,7 +106,12 @@ internal class OnboardingEntryModel @Inject constructor(
|
|||
private fun onMultiWalletOnboardingDone(userWallet: UserWallet) {
|
||||
when {
|
||||
params.multiWalletMode == OnboardingEntryComponent.MultiWalletMode.AddBackup -> {
|
||||
stackNavigation.replaceAll(OnboardingRoute.Done(onDone = ::navigateToWalletScreen))
|
||||
stackNavigation.replaceAll(
|
||||
OnboardingRoute.Done(
|
||||
mode = OnboardingDoneComponent.Mode.WalletCreated,
|
||||
onDone = ::navigateToWalletScreen,
|
||||
),
|
||||
)
|
||||
}
|
||||
userWallet.scanResponse.cardTypesResolver.isMultiwalletAllowed() -> {
|
||||
stackNavigation.replaceAll(OnboardingRoute.ManageTokens(userWallet))
|
||||
|
|
@ -117,34 +123,58 @@ internal class OnboardingEntryModel @Inject constructor(
|
|||
}
|
||||
|
||||
private fun onVisaOnboardingDone() {
|
||||
navigateToFinalScreenFlow()
|
||||
navigateToFinalScreenFlow(doneMode = OnboardingDoneComponent.Mode.GoodToGo)
|
||||
}
|
||||
|
||||
private fun navigateToFinalScreenFlow() {
|
||||
private fun navigateToFinalScreenFlow(
|
||||
doneMode: OnboardingDoneComponent.Mode = OnboardingDoneComponent.Mode.WalletCreated,
|
||||
) {
|
||||
if (askBiometryFeatureToggles.isAskForBiometryEnabled) {
|
||||
modelScope.launch {
|
||||
if (tangemSdkManager.checkCanUseBiometry() && settingsRepository.shouldShowSaveUserWalletScreen()) {
|
||||
stackNavigation.replaceAll(
|
||||
OnboardingRoute.AskBiometry(modelCallbacks = AskBiometryModelCallbacks()),
|
||||
OnboardingRoute.AskBiometry(modelCallbacks = AskBiometryModelCallbacks(doneMode)),
|
||||
)
|
||||
} else {
|
||||
stackNavigation.replaceAll(OnboardingRoute.Done(onDone = ::navigateToWalletScreen))
|
||||
stackNavigation.replaceAll(
|
||||
OnboardingRoute.Done(
|
||||
mode = doneMode,
|
||||
onDone = ::navigateToWalletScreen,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
stackNavigation.replaceAll(OnboardingRoute.Done(onDone = ::navigateToWalletScreen))
|
||||
stackNavigation.replaceAll(
|
||||
OnboardingRoute.Done(
|
||||
mode = doneMode,
|
||||
onDone = ::navigateToWalletScreen,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
inner class AskBiometryModelCallbacks : AskBiometryComponent.ModelCallbacks {
|
||||
inner class AskBiometryModelCallbacks(
|
||||
private val doneMode: OnboardingDoneComponent.Mode,
|
||||
) : AskBiometryComponent.ModelCallbacks {
|
||||
override fun onAllowed() {
|
||||
analyticsEventHandler.send(OnboardingEntryEvent.Biometric(OnboardingEntryEvent.Biometric.State.On))
|
||||
stackNavigation.replaceAll(OnboardingRoute.Done(onDone = ::navigateToWalletScreen))
|
||||
stackNavigation.replaceAll(
|
||||
OnboardingRoute.Done(
|
||||
mode = doneMode,
|
||||
onDone = ::navigateToWalletScreen,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
override fun onDenied() {
|
||||
analyticsEventHandler.send(OnboardingEntryEvent.Biometric(OnboardingEntryEvent.Biometric.State.Off))
|
||||
stackNavigation.replaceAll(OnboardingRoute.Done(onDone = ::navigateToWalletScreen))
|
||||
stackNavigation.replaceAll(
|
||||
OnboardingRoute.Done(
|
||||
mode = doneMode,
|
||||
onDone = ::navigateToWalletScreen,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ internal class OnboardingChildFactory @Inject constructor(
|
|||
is OnboardingRoute.Done -> onboardingDoneComponentFactory.create(
|
||||
context = childContext,
|
||||
params = OnboardingDoneComponent.Params(
|
||||
mode = route.mode,
|
||||
onDone = route.onDone,
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.tangem.domain.models.scan.ScanResponse
|
|||
import com.tangem.domain.wallets.models.UserWallet
|
||||
import com.tangem.features.biometry.AskBiometryComponent
|
||||
import com.tangem.features.onboarding.v2.TitleProvider
|
||||
import com.tangem.features.onboarding.v2.done.api.OnboardingDoneComponent
|
||||
import com.tangem.features.onboarding.v2.multiwallet.api.OnboardingMultiWalletComponent
|
||||
|
||||
sealed class OnboardingRoute : Route {
|
||||
|
|
@ -40,6 +41,7 @@ sealed class OnboardingRoute : Route {
|
|||
) : OnboardingRoute()
|
||||
|
||||
data class Done(
|
||||
val mode: OnboardingDoneComponent.Mode,
|
||||
val onDone: () -> Unit,
|
||||
) : OnboardingRoute()
|
||||
}
|
||||
|
|
@ -161,7 +161,7 @@ internal class DefaultOnboardingVisaComponent @AssistedInject constructor(
|
|||
params = OnboardingVisaOtherWalletComponent.Params(
|
||||
childParams = childParams,
|
||||
onDone = {
|
||||
model.stackNavigation.push(OnboardingVisaRoute.PinCode(activationOrderInfo = it))
|
||||
model.stackNavigation.pushNew(OnboardingVisaRoute.PinCode(activationOrderInfo = it))
|
||||
},
|
||||
),
|
||||
)
|
||||
|
|
@ -174,7 +174,7 @@ internal class DefaultOnboardingVisaComponent @AssistedInject constructor(
|
|||
params = OnboardingVisaPinCodeComponent.Params(
|
||||
childParams = childParams,
|
||||
onDone = {
|
||||
model.stackNavigation.push(
|
||||
model.stackNavigation.pushNew(
|
||||
OnboardingVisaRoute.InProgress(from = OnboardingVisaRoute.InProgress.From.PinCode),
|
||||
)
|
||||
},
|
||||
|
|
@ -190,7 +190,7 @@ internal class DefaultOnboardingVisaComponent @AssistedInject constructor(
|
|||
params = OnboardingVisaApproveComponent.Params(
|
||||
childParams = childParams,
|
||||
onDone = {
|
||||
model.stackNavigation.push(
|
||||
model.stackNavigation.pushNew(
|
||||
OnboardingVisaRoute.InProgress(from = OnboardingVisaRoute.InProgress.From.Approve),
|
||||
)
|
||||
},
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import com.tangem.core.ui.components.SpacerH
|
|||
import com.tangem.core.ui.components.SpacerH16
|
||||
import com.tangem.core.ui.components.SpacerH32
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||
import com.tangem.core.ui.res.TangemAnimations
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
|
|
@ -87,9 +88,9 @@ private fun Content(
|
|||
modifier = Modifier
|
||||
.padding(horizontal = 32.dp),
|
||||
text = if (reEnterAccessCodeState) {
|
||||
"Re-enter your access code" // TODO
|
||||
stringResourceSafe(R.string.onboarding_access_code_repeat_code_title)
|
||||
} else {
|
||||
"Create access code" // TODO
|
||||
stringResourceSafe(R.string.onboarding_access_code_intro_title)
|
||||
},
|
||||
style = TangemTheme.typography.h2,
|
||||
color = TangemTheme.colors.text.primary1,
|
||||
|
|
@ -98,11 +99,10 @@ private fun Content(
|
|||
|
||||
SpacerH16()
|
||||
|
||||
// TODO
|
||||
Text(
|
||||
modifier = Modifier
|
||||
.padding(horizontal = 32.dp),
|
||||
text = "The access code will be used manage your payment account and protect it from unauthorized access",
|
||||
text = stringResourceSafe(R.string.visa_onboarding_access_code_description),
|
||||
style = TangemTheme.typography.body1,
|
||||
color = TangemTheme.colors.text.secondary,
|
||||
textAlign = TextAlign.Center,
|
||||
|
|
|
|||
|
|
@ -14,7 +14,8 @@ import androidx.compose.ui.unit.dp
|
|||
import com.tangem.common.ui.navigationButtons.NavigationButton
|
||||
import com.tangem.common.ui.navigationButtons.NavigationPrimaryButton
|
||||
import com.tangem.core.ui.components.SpacerH
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
import com.tangem.features.onboarding.v2.impl.R
|
||||
|
|
@ -43,7 +44,7 @@ internal fun OnboardingVisaApprove(state: OnboardingVisaApproveUM, modifier: Mod
|
|||
SpacerH(86.dp)
|
||||
|
||||
Text(
|
||||
text = "Prepare Tangem Wallet",
|
||||
text = stringResourceSafe(R.string.visa_onboarding_tangem_approve_title),
|
||||
style = TangemTheme.typography.h2,
|
||||
color = TangemTheme.colors.text.primary1,
|
||||
textAlign = TextAlign.Center,
|
||||
|
|
@ -52,7 +53,7 @@ internal fun OnboardingVisaApprove(state: OnboardingVisaApproveUM, modifier: Mod
|
|||
SpacerH(12.dp)
|
||||
|
||||
Text(
|
||||
text = "Prepare the Tangem card\nand tap to approve",
|
||||
text = stringResourceSafe(R.string.visa_onboarding_tangem_approve_description),
|
||||
style = TangemTheme.typography.body1,
|
||||
color = TangemTheme.colors.text.secondary,
|
||||
textAlign = TextAlign.Center,
|
||||
|
|
@ -65,7 +66,7 @@ internal fun OnboardingVisaApprove(state: OnboardingVisaApproveUM, modifier: Mod
|
|||
.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)
|
||||
.fillMaxWidth(),
|
||||
primaryButton = NavigationButton(
|
||||
textReference = TextReference.Str("Approve"),
|
||||
textReference = resourceReference(R.string.common_approve),
|
||||
iconRes = R.drawable.ic_tangem_24,
|
||||
isIconVisible = true,
|
||||
showProgress = state.approveButtonLoading,
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.tangem.features.onboarding.v2.visa.impl.child.choosewallet.model
|
|||
import androidx.compose.runtime.Stable
|
||||
import com.tangem.core.decompose.di.ModelScoped
|
||||
import com.tangem.core.decompose.model.Model
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.features.onboarding.v2.impl.R
|
||||
import com.tangem.features.onboarding.v2.visa.impl.child.choosewallet.OnboardingVisaChooseWalletComponent.Params.Event
|
||||
import com.tangem.features.onboarding.v2.visa.impl.child.choosewallet.ui.state.OnboardingVisaChooseWalletUM
|
||||
|
|
@ -32,7 +32,7 @@ internal class OnboardingVisaChooseWalletModel @Inject constructor(
|
|||
val selectedOption = SelectableChainRowUM(
|
||||
event = Event.TangemWallet,
|
||||
icon = R.drawable.ic_tangem_24,
|
||||
text = TextReference.Str("Tangem Wallet"),
|
||||
text = resourceReference(R.string.common_tangem_wallet),
|
||||
)
|
||||
|
||||
return OnboardingVisaChooseWalletUM(
|
||||
|
|
@ -41,7 +41,7 @@ internal class OnboardingVisaChooseWalletModel @Inject constructor(
|
|||
SelectableChainRowUM(
|
||||
event = Event.OtherWallet,
|
||||
icon = R.drawable.ic_wallet_filled_24,
|
||||
text = TextReference.Str("Other Wallet"),
|
||||
text = resourceReference(R.string.visa_onboarding_other_wallet),
|
||||
),
|
||||
),
|
||||
selectedOption = selectedOption,
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ import com.tangem.core.ui.components.rows.RowContentContainer
|
|||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.outsetBorder
|
||||
import com.tangem.core.ui.extensions.resolveReference
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
import com.tangem.features.onboarding.v2.impl.R
|
||||
|
|
@ -45,10 +47,7 @@ internal fun OnboardingVisaChooseWallet(state: OnboardingVisaChooseWalletUM, mod
|
|||
) {
|
||||
Notification(
|
||||
config = NotificationConfig(
|
||||
subtitle = TextReference.Str(
|
||||
"Please choose the wallet you started the registration" +
|
||||
" process with to sign the transaction for creating your account on the Blockchain.",
|
||||
),
|
||||
subtitle = resourceReference(R.string.visa_onboarding_approve_wallet_selector_notification_message),
|
||||
iconResId = R.drawable.ic_alert_circle_24,
|
||||
),
|
||||
iconTint = TangemTheme.colors.icon.accent,
|
||||
|
|
@ -62,7 +61,7 @@ internal fun OnboardingVisaChooseWallet(state: OnboardingVisaChooseWalletUM, mod
|
|||
start = 12.dp,
|
||||
end = 12.dp,
|
||||
),
|
||||
text = "Choose wallet",
|
||||
text = stringResourceSafe(R.string.visa_onboarding_wallet_list_header),
|
||||
style = TangemTheme.typography.subtitle2,
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
)
|
||||
|
|
@ -79,7 +78,7 @@ internal fun OnboardingVisaChooseWallet(state: OnboardingVisaChooseWalletUM, mod
|
|||
.imePadding()
|
||||
.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)
|
||||
.fillMaxWidth(),
|
||||
text = "Continue",
|
||||
text = stringResourceSafe(R.string.common_continue),
|
||||
onClick = state.onContinueClick,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,10 +68,10 @@ internal class OnboardingVisaOtherWalletModel @Inject constructor(
|
|||
}
|
||||
|
||||
private fun onShareClicked() {
|
||||
shareManager.shareText("https://tangem.com/")
|
||||
shareManager.shareText("https://tangem.com/") // TODO
|
||||
}
|
||||
|
||||
private fun onOpenInBrowserClicked() {
|
||||
urlOpener.openUrl("https://tangem.com/")
|
||||
urlOpener.openUrl("https://tangem.com/") // TODO
|
||||
}
|
||||
}
|
||||
|
|
@ -16,6 +16,7 @@ import androidx.compose.ui.unit.dp
|
|||
import com.tangem.core.ui.components.PrimaryButton
|
||||
import com.tangem.core.ui.components.SecondaryButton
|
||||
import com.tangem.core.ui.components.SpacerH12
|
||||
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
import com.tangem.features.onboarding.v2.impl.R
|
||||
|
|
@ -44,7 +45,7 @@ internal fun OnboardingVisaOtherWallet(state: OnboardingVisaOtherWalletUM, modif
|
|||
SpacerH12()
|
||||
|
||||
Text(
|
||||
text = "Go to Website",
|
||||
text = stringResourceSafe(R.string.visa_onboarding_wallet_connect_title),
|
||||
style = TangemTheme.typography.h2,
|
||||
color = TangemTheme.colors.text.primary1,
|
||||
textAlign = TextAlign.Center,
|
||||
|
|
@ -53,9 +54,7 @@ internal fun OnboardingVisaOtherWallet(state: OnboardingVisaOtherWalletUM, modif
|
|||
SpacerH12()
|
||||
|
||||
Text(
|
||||
text = "You will be able to complete your connection \n" +
|
||||
"on the third-party web-site \n" +
|
||||
"and back to the Tangem app",
|
||||
text = stringResourceSafe(R.string.visa_onboarding_wallet_connect_description),
|
||||
style = TangemTheme.typography.body1,
|
||||
color = TangemTheme.colors.text.secondary,
|
||||
textAlign = TextAlign.Center,
|
||||
|
|
@ -68,7 +67,7 @@ internal fun OnboardingVisaOtherWallet(state: OnboardingVisaOtherWalletUM, modif
|
|||
modifier = Modifier
|
||||
.padding(horizontal = 16.dp)
|
||||
.fillMaxWidth(),
|
||||
text = "Open in Browser",
|
||||
text = stringResourceSafe(R.string.common_open_in_browser),
|
||||
onClick = state.onOpenInBrowserClick,
|
||||
)
|
||||
|
||||
|
|
@ -78,7 +77,7 @@ internal fun OnboardingVisaOtherWallet(state: OnboardingVisaOtherWalletUM, modif
|
|||
modifier = Modifier
|
||||
.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)
|
||||
.fillMaxWidth(),
|
||||
text = "Share Link",
|
||||
text = stringResourceSafe(R.string.common_share_link),
|
||||
onClick = state.onOpenInBrowserClick,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import com.tangem.common.extensions.toHexString
|
|||
import com.tangem.core.decompose.di.ModelScoped
|
||||
import com.tangem.core.decompose.model.Model
|
||||
import com.tangem.core.decompose.model.ParamsContainer
|
||||
import com.tangem.core.ui.extensions.stringReference
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.datasource.local.visa.VisaAuthTokenStorage
|
||||
import com.tangem.domain.models.scan.ScanResponse
|
||||
import com.tangem.domain.visa.SetVisaPinCodeUseCase
|
||||
|
|
@ -14,6 +14,7 @@ import com.tangem.domain.visa.model.VisaCardId
|
|||
import com.tangem.domain.wallets.builder.UserWalletBuilder
|
||||
import com.tangem.domain.wallets.legacy.UserWalletsListManager
|
||||
import com.tangem.domain.wallets.models.UserWallet
|
||||
import com.tangem.features.onboarding.v2.impl.R
|
||||
import com.tangem.features.onboarding.v2.visa.impl.child.pincode.OnboardingVisaPinCodeComponent
|
||||
import com.tangem.features.onboarding.v2.visa.impl.child.pincode.ui.state.OnboardingVisaPinCodeUM
|
||||
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||
|
|
@ -64,7 +65,11 @@ internal class OnboardingVisaPinCodeModel @Inject constructor(
|
|||
it.copy(
|
||||
pinCode = pin,
|
||||
submitButtonEnabled = PinCodeValidation.validate(pin),
|
||||
error = if (isError) stringReference("Invalid PIN: avoid sequences or repeats") else null,
|
||||
error = if (isError) {
|
||||
resourceReference(R.string.visa_onboarding_pin_validation_error_message)
|
||||
} else {
|
||||
null
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -117,8 +122,4 @@ internal class OnboardingVisaPinCodeModel @Inject constructor(
|
|||
lazyMessage = { "User wallet not created" },
|
||||
)
|
||||
}
|
||||
|
||||
private companion object {
|
||||
const val PIN_CODE_LENGTH = 4
|
||||
}
|
||||
}
|
||||
|
|
@ -33,11 +33,13 @@ import com.tangem.common.ui.navigationButtons.NavigationPrimaryButton
|
|||
import com.tangem.core.ui.components.SpacerH
|
||||
import com.tangem.core.ui.components.SpacerH16
|
||||
import com.tangem.core.ui.components.SpacerH4
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.resolveReference
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.core.ui.extensions.stringReference
|
||||
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
import com.tangem.features.onboarding.v2.impl.R
|
||||
import com.tangem.features.onboarding.v2.visa.impl.child.pincode.ui.state.OnboardingVisaPinCodeUM
|
||||
import kotlinx.coroutines.delay
|
||||
|
||||
|
|
@ -57,7 +59,7 @@ internal fun OnboardingVisaPinCode(state: OnboardingVisaPinCodeUM, modifier: Mod
|
|||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
) {
|
||||
Text(
|
||||
text = "Create\nPIN Code",
|
||||
text = stringResourceSafe(R.string.visa_onboarding_pin_code_title),
|
||||
style = TangemTheme.typography.h2,
|
||||
color = TangemTheme.colors.text.primary1,
|
||||
textAlign = TextAlign.Center,
|
||||
|
|
@ -66,7 +68,7 @@ internal fun OnboardingVisaPinCode(state: OnboardingVisaPinCodeUM, modifier: Mod
|
|||
SpacerH16()
|
||||
|
||||
Text(
|
||||
text = "Set up a 4-digit code.\nIt will be used for payments.",
|
||||
text = stringResourceSafe(R.string.visa_onboarding_pin_code_description),
|
||||
style = TangemTheme.typography.body1,
|
||||
color = TangemTheme.colors.text.secondary,
|
||||
textAlign = TextAlign.Center,
|
||||
|
|
@ -83,7 +85,7 @@ internal fun OnboardingVisaPinCode(state: OnboardingVisaPinCodeUM, modifier: Mod
|
|||
.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)
|
||||
.fillMaxWidth(),
|
||||
primaryButton = NavigationButton(
|
||||
textReference = TextReference.Str("Submit"),
|
||||
textReference = resourceReference(R.string.common_submit),
|
||||
onClick = state.onSubmitClick,
|
||||
showProgress = state.submitButtonLoading,
|
||||
isEnabled = state.submitButtonEnabled,
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import com.tangem.core.ui.components.PrimaryButton
|
|||
import com.tangem.core.ui.components.PrimaryButtonIconEnd
|
||||
import com.tangem.core.ui.components.SpacerH
|
||||
import com.tangem.core.ui.components.SpacerH12
|
||||
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
import com.tangem.features.onboarding.v2.impl.R
|
||||
|
|
@ -47,8 +48,10 @@ internal fun OnboardingVisaWelcome(state: OnboardingVisaWelcomeUM, modifier: Mod
|
|||
|
||||
Text(
|
||||
text = when (state.mode) {
|
||||
OnboardingVisaWelcomeUM.Mode.Hello -> "Hello, ${state.userName}!"
|
||||
OnboardingVisaWelcomeUM.Mode.WelcomeBack -> "Welcome back, ${state.userName}!"
|
||||
OnboardingVisaWelcomeUM.Mode.Hello ->
|
||||
stringResourceSafe(R.string.visa_onboarding_welcome_title)
|
||||
OnboardingVisaWelcomeUM.Mode.WelcomeBack ->
|
||||
stringResourceSafe(R.string.visa_onboarding_welcome_back_title)
|
||||
},
|
||||
style = TangemTheme.typography.h2,
|
||||
color = TangemTheme.colors.text.primary1,
|
||||
|
|
@ -58,8 +61,10 @@ internal fun OnboardingVisaWelcome(state: OnboardingVisaWelcomeUM, modifier: Mod
|
|||
|
||||
Text(
|
||||
text = when (state.mode) {
|
||||
OnboardingVisaWelcomeUM.Mode.Hello -> "bla bla bla //TODO"
|
||||
OnboardingVisaWelcomeUM.Mode.WelcomeBack -> "bla bla bla? //TODO"
|
||||
OnboardingVisaWelcomeUM.Mode.Hello ->
|
||||
stringResourceSafe(R.string.visa_onboarding_welcome_description)
|
||||
OnboardingVisaWelcomeUM.Mode.WelcomeBack ->
|
||||
stringResourceSafe(R.string.visa_onboarding_welcome_back_description)
|
||||
},
|
||||
style = TangemTheme.typography.body1,
|
||||
color = TangemTheme.colors.text.secondary,
|
||||
|
|
@ -72,7 +77,7 @@ internal fun OnboardingVisaWelcome(state: OnboardingVisaWelcomeUM, modifier: Mod
|
|||
modifier = Modifier
|
||||
.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)
|
||||
.fillMaxWidth(),
|
||||
text = "Start Activation",
|
||||
text = stringResourceSafe(R.string.visa_onboarding_welcome_button_title),
|
||||
onClick = state.onContinueClick,
|
||||
)
|
||||
}
|
||||
|
|
@ -81,7 +86,7 @@ internal fun OnboardingVisaWelcome(state: OnboardingVisaWelcomeUM, modifier: Mod
|
|||
modifier = Modifier
|
||||
.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)
|
||||
.fillMaxWidth(),
|
||||
text = "Continue Activation",
|
||||
text = stringResourceSafe(R.string.visa_onboarding_welcome_back_button_title),
|
||||
showProgress = state.continueButtonLoading,
|
||||
iconResId = R.drawable.ic_tangem_24,
|
||||
onClick = state.onContinueClick,
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.tangem.features.onboarding.v2.visa.impl.child.welcome.ui.state
|
|||
|
||||
internal data class OnboardingVisaWelcomeUM(
|
||||
val mode: Mode = Mode.Hello,
|
||||
val userName: String = "",
|
||||
val continueButtonLoading: Boolean = false,
|
||||
val onContinueClick: () -> Unit = {},
|
||||
) {
|
||||
|
|
|
|||
|
|
@ -1,16 +1,22 @@
|
|||
package com.tangem.features.onboarding.v2.visa.impl.route
|
||||
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.features.onboarding.v2.impl.R
|
||||
|
||||
// TODO add translations [REDACTED_TASK_KEY]
|
||||
internal fun OnboardingVisaRoute.screenTitle(): TextReference = when (this) {
|
||||
OnboardingVisaRoute.AccessCode -> TextReference.Str("Access code")
|
||||
is OnboardingVisaRoute.ChooseWallet -> TextReference.Str("Account activation")
|
||||
is OnboardingVisaRoute.InProgress -> TextReference.Str("In progress")
|
||||
is OnboardingVisaRoute.OtherWalletApproveOption -> TextReference.Str("Wallet connection")
|
||||
is OnboardingVisaRoute.PinCode -> TextReference.Str("PIN code")
|
||||
is OnboardingVisaRoute.TangemWalletApproveOption -> TextReference.Str("Wallet connection")
|
||||
OnboardingVisaRoute.AccessCode ->
|
||||
resourceReference(R.string.visa_onboarding_access_code_navigation_title)
|
||||
is OnboardingVisaRoute.ChooseWallet ->
|
||||
resourceReference(R.string.visa_onboarding_account_activation_navigation_title)
|
||||
is OnboardingVisaRoute.InProgress ->
|
||||
resourceReference(R.string.common_in_progress)
|
||||
is OnboardingVisaRoute.OtherWalletApproveOption,
|
||||
is OnboardingVisaRoute.TangemWalletApproveOption,
|
||||
-> resourceReference(R.string.visa_onboarding_wallet_connection_navigation_title)
|
||||
is OnboardingVisaRoute.PinCode ->
|
||||
resourceReference(R.string.visa_onboarding_pin_code_navigation_title)
|
||||
is OnboardingVisaRoute.Welcome,
|
||||
is OnboardingVisaRoute.WelcomeBack,
|
||||
-> TextReference.Str("Getting started")
|
||||
-> resourceReference(R.string.onboarding_getting_started)
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
package com.tangem.features.onboarding.v2.visa.impl.ui
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
|
||||
@Composable
|
||||
internal fun OnboardingVisa(modifier: Modifier = Modifier, childContent: @Composable (Modifier) -> Unit) {
|
||||
childContent(modifier)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue