diff --git a/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt b/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt index d72eb92e23..2fcfc2411a 100644 --- a/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt @@ -24,6 +24,7 @@ import com.tangem.domain.common.configs.CardConfig import com.tangem.domain.common.util.derivationStyleProvider import com.tangem.domain.models.scan.CardDTO import com.tangem.domain.models.scan.CardDTO.Companion.RING_BATCH_IDS +import com.tangem.domain.models.scan.CardDTO.Companion.RING_BATCH_PREFIX import com.tangem.domain.models.scan.ProductType import com.tangem.domain.models.scan.ScanResponse import com.tangem.operations.ScanTask @@ -248,7 +249,7 @@ private class ScanWalletProcessor( } private fun getWalletProductType(card: CardDTO): ProductType { - if (RING_BATCH_IDS.contains(card.batchId)) { + if (RING_BATCH_IDS.contains(card.batchId) || card.batchId.startsWith(RING_BATCH_PREFIX)) { return ProductType.Ring } return if (card.firmwareVersion >= FirmwareVersion.Ed25519Slip0010Available && diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt index 3538c3bb27..9ec732f54d 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt @@ -2,6 +2,7 @@ package com.tangem.tap.features.onboarding.products.wallet.redux import android.net.Uri import com.tangem.common.CompletionResult +import com.tangem.common.card.Card import com.tangem.feature.onboarding.data.model.CreateWalletResponse import com.tangem.feature.onboarding.presentation.wallet2.analytics.SeedPhraseSource import com.tangem.tap.domain.tasks.product.CreateProductWalletTaskResponse @@ -68,7 +69,7 @@ sealed class BackupAction : Action { data object StartAddingBackupCards : BackupAction() data object AddBackupCard : BackupAction() { - data object Success : BackupAction() + data class Success(val card: Card) : BackupAction() data class ChangeButtonLoading(val isLoading: Boolean) : BackupAction() } 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 95b2fd2452..045c4a5887 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 @@ -442,7 +442,7 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) when (result) { is CompletionResult.Success -> { updateArtworks(backupService.addedBackupCardsCount, result.data) - store.dispatchOnMain(BackupAction.AddBackupCard.Success) + store.dispatchOnMain(BackupAction.AddBackupCard.Success(result.data)) } is CompletionResult.Failure -> { val crashlytics = FirebaseCrashlytics.getInstance() @@ -511,7 +511,14 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) } } is BackupAction.WriteBackupCard -> { - backupService.proceedBackup { result -> + val cardIndex = if (action.cardNumber > 0) action.cardNumber - 1 else action.cardNumber + val backupCard = backupState.backupCards.getOrNull(cardIndex) + val iconScanRes = if (backupCard?.batchId?.startsWith(CardDTO.RING_BATCH_PREFIX) == true) { + R.drawable.img_hand_scan_ring + } else { + null + } + backupService.proceedBackup(iconScanRes = iconScanRes) { result -> when (result) { is CompletionResult.Success -> { val backupValidator = BackupValidator() 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 035db68bae..76a963d1b9 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 @@ -1,6 +1,5 @@ package com.tangem.tap.features.onboarding.products.wallet.redux -import com.tangem.domain.common.util.cardTypesResolver import com.tangem.tap.backupService import com.tangem.tap.common.redux.AppState import com.tangem.tap.common.redux.global.GlobalAction @@ -53,7 +52,6 @@ private object ReducerForGlobalAction { maxBackupCards = MAX_BACKUP_CARDS, canSkipBackup = action.canSkipBackup, ), - isRingOnboarding = action.scanResponse.cardTypesResolver.isRing(), ) } is GlobalAction.Onboarding.StartForUnfinishedBackup -> { @@ -92,7 +90,12 @@ private object BackupReducer { ) BackupAction.StartAddingPrimaryCard -> state.copy(backupStep = BackupStep.ScanOriginCard) BackupAction.StartAddingBackupCards -> state.copy(backupStep = BackupStep.AddBackupCards) - BackupAction.AddBackupCard.Success -> state.copy(backupCardsNumber = state.backupCardsNumber + 1) + is BackupAction.AddBackupCard.Success -> { + state.copy( + backupCards = state.backupCards + action.card, + backupCardsNumber = state.backupCardsNumber + 1, + ) + } is BackupAction.AddBackupCard.ChangeButtonLoading -> state.copy(showBtnLoading = action.isLoading) BackupAction.ShowAccessCodeInfoScreen -> state.copy(backupStep = BackupStep.SetAccessCode) BackupAction.ShowEnterAccessCodeScreen -> state.copy( 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 853678f202..1e3fbf3a67 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 @@ -2,6 +2,7 @@ package com.tangem.tap.features.onboarding.products.wallet.redux import android.graphics.Bitmap import android.net.Uri +import com.tangem.common.card.Card import com.tangem.domain.redux.StateDialog import org.rekotlin.StateType @@ -14,7 +15,6 @@ data class OnboardingWalletState( val backupState: BackupState = BackupState(), val walletImages: WalletImages = WalletImages(), val showConfetti: Boolean = false, - val isRingOnboarding: Boolean = false, ) : StateType { @Suppress("MagicNumber") @@ -66,6 +66,7 @@ enum class OnboardingWalletStep { data class BackupState( val primaryCardId: String? = null, val backupCardsNumber: Int = 0, + val backupCards: List = emptyList(), val backupCardIds: List = emptyList(), @Transient val backupCardsArtworks: Map = emptyMap(), diff --git a/domain/models/src/main/kotlin/com/tangem/domain/models/scan/CardDTO.kt b/domain/models/src/main/kotlin/com/tangem/domain/models/scan/CardDTO.kt index fcce746f21..706e05a1e5 100644 --- a/domain/models/src/main/kotlin/com/tangem/domain/models/scan/CardDTO.kt +++ b/domain/models/src/main/kotlin/com/tangem/domain/models/scan/CardDTO.kt @@ -323,5 +323,6 @@ data class CardDTO( companion object { val RING_BATCH_IDS = listOf("AC17", "BA01") + const val RING_BATCH_PREFIX = "BA" } } \ No newline at end of file diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index ab6f07950a..f647d69b87 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -91,7 +91,7 @@ markdownComposeView = "0.5.4" # region Tangem tangemBlockchainSdk = "release-app_5.16-807" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "release-app_5.16-386" +tangemCardSdk = "release-app_5.16-388" #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 ^