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 3bfef52562..c8bf29caca 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 @@ -18,6 +18,7 @@ import com.tangem.domain.common.ScanResponse import com.tangem.domain.common.TapWorkarounds.isExcluded import com.tangem.domain.common.TapWorkarounds.isNotSupportedInThatRelease import com.tangem.domain.common.TapWorkarounds.isSaltPay +import com.tangem.domain.common.TapWorkarounds.isTangemNote import com.tangem.domain.common.TapWorkarounds.isTangemTwins import com.tangem.domain.common.TapWorkarounds.useOldStyleDerivation import com.tangem.domain.common.TwinsHelper @@ -58,6 +59,7 @@ class ScanProductTask( } val commandProcessor = when { + card.isTangemNote -> ScanNoteProcessor() card.isTangemTwins -> ScanTwinProcessor() else -> ScanWalletProcessor(userTokensRepository, additionalBlockchainsToDerive) } @@ -88,6 +90,24 @@ class ScanProductTask( } } +private class ScanNoteProcessor : ProductCommandProcessor { + override fun proceed( + card: Card, + session: CardSession, + callback: (result: CompletionResult) -> Unit + ) { + callback( + CompletionResult.Success( + ScanResponse( + card = card, + productType = ProductType.Note, + walletData = session.environment.walletData, + ), + ), + ) + } +} + private class ScanWalletProcessor( private val userTokensRepository: UserTokensRepository?, private val additionalBlockchainsToDerive: Collection? = null, @@ -108,7 +128,6 @@ private class ScanWalletProcessor( callback: (result: CompletionResult) -> Unit, ) { if (card.wallets.isEmpty() || !card.isMultiwalletAllowed) { - // match for the saltPay card to startLinkingForBackupIfNeeded(card, session, callback) return } 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 66c65bbf6d..745dee84fd 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 @@ -4,6 +4,7 @@ import com.tangem.blockchain.common.Blockchain import com.tangem.common.CompletionResult import com.tangem.common.card.Card import com.tangem.common.extensions.ifNotNull +import com.tangem.domain.common.SaltPayWorkaround import com.tangem.domain.common.ScanResponse import com.tangem.domain.common.extensions.withMainContext import com.tangem.operations.backup.BackupService @@ -336,9 +337,11 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) } } is BackupAction.ResumeFoundUnfinishedBackup -> { - // val isSaltPay = backupService.primaryBatchId?.let { SaltPayWorkaround.isVisaBatchId(it) } ?: false - // store.dispatch(GlobalAction.Onboarding.StartForUnfinishedBackup(isSaltPay)) - // store.dispatch(NavigationAction.NavigateTo(AppScreen.OnboardingWallet)) + val isSaltPay = backupService.primaryCardId?.slice(0..3)?.let { + SaltPayWorkaround.isVisaBatchId(it) + } ?: false + store.dispatch(GlobalAction.Onboarding.StartForUnfinishedBackup(isSaltPay)) + store.dispatch(NavigationAction.NavigateTo(AppScreen.OnboardingWallet)) } is BackupAction.DismissBackup -> { if (onboardingWalletState.isSaltPay) throw UnsupportedOperationException()