diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt index 8dabd175b0..21feb2beda 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt @@ -183,11 +183,14 @@ private fun handleWalletAction(action: Action) { BackupService.State.FinalizingPrimaryCard -> BackupAction.PrepareToWritePrimaryCard is BackupService.State.FinalizingBackupCard -> BackupAction.PrepareToWriteBackupCard(backupState.index) else -> { - if (onboardingWalletState.backupState.backupStep == BackupStep.InitBackup || + if (onboardingWalletState.backupState.backupStep == null || + onboardingWalletState.backupState.backupStep == BackupStep.InitBackup || onboardingWalletState.backupState.backupStep == BackupStep.Finished ) { Analytics.send(Onboarding.Backup.ScreenOpened()) - BackupAction.IntroduceBackup + + val isWallet2 = scanResponse?.cardTypesResolver?.isWallet2() ?: false + if (isWallet2) BackupAction.StartBackup else BackupAction.IntroduceBackup } else { null } @@ -520,8 +523,8 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) } is CompletionResult.Failure -> Unit } + tangemSdkManager.clearProductType() } - tangemSdkManager.clearProductType() } is BackupAction.WriteBackupCard -> { val cardIndex = if (action.cardNumber > 0) action.cardNumber - 1 else action.cardNumber @@ -557,8 +560,9 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) } } } + + tangemSdkManager.clearProductType() } - tangemSdkManager.clearProductType() } is BackupAction.DiscardBackup -> { backupService.discardSavedBackup() @@ -679,7 +683,7 @@ internal fun gatherCardIds(backupState: BackupState, card: CardDTO?): List { showInterruptOnboardingDialog() diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt index c7cb0ecd1e..65f998acf3 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt @@ -80,7 +80,7 @@ private object OnboardingWallet2Reducer { } private object BackupReducer { - @Suppress("ComplexMethod") + @Suppress("ComplexMethod", "LongMethod") fun reduce(action: BackupAction, state: BackupState): BackupState { return when (action) { is BackupAction.IntroduceBackup -> BackupState( @@ -88,8 +88,20 @@ private object BackupReducer { maxBackupCards = 2, canSkipBackup = state.canSkipBackup, ) - BackupAction.StartAddingPrimaryCard -> state.copy(backupStep = BackupStep.ScanOriginCard) - BackupAction.StartAddingBackupCards -> state.copy(backupStep = BackupStep.AddBackupCards) + BackupAction.StartAddingPrimaryCard -> { + state.copy( + backupStep = BackupStep.ScanOriginCard, + maxBackupCards = 2, + canSkipBackup = state.canSkipBackup, + ) + } + BackupAction.StartAddingBackupCards -> { + state.copy( + backupStep = BackupStep.AddBackupCards, + maxBackupCards = 2, + canSkipBackup = state.canSkipBackup, + ) + } is BackupAction.AddBackupCard.Success -> { state.copy( backupCards = state.backupCards + action.card, diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt index 214dafe1b0..6f140911e6 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt @@ -29,6 +29,7 @@ data class OnboardingWalletState( OnboardingWalletStep.CreateWallet -> 1 OnboardingWalletStep.Backup -> { when (backupState.backupStep) { + null -> 2 BackupStep.InitBackup -> 2 BackupStep.ScanOriginCard -> 3 BackupStep.AddBackupCards -> 4 @@ -74,7 +75,7 @@ data class BackupState( val backupCardsArtworks: Map = emptyMap(), val accessCode: String = "", val accessCodeError: AccessCodeError? = null, - val backupStep: BackupStep = BackupStep.InitBackup, + val backupStep: BackupStep? = null, val maxBackupCards: Int = 2, val canSkipBackup: Boolean = true, val isInterruptedBackup: Boolean = false, diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt index e9d9fd0fe4..e7c4765a87 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt @@ -249,6 +249,7 @@ class OnboardingWalletFragment : private fun setBackupState(state: BackupState) { when (state.backupStep) { + null -> Unit BackupStep.InitBackup -> showBackupIntro(state) BackupStep.ScanOriginCard -> showScanOriginCard() BackupStep.AddBackupCards -> showAddBackupCards(state) @@ -453,7 +454,7 @@ class OnboardingWalletFragment : } else { val cardIdFormatter = CardIdFormatter(CardIdDisplayFormat.LastMasked(4)) getString( - R.string.onboarding_subtitle_scan_primary_card_format, + R.string.onboarding_subtitle_scan_backup_card_format, state.primaryCardId?.let { cardIdFormatter.getFormattedCardId(it) }, ) } diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml index 7cf0fda106..e57b8a91b3 100644 --- a/core/res/src/main/res/values-fr/strings.xml +++ b/core/res/src/main/res/values-fr/strings.xml @@ -565,7 +565,7 @@ Je comprends que je ne peux pas utiliser cette carte pour récupérer mon code d\'accès sur les autres cartes du portefeuille actuel La réinitialisation aux paramètres d\'usine supprimera complètement le portefeuille de la carte sélectionnée. Vous ne pourrez pas restaurer le portefeuille actuel ni utiliser la carte pour récupérer le code d\'accès. La réinitialisation aux paramètres d\'usine supprimera complètement le portefeuille de la carte sélectionnée et le supprimera de l\'application. Vous ne pourrez pas restaurer le portefeuille actuel. - Les propriétaires du Tangem Ring bénéficient de 3 échanges sans commission sur Changelly jusqu\'au 15/11 ! + Les propriétaires du Tangem Ring ont droit à 3 swap gratis sur Changelly jusqu\'au 15/11 ! Échangez avec 0 %% de frais maintenant! Avez-vous une carte bancaire d\'un autre pays et un permis de séjour ou une inscription en dehors de la Fédération de Russie ? Les cartes bancaires russes ne sont actuellement pas acceptées diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml index 5fa173ec0f..3ac533d36e 100644 --- a/core/res/src/main/res/values-ru/strings.xml +++ b/core/res/src/main/res/values-ru/strings.xml @@ -52,7 +52,7 @@ Сбросить Вы уверены, что хотите это сделать? Смена кода доступа - Код доступа будет изменен только на данной карте + Код доступа будет изменен только на данной карте или кольце Все устройства Tangem выбранного кошелька сброшены до заводских настроек, вы можете создать новый кошелек Сброс завершён Хотите сбросить следующее устройство от этого кошелька? @@ -61,7 +61,7 @@ Вы сбросили не все Tangem устройства Заводские настройки Тип безопасности - Настройки карты + Настройки устройства Помимо сетевой комиссий, сеть Cardano взимает %1$s ADA при транзакции с токеном %2$s Требования к транзакции Cardano Чтобы совершить транзакцию %1$s, внесите некоторую сумму ADA для покрытия сетевой комиссии и минимального значения ADA (рекомендуется 5 ADA) @@ -223,7 +223,7 @@ Реферальная программа Переверните экран вашего устройства вниз, чтобы быстро скрыть и отобразить балансы %s хэшей - Номер карты + Номер устройства Обратиться в поддержку Добавить еще карты Валюта приложения diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index 4abb12f95e..513cd8eba2 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -50,7 +50,7 @@ Reset Are you sure you want to do this? Change Access Code - Access code will be changed on this card only + Access code will be changed on this card or ring only All Tangem devices in the selected wallet have been reset to factory settings. You can now create a new wallet. Reset complete Do you want to reset the next device in this wallet? @@ -59,7 +59,7 @@ You haven\'t reset all your Tangem devices Reset to Factory Settings Security Mode - Card settings + Device settings In addition to network fee, the Cardano network charges %1$s ADA when transacting with the %2$s token Cardano transaction requirements To make a %1$s transaction, you must deposit some ADA to cover the network fee and minimum ADA value (5 ADA recommended) @@ -219,7 +219,7 @@ Referral program Flip your device screen down to quickly hide and show balances %s hashes - Card ID + Device ID Contact support Link More Cards App Currency diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index d24b9a04a4..0b8a79c023 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -91,7 +91,7 @@ markdownComposeView = "0.5.4" # region Tangem tangemBlockchainSdk = "release-app_5.16-813" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "release-app_5.16-389" +tangemCardSdk = "release-app_5.16-390" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ tangemVico = "2.0.0-alpha.25-tangem17" #tangemVico = "0.0.1" # Keep it! - used for local builds ^