Updated on 2026-08-14
This commit is contained in:
commit
a3d8800964
18 changed files with 67 additions and 44 deletions
|
|
@ -230,6 +230,8 @@ dependencies {
|
|||
implementation(projects.data.earn)
|
||||
implementation(projects.data.search)
|
||||
|
||||
implementation(projects.common.ui)
|
||||
|
||||
/** Features */
|
||||
implementation(projects.features.referral.impl)
|
||||
implementation(projects.features.referral.domain)
|
||||
|
|
|
|||
|
|
@ -33,10 +33,10 @@ import com.tangem.common.routing.deeplink.DeeplinkConst.WEBLINK_KEY
|
|||
import com.tangem.common.routing.deeplink.PayloadToDeeplinkConverter
|
||||
import com.tangem.core.analytics.api.AnalyticsEventHandler
|
||||
import com.tangem.core.decompose.context.AppComponentContext
|
||||
import com.tangem.core.ui.extensions.LocalUserInteractionTracker
|
||||
import com.tangem.core.ui.extensions.UserInteractionTracker
|
||||
import com.tangem.core.decompose.di.RootAppComponentContext
|
||||
import com.tangem.core.navigation.url.UrlOpener
|
||||
import com.tangem.core.ui.extensions.LocalUserInteractionTracker
|
||||
import com.tangem.core.ui.extensions.UserInteractionTracker
|
||||
import com.tangem.data.balancehiding.DefaultDeviceFlipDetector
|
||||
import com.tangem.data.card.sdk.CardSdkOwner
|
||||
import com.tangem.domain.apptheme.model.AppThemeMode
|
||||
|
|
@ -45,7 +45,6 @@ import com.tangem.domain.card.repository.CardSdkConfigRepository
|
|||
import com.tangem.domain.common.wallets.UserWalletsListRepository
|
||||
import com.tangem.domain.settings.SetGooglePayAvailabilityUseCase
|
||||
import com.tangem.domain.settings.SetGoogleServicesAvailabilityUseCase
|
||||
import com.tangem.domain.settings.ShouldInitiallyAskPermissionUseCase
|
||||
import com.tangem.domain.settings.repositories.SettingsRepository
|
||||
import com.tangem.domain.staking.SendUnsubmittedHashesUseCase
|
||||
import com.tangem.domain.wallets.hot.HotWalletPasswordRequester
|
||||
|
|
@ -128,9 +127,6 @@ class MainActivity : AppCompatActivity(), ActivityResultCallbackHolder {
|
|||
@Inject
|
||||
lateinit var cardRepository: CardRepository
|
||||
|
||||
@Inject
|
||||
lateinit var shouldInitiallyAskPermissionUseCase: ShouldInitiallyAskPermissionUseCase
|
||||
|
||||
@Inject
|
||||
lateinit var backupServiceHolder: BackupServiceHolder
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import com.arkivanov.essenty.lifecycle.subscribe
|
|||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.tangem.common.routing.AppRoute
|
||||
import com.tangem.common.routing.entity.InitScreenLaunchMode
|
||||
import com.tangem.common.ui.notifications.NotificationId
|
||||
import com.tangem.core.analytics.api.AnalyticsEventHandler
|
||||
import com.tangem.core.analytics.api.AnalyticsExceptionHandler
|
||||
import com.tangem.core.analytics.models.Basic
|
||||
|
|
@ -32,10 +33,15 @@ import com.tangem.domain.models.scan.ScanResponse
|
|||
import com.tangem.domain.models.wallet.UserWallet
|
||||
import com.tangem.domain.models.wallet.isImported
|
||||
import com.tangem.domain.models.wallet.isLocked
|
||||
import com.tangem.domain.notifications.repository.NotificationsRepository
|
||||
import com.tangem.domain.onboarding.repository.OnboardingRepository
|
||||
import com.tangem.domain.settings.NeverRequestPermissionUseCase
|
||||
import com.tangem.domain.settings.NeverToInitiallyAskPermissionUseCase
|
||||
import com.tangem.domain.settings.ShouldInitiallyAskPermissionUseCase
|
||||
import com.tangem.features.hotwallet.HotAccessCodeRequestComponent
|
||||
import com.tangem.features.hotwallet.accesscoderequest.proxy.HotWalletPasswordRequesterProxy
|
||||
import com.tangem.features.onboarding.v2.common.analytics.OnboardingEvent
|
||||
import com.tangem.features.pushnotifications.api.utils.PUSH_PERMISSION
|
||||
import com.tangem.features.walletconnect.components.WcRoutingComponent
|
||||
import com.tangem.hot.sdk.TangemHotSdk
|
||||
import com.tangem.hot.sdk.android.create
|
||||
|
|
@ -82,6 +88,10 @@ internal class DefaultRoutingComponent @AssistedInject constructor(
|
|||
private val analyticsEventHandler: AnalyticsEventHandler,
|
||||
private val analyticsExceptionHandler: AnalyticsExceptionHandler,
|
||||
private val backupServiceHolder: BackupServiceHolder,
|
||||
private val notificationsRepository: NotificationsRepository,
|
||||
private val neverToInitiallyAskPermissionUseCase: NeverToInitiallyAskPermissionUseCase,
|
||||
private val shouldInitiallyAskPermissionUseCase: ShouldInitiallyAskPermissionUseCase,
|
||||
private val neverRequestPermissionUseCase: NeverRequestPermissionUseCase,
|
||||
) : RoutingComponent,
|
||||
AppComponentContext by context,
|
||||
SnackbarHandler {
|
||||
|
|
@ -172,7 +182,7 @@ internal class DefaultRoutingComponent @AssistedInject constructor(
|
|||
val userWallets = userWalletsListRepository.userWalletsSync()
|
||||
|
||||
return when {
|
||||
userWallets.isEmpty() -> AppRoute.Home(launchMode = launchMode)
|
||||
userWallets.isEmpty() -> navigateForEmptyWallets()
|
||||
userWallets.any { it.isLocked } -> {
|
||||
AppRoute.Welcome(
|
||||
launchMode = launchMode,
|
||||
|
|
@ -188,6 +198,22 @@ internal class DefaultRoutingComponent @AssistedInject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
private suspend fun navigateForEmptyWallets(): AppRoute {
|
||||
val shouldAskPushPermission = shouldInitiallyAskPermissionUseCase(PUSH_PERMISSION).getOrNull()
|
||||
?: return AppRoute.Home(launchMode = launchMode)
|
||||
return if (shouldAskPushPermission) {
|
||||
notificationsRepository.setShouldShowNotifications(
|
||||
key = NotificationId.EnablePushesReminderNotification.key,
|
||||
value = false,
|
||||
)
|
||||
AppRoute.PushNotification(AppRoute.PushNotification.Source.Stories)
|
||||
} else {
|
||||
neverToInitiallyAskPermissionUseCase(PUSH_PERMISSION)
|
||||
neverRequestPermissionUseCase(PUSH_PERMISSION)
|
||||
AppRoute.Home(launchMode = launchMode)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
override fun Content(modifier: Modifier) {
|
||||
RootContent(
|
||||
|
|
|
|||
|
|
@ -150,9 +150,6 @@
|
|||
<string name="balance_hidden_do_not_show_button">Nicht mehr anzeigen</string>
|
||||
<string name="balance_hidden_got_it_button">Verstanden</string>
|
||||
<string name="balance_hidden_title">Guthaben sind ausgeblendet</string>
|
||||
<string name="banner.swap.firsttime.button">Swap starten</string>
|
||||
<string name="banner.swap.firsttime.subtitletitle">Tauschen Sie ein Asset gegen ein anderes – in wenigen Schritten</string>
|
||||
<string name="banner.swap.firsttime.title">Führen Sie Ihren ersten Swap durch</string>
|
||||
<string name="beta_mode_warning_message">Laut den Blockchain-Entwicklern befinden sich der Kaspa-Token derzeit in der Betaphase. Bleibe dran für Updates!</string>
|
||||
<string name="beta_mode_warning_title">Beta-Phase</string>
|
||||
<string name="biometric_disabled_warning_description">Die Biometrie ist auf Deinem Gerät deaktiviert, daher kannst Du sie nicht zum Entsperren Deiner Wallets verwenden. Aktiviere die Biometrie in den Geräteeinstellungen, um diese Methode wieder nutzen zu können.</string>
|
||||
|
|
|
|||
|
|
@ -146,9 +146,6 @@
|
|||
<string name="balance_hidden_do_not_show_button">No mostrar de nuevo</string>
|
||||
<string name="balance_hidden_got_it_button">Entendido</string>
|
||||
<string name="balance_hidden_title">Los saldos están ocultos</string>
|
||||
<string name="banner.swap.firsttime.button">Iniciar intercambio</string>
|
||||
<string name="banner.swap.firsttime.subtitletitle">Convierte un activo en otro con solo unos toques</string>
|
||||
<string name="banner.swap.firsttime.title">Realiza tu primer intercambio</string>
|
||||
<string name="beta_mode_warning_message">Según los desarrolladores de la blockchain, los tokens de Kaspa se encuentran actualmente en fase beta. ¡Estén atentos a las actualizaciones!</string>
|
||||
<string name="beta_mode_warning_title">Modo Beta</string>
|
||||
<string name="biometric_disabled_warning_description">La biometría está desactivada en su dispositivo, por lo que no puede utilizarla para desbloquear sus billeteras. Active la biometría en los ajustes de su dispositivo para volver a utilizar este método.</string>
|
||||
|
|
|
|||
|
|
@ -146,9 +146,6 @@
|
|||
<string name="balance_hidden_do_not_show_button">Ne plus afficher</string>
|
||||
<string name="balance_hidden_got_it_button">Compris</string>
|
||||
<string name="balance_hidden_title">Les soldes sont masqués</string>
|
||||
<string name="banner.swap.firsttime.button">Lancer l\'échange</string>
|
||||
<string name="banner.swap.firsttime.subtitletitle">Convertissez un actif en un autre en quelques touches</string>
|
||||
<string name="banner.swap.firsttime.title">Effectuez votre premier échange</string>
|
||||
<string name="beta_mode_warning_message">Selon les développeurs de la blockchain, les jetons Kaspa sont actuellement en version bêta. Restez à l\'écoute des mises à jour !</string>
|
||||
<string name="beta_mode_warning_title">Mode bêta</string>
|
||||
<string name="biometric_disabled_warning_description">La biométrie est désactivée sur votre appareil, vous ne pouvez donc pas l\'utiliser pour déverrouiller vos portefeuilles. Activez la biométrie dans les paramètres de votre appareil pour pouvoir à nouveau utiliser cette méthode.</string>
|
||||
|
|
|
|||
|
|
@ -3,9 +3,6 @@
|
|||
<string name="address_type_default">Default</string>
|
||||
<string name="address_type_legacy">Legacy</string>
|
||||
<string name="alert_unsupported_card">Questa carta non è progettata per funzionare con Tangem</string>
|
||||
<string name="banner.swap.firsttime.button">Avvia lo scambio</string>
|
||||
<string name="banner.swap.firsttime.subtitletitle">Converti un asset in un altro con pochi tocchi</string>
|
||||
<string name="banner.swap.firsttime.title">Esegui il tuo primo scambio</string>
|
||||
<string name="cardano_low_ada">L\'importo inviato e il cambio non può essere inferiore a 1 ADA</string>
|
||||
<string name="common_accept">Accetta</string>
|
||||
<string name="common_amount">Importo</string>
|
||||
|
|
|
|||
|
|
@ -149,9 +149,6 @@
|
|||
<string name="balance_hidden_do_not_show_button">今後表示しない</string>
|
||||
<string name="balance_hidden_got_it_button">わかりました</string>
|
||||
<string name="balance_hidden_title">残高は非表示</string>
|
||||
<string name="banner.swap.firsttime.button">スワップを開始</string>
|
||||
<string name="banner.swap.firsttime.subtitletitle">数タップで1つの資産を別の資産に交換できます</string>
|
||||
<string name="banner.swap.firsttime.title">はじめてのスワップ</string>
|
||||
<string name="beta_mode_warning_message">ブロックチェーン開発者によると、Kaspaトークンは現在ベータ版です。アップデートをお楽しみに!</string>
|
||||
<string name="beta_mode_warning_title">ベータモード</string>
|
||||
<string name="biometric_disabled_warning_description">この端末では生体認証がオフになっているため、ウォレットの解除に使用できません。再度この方法を使用するには、端末の設定で生体認証を有効にしてください。</string>
|
||||
|
|
@ -510,6 +507,7 @@
|
|||
<string name="dynamic_addresses_notification_funds_found_description">追加のアドレスに資金が見つかりました。アクセスするには、動的アドレスを有効にしてください。</string>
|
||||
<string name="dynamic_addresses_notification_funds_found_title">追加のアドレスで資金が見つかりました</string>
|
||||
<string name="dynamic_addresses_receive_badge">動的アドレス</string>
|
||||
<string name="dynamic_addresses_unavailability_reason_pending_transaction_send">ネットワーク%@で保留中の取引が完了すると、ダイナミックアドレスを管理できるようになります。</string>
|
||||
<string name="earn_best_opportunities">おすすめ</string>
|
||||
<string name="earn_clear_filter">絞り込みを解除</string>
|
||||
<string name="earn_empty">リストは現在更新中のため、一時的に空になっています。しばらくしてからご確認ください。</string>
|
||||
|
|
@ -1099,6 +1097,12 @@
|
|||
<string name="onramp_error_transaction_already_processed">この取引はすでに処理されています。これ以上の対応は必要ありません。</string>
|
||||
<string name="onramp_fetching_best_rates">最良のレートを取得しています...</string>
|
||||
<string name="onramp_instant_status">即時</string>
|
||||
<string name="onramp_kyc_verification_bullet_free">本人確認は無料で、通常1〜2分で完了します。</string>
|
||||
<string name="onramp_kyc_verification_bullet_privacy">Tangemが本人確認情報にアクセスすることはありません。お客様の情報は、規制対象のプロバイダーに直接共有されます。</string>
|
||||
<string name="onramp_kyc_verification_bullet_unlocks">本人確認を行うと、今後このプロバイダーでの取引をすべて利用できるようになります。</string>
|
||||
<string name="onramp_kyc_verification_choose_another">別の方法を選択してください。</string>
|
||||
<string name="onramp_kyc_verification_subtitle">現地の規制要件に準拠するため、%@の利用には本人確認が必要です。</string>
|
||||
<string name="onramp_kyc_verification_title">決済プロバイダーによる本人確認が必要です。</string>
|
||||
<string name="onramp_legal">オンランプ機能を使用することにより、プロバイダの%1$sおよび%2$sに同意するものとします</string>
|
||||
<string name="onramp_legal_text">サービスは外部プロバイダーによって提供されます。 \nTangemは責任を負いません。</string>
|
||||
<string name="onramp_max_amount_restriction">買付金額は%s以下にしてください</string>
|
||||
|
|
@ -1591,7 +1595,7 @@
|
|||
<string name="tangem_pay_status_pending">保留中</string>
|
||||
<string name="tangem_pay_status_reversed">取消済み</string>
|
||||
<string name="tangem_pay_terms_fees_limits">利用規約・手数料・利用制限</string>
|
||||
<string name="tangem_pay_terms_limits">利用規約と上限条件</string>
|
||||
<string name="tangem_pay_terms_limits">利用規約と手数料</string>
|
||||
<string name="tangem_pay_transaction_declined_notification_text">銀行がこの取引リクエストを拒否しました。</string>
|
||||
<string name="tangem_pay_transaction_fee_notification_text">この手数料は、送金処理にかかるコストをカバーするためのものです。</string>
|
||||
<string name="tangem_pay_transaction_reversed_notification_text">この取引は加盟店により一部または全額取り消されました</string>
|
||||
|
|
@ -1731,7 +1735,7 @@
|
|||
<string name="tangempay_title">Tangem Pay</string>
|
||||
<string name="tangempay_usdc_on_polygon_network">Polygonネットワーク上のUSDC</string>
|
||||
<string name="tangempay_use_tangem_device_to_restore_payment_account">下のボタンをクリックしてアクセスを復元してください</string>
|
||||
<string name="tangempay_withdrawal_note_description">USDC Polygonのオンチェーン残高はカード残高とは異なり、購入後2営業日以内に更新されます。返金された購入資金はオンチェーン残高に戻らず、出金もできませんが、カード残高に残り、購入に使用できます。</string>
|
||||
<string name="tangempay_withdrawal_note_description">返金分はオンチェーンのPolygon残高には戻らず、出金にも利用できません。ただし、カード残高として残り、支払いに利用できます。</string>
|
||||
<string name="tangempay_withdrawal_note_title">ご注意ください</string>
|
||||
<string name="tangempay_your_pin_code">PINコード</string>
|
||||
<string name="this_is_my_wallet_title">これは私のウォレットです</string>
|
||||
|
|
|
|||
|
|
@ -150,9 +150,6 @@
|
|||
<string name="balance_hidden_do_not_show_button">Não mostrar novamente</string>
|
||||
<string name="balance_hidden_got_it_button">Entendi</string>
|
||||
<string name="balance_hidden_title">Os saldos estão ocultos.</string>
|
||||
<string name="banner.swap.firsttime.button">Iniciar swap</string>
|
||||
<string name="banner.swap.firsttime.subtitletitle">Converta um ativo em outro com apenas alguns toques</string>
|
||||
<string name="banner.swap.firsttime.title">Faça seu primeiro swap</string>
|
||||
<string name="beta_mode_warning_message">Segundo os desenvolvedores da blockchain, os tokens Kaspa estão atualmente em fase beta. Fique atento para mais novidades!</string>
|
||||
<string name="beta_mode_warning_title">Modo Beta</string>
|
||||
<string name="biometric_disabled_warning_description">A biometria está desativada no seu dispositivo, portanto, você não pode usá-la para desbloquear suas carteiras. Ative a biometria nas configurações do seu dispositivo para usar esse método novamente.</string>
|
||||
|
|
|
|||
|
|
@ -152,9 +152,6 @@
|
|||
<string name="balance_hidden_do_not_show_button">Больше не показывать</string>
|
||||
<string name="balance_hidden_got_it_button">Понятно</string>
|
||||
<string name="balance_hidden_title">Балансы скрыты</string>
|
||||
<string name="banner.swap.firsttime.button">Начать обмен</string>
|
||||
<string name="banner.swap.firsttime.subtitletitle">Превратите один актив в другой всего за несколько касаний</string>
|
||||
<string name="banner.swap.firsttime.title">Совершите первый обмен</string>
|
||||
<string name="beta_mode_warning_message">Согласно информации от разработчиков сети, токены Kaspa находятся в режиме бета. Следите за обновлениями!</string>
|
||||
<string name="beta_mode_warning_title">Бета режим</string>
|
||||
<string name="biometric_disabled_warning_description">Биометрия отключена на вашем устройстве, поэтому вы не можете использовать её для разблокировки кошельков. Включите биометрию в настройках устройства, чтобы снова использовать этот способ.</string>
|
||||
|
|
@ -228,6 +225,7 @@
|
|||
<string name="common_accounts">Аккаунты</string>
|
||||
<string name="common_activate">Активировать</string>
|
||||
<string name="common_add">Добавить</string>
|
||||
<string name="common_add_funds">Добавить средств</string>
|
||||
<string name="common_add_to_portfolio">Добавить в портфель</string>
|
||||
<string name="common_add_token">Добавить токен</string>
|
||||
<string name="common_add_tokens">Добавьте токены</string>
|
||||
|
|
@ -1200,6 +1198,7 @@
|
|||
<string name="qr_scanner_error_unsupported_network_title">Поддерживаемые токены не найдены</string>
|
||||
<string name="qr_scanner_warning_unknown_parameters_message">Этот QR-код содержит параметры, которые не распознаны: %s. Некоторые данные платежа могут быть утеряны, если вы продолжите.</string>
|
||||
<string name="qr_scanner_warning_unknown_parameters_title">Неизвестные параметры</string>
|
||||
<string name="quick_action_receive_description">Поделиться адресом или QR кодом</string>
|
||||
<string name="receive_bottom_sheet_no_memo_required_message">Memo не требуется</string>
|
||||
<string name="receive_bottom_sheet_warning_message">%1$s (%2$s) в сети %3$s</string>
|
||||
<string name="receive_bottom_sheet_warning_message_compact">%1$s в %2$s сети</string>
|
||||
|
|
@ -1586,7 +1585,9 @@
|
|||
<string name="swapping_approve_information_text">Подтверждения считаются отраслевым стандартом для всех децентрализованных бирж и защищают ваш кошелек от доступа со стороны смарт-контракта без вашего разрешения. По замыслу смарт-контракты не могут получить доступ к вашим токенам, если вы не одобрите доступ со своей стороны. «Разблокируя» свои токены, вы даете смарт-контракту 1inch разрешение тратить ваши активы. Майнеры сети получают компенсацию за газ (оплачиваемый вами) за запись этого действия в блокчейне. Как только разрешение будет предоставлено, вы сможете обменять свой токен.</string>
|
||||
<string name="swapping_approve_information_title">Разрешение</string>
|
||||
<string name="swapping_fee_estimation_error_text">Ошибка расчета комиссии. Пожалуйста, отправьте информацию в поддержку.</string>
|
||||
<string name="swapping_from_account_title">Вы отправляете с</string>
|
||||
<string name="swapping_from_title">Вы отправляете</string>
|
||||
<string name="swapping_from_title_v2">Вы отправляете</string>
|
||||
<string name="swapping_high_price_impact_description">Обмен этой суммы выбранных токенов может вызвать значительные колебания цены и уменьшить получаемую сумму.</string>
|
||||
<string name="swapping_high_price_impact_text">Вы можете получить значительно меньше из-за низкой ликвидности. Попробуйте меньшую сумму или другого провайдера.</string>
|
||||
<string name="swapping_high_price_impact_title">Высокое влияние на цену</string>
|
||||
|
|
@ -1595,6 +1596,7 @@
|
|||
<string name="swapping_permission_header">Дать разрешение</string>
|
||||
<string name="swapping_swap_action">Обменять</string>
|
||||
<string name="swapping_swap_action_in_progress">Обмен…</string>
|
||||
<string name="swapping_to_account_title">Вы получите на</string>
|
||||
<string name="swapping_to_title">Вы получите</string>
|
||||
<string name="swapping_token_list_title">Выберите токен</string>
|
||||
<string name="swapping_token_not_available">недоступен</string>
|
||||
|
|
@ -1685,7 +1687,7 @@
|
|||
<string name="tangempay_card_details_withdraw_error_title">Вывод сейчас недоступен</string>
|
||||
<string name="tangempay_card_details_withdraw_in_progress_description">Вы не можете начать обмен или новый вывод, пока не завершится текущий.</string>
|
||||
<string name="tangempay_card_details_withdraw_in_progress_title">Вывод выполняется</string>
|
||||
<string name="tangempay_card_limit_setup_amount_subtitle">Установить лимит от %s</string>
|
||||
<string name="tangempay_card_limit_setup_amount_subtitle">Можно установить от %s</string>
|
||||
<string name="tangempay_card_limit_setup_error_message">Не удалось установить лимит. Пожалуйста, попробуйте снова.</string>
|
||||
<string name="tangempay_card_page_daily_limit_change">Изменить</string>
|
||||
<string name="tangempay_card_page_daily_limit_current_limit">Текущий лимит</string>
|
||||
|
|
|
|||
|
|
@ -148,9 +148,6 @@
|
|||
<string name="balance_hidden_do_not_show_button">Більше не показувати</string>
|
||||
<string name="balance_hidden_got_it_button">Зрозуміло</string>
|
||||
<string name="balance_hidden_title">Баланси приховані</string>
|
||||
<string name="banner.swap.firsttime.button">Почати обмін</string>
|
||||
<string name="banner.swap.firsttime.subtitletitle">Перетворіть один актив на інший лише кількома дотиками</string>
|
||||
<string name="banner.swap.firsttime.title">Здійсніть перший обмін</string>
|
||||
<string name="beta_mode_warning_message">Згідно інформації від розробників мережі, токени Kaspa знаходяться у режимі бета. Слідкуйте за оновленнями!</string>
|
||||
<string name="beta_mode_warning_title">Бета режим</string>
|
||||
<string name="biometric_disabled_warning_description">Біометрія на вашому пристрої вимкнена, тому ви не можете використовувати її для розблокування гаманців. Увімкніть біометрію в налаштуваннях пристрою, щоб знову використовувати цей метод.</string>
|
||||
|
|
|
|||
|
|
@ -149,9 +149,6 @@
|
|||
<string name="balance_hidden_do_not_show_button">不要再次显示</string>
|
||||
<string name="balance_hidden_got_it_button">明白</string>
|
||||
<string name="balance_hidden_title">余额已隐藏</string>
|
||||
<string name="banner.swap.firsttime.button">开始兑换</string>
|
||||
<string name="banner.swap.firsttime.subtitletitle">完成您的首次兑换</string>
|
||||
<string name="banner.swap.firsttime.title">完成您的首次兑换</string>
|
||||
<string name="beta_mode_warning_message">据区块链开发者称,Kaspa代币目前处于测试阶段。敬请关注后续更新!</string>
|
||||
<string name="beta_mode_warning_title">测试模式</string>
|
||||
<string name="biometric_disabled_warning_description">您的设备已关闭生物识别功能,因此无法使用此功能解锁钱包。请在设备设置中启用生物识别功能,即可再次使用此方法。</string>
|
||||
|
|
|
|||
|
|
@ -22,9 +22,6 @@
|
|||
<string name="app_settings_saved_wallet">將錢包保存在應用程序中</string>
|
||||
<string name="app_settings_saved_wallet_footer">啟用以將所有錢包鏈接到 Tangem 應用程序。解鎖應用程序需要生物識別身份驗證。交易簽名需要輕觸您的 Tangem 卡片</string>
|
||||
<string name="app_settings_title">APP設置</string>
|
||||
<string name="banner.swap.firsttime.button">開始兌換</string>
|
||||
<string name="banner.swap.firsttime.subtitletitle">完成您的首次兌換</string>
|
||||
<string name="banner.swap.firsttime.title">完成您的首次兌換</string>
|
||||
<string name="biometric_lockout_permanent_warning_description">請掃描卡片</string>
|
||||
<string name="biometric_lockout_warning_description">請30秒後重試或刷卡</string>
|
||||
<string name="biometric_lockout_warning_title">嘗試次數過多</string>
|
||||
|
|
|
|||
|
|
@ -1123,6 +1123,8 @@
|
|||
<string name="onramp_kyc_verification_choose_another">Choose another method</string>
|
||||
<string name="onramp_kyc_verification_subtitle">To comply with local regulatory requirements %@ requires identity verification.</string>
|
||||
<string name="onramp_kyc_verification_title">Identity verification required by payment provider</string>
|
||||
<string name="onramp_kyc_verification_verify_button">Verify</string>
|
||||
<string name="onramp_kyc_verification_whats_important">What\'s important</string>
|
||||
<string name="onramp_legal">By using onramp functionality, you agree with provider’s %1$s and %2$s</string>
|
||||
<string name="onramp_legal_text">Service is provided by an external provider.\nTangem is not responsible.</string>
|
||||
<string name="onramp_max_amount_restriction">The purchase amount should be no more than %s</string>
|
||||
|
|
@ -1189,6 +1191,8 @@
|
|||
<string name="quick_action_buy_description">Credit card or bank account</string>
|
||||
<string name="quick_action_receive_description">Share your address or QR-code</string>
|
||||
<string name="quick_action_swap_description">Between your portfolios</string>
|
||||
<string name="quick_top_up_chip_other">Other</string>
|
||||
<string name="quick_top_up_title">Quick top up</string>
|
||||
<string name="receive_bottom_sheet_no_memo_required_message">No memo required</string>
|
||||
<string name="receive_bottom_sheet_warning_message">%1$s (%2$s) on %3$s network</string>
|
||||
<string name="receive_bottom_sheet_warning_message_compact">%1$s on %2$s network</string>
|
||||
|
|
|
|||
|
|
@ -169,9 +169,15 @@ sealed class StakingAnalyticsEvent(
|
|||
params = mapOf(AnalyticsParam.TOKEN_PARAM to token),
|
||||
)
|
||||
|
||||
data class NotEnoughFee(val token: String) : StakingAnalyticsEvent(
|
||||
data class NotEnoughFee(
|
||||
val token: String,
|
||||
val blockchain: String,
|
||||
) : StakingAnalyticsEvent(
|
||||
event = "Notice - Not Enough Fee",
|
||||
params = mapOf(AnalyticsParam.TOKEN_PARAM to token),
|
||||
params = mapOf(
|
||||
AnalyticsParam.TOKEN_PARAM to token,
|
||||
AnalyticsParam.BLOCKCHAIN to blockchain,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1181,6 +1181,7 @@ internal class StakingModel @Inject constructor(
|
|||
analyticsEventHandler.send(
|
||||
StakingAnalyticsEvent.NotEnoughFee(
|
||||
token = cryptoCurrencyStatus.currency.symbol,
|
||||
blockchain = cryptoCurrencyStatus.currency.network.name,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -654,6 +654,7 @@ internal class StakingModelTransactionTest : StakingModelTestBase() {
|
|||
fun `WHEN onNotEnoughFeeNotificationShow THEN NotEnoughFee analytics sent with token`() = runTest {
|
||||
val (testCryptoCurrencyStatus, testAccountCurrencyStatus) = createMockedAccountCurrencyStatus()
|
||||
every { testCryptoCurrencyStatus.currency.symbol } returns "SOL"
|
||||
every { testCryptoCurrencyStatus.currency.network.name } returns "solana"
|
||||
every {
|
||||
getAccountCurrencyStatusUseCase(testUserWalletId, testCryptoCurrency)
|
||||
} returns flowOf(testAccountCurrencyStatus)
|
||||
|
|
@ -670,7 +671,12 @@ internal class StakingModelTransactionTest : StakingModelTestBase() {
|
|||
model.onNotEnoughFeeNotificationShow()
|
||||
|
||||
verify {
|
||||
analyticsEventHandler.send(StakingAnalyticsEvent.NotEnoughFee(token = "SOL"))
|
||||
analyticsEventHandler.send(
|
||||
StakingAnalyticsEvent.NotEnoughFee(
|
||||
token = "SOL",
|
||||
blockchain = "solana",
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
model.onDestroy()
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ internal class SetTokenListTransformer(
|
|||
is TokenConverterParams.Account -> params.accountList.accountStatuses
|
||||
.filterIsInstance<AccountStatus.Payment>()
|
||||
.firstOrNull()
|
||||
is TokenConverterParams.Wallet -> null
|
||||
is TokenConverterParams.Wallet -> return TangemPayMainUM.Empty
|
||||
} ?: return this
|
||||
|
||||
return tangemPayConverter.convert(paymentAccountStatus)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue