From ec1e5c62fc217633886a35aa0919a6d9f7de8134 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 6 Dec 2023 15:17:41 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../paramsInterceptor/CardContextInterceptor.kt | 1 + .../tangem/tap/domain/tasks/product/ScanProductTask.kt | 9 +++++---- .../tangem/tap/features/onboarding/OnboardingHelper.kt | 8 ++++---- .../tangem/data/card/DefaultCardSdkConfigRepository.kt | 1 + .../com/tangem/domain/common/TangemCardTypesResolver.kt | 2 +- .../main/java/com/tangem/domain/common/TapWorkarounds.kt | 5 ++++- .../com/tangem/domain/userwallets/UserWalletBuilder.kt | 2 +- .../com/tangem/domain/userwallets/UserWalletIdBuilder.kt | 1 + .../kotlin/com/tangem/domain/models/scan/ScanResponse.kt | 2 +- 9 files changed, 19 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/common/analytics/paramsInterceptor/CardContextInterceptor.kt b/app/src/main/java/com/tangem/tap/common/analytics/paramsInterceptor/CardContextInterceptor.kt index cf97ded034..6a963e544f 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/paramsInterceptor/CardContextInterceptor.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/paramsInterceptor/CardContextInterceptor.kt @@ -48,6 +48,7 @@ class CardContextInterceptor( ProductType.Wallet2 -> "Wallet 2.0" ProductType.Ring -> "Ring" ProductType.Start2Coin -> "Start2Coin" + ProductType.Visa -> "VISA" else -> if (DemoHelper.isDemoCard(scanResponse)) { if (DemoHelper.isTestDemoCard(scanResponse)) { "Demo Test" 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 a3fac64bc1..8d811541cf 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.TapWorkarounds.isExcluded import com.tangem.domain.common.TapWorkarounds.isNotSupportedInThatRelease import com.tangem.domain.common.TapWorkarounds.isStart2Coin import com.tangem.domain.common.TapWorkarounds.isTangemTwins +import com.tangem.domain.common.TapWorkarounds.isVisa import com.tangem.domain.common.TwinsHelper import com.tangem.domain.common.configs.CardConfig import com.tangem.domain.common.util.derivationStyleProvider @@ -172,10 +173,10 @@ private class ScanWalletProcessor( } private fun determineProductTypeForSingleCurrencyWallet(card: CardDTO): ProductType { - return if (card.isStart2Coin) { - ProductType.Start2Coin - } else { - ProductType.Note + return when { + card.isStart2Coin -> ProductType.Start2Coin + card.isVisa -> ProductType.Visa + else -> ProductType.Note } } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingHelper.kt b/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingHelper.kt index 2f455c7eae..4a0164cbb1 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingHelper.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingHelper.kt @@ -54,7 +54,7 @@ object OnboardingHelper { } fun whereToNavigate(scanResponse: ScanResponse): AppScreen { - return when (scanResponse.productType) { + return when (val type = scanResponse.productType) { ProductType.Note -> AppScreen.OnboardingNote ProductType.Wallet, ProductType.Wallet2, @@ -65,9 +65,9 @@ object OnboardingHelper { AppScreen.OnboardingOther } ProductType.Twins -> AppScreen.OnboardingTwins - ProductType.Start2Coin -> throw java.lang.UnsupportedOperationException( - "Onboarding for Start2Coin cards is not supported", - ) + ProductType.Start2Coin, + ProductType.Visa, + -> throw UnsupportedOperationException("Onboarding for ${type.name} cards is not supported") } } diff --git a/data/card/src/main/java/com/tangem/data/card/DefaultCardSdkConfigRepository.kt b/data/card/src/main/java/com/tangem/data/card/DefaultCardSdkConfigRepository.kt index 97c5e7dc35..0efec70af4 100644 --- a/data/card/src/main/java/com/tangem/data/card/DefaultCardSdkConfigRepository.kt +++ b/data/card/src/main/java/com/tangem/data/card/DefaultCardSdkConfigRepository.kt @@ -53,6 +53,7 @@ internal class DefaultCardSdkConfigRepository( ProductType.Wallet2, ProductType.Start2Coin, ProductType.Ring, + ProductType.Visa, -> CardIdDisplayFormat.Full } } diff --git a/domain/legacy/src/main/java/com/tangem/domain/common/TangemCardTypesResolver.kt b/domain/legacy/src/main/java/com/tangem/domain/common/TangemCardTypesResolver.kt index 0e4f5764be..31c86c15b1 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/common/TangemCardTypesResolver.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/common/TangemCardTypesResolver.kt @@ -45,7 +45,7 @@ internal class TangemCardTypesResolver( card.settings.isKeysImportAllowed } - override fun isVisaWallet(): Boolean = card.firmwareVersion.doubleValue in FirmwareVersion.visaRange + override fun isVisaWallet(): Boolean = productType == ProductType.Visa override fun isRing(): Boolean { return productType == ProductType.Ring diff --git a/domain/legacy/src/main/java/com/tangem/domain/common/TapWorkarounds.kt b/domain/legacy/src/main/java/com/tangem/domain/common/TapWorkarounds.kt index b8583c123d..fbec58c977 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/common/TapWorkarounds.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/common/TapWorkarounds.kt @@ -4,7 +4,7 @@ import com.tangem.blockchain.common.Blockchain import com.tangem.common.card.FirmwareVersion import com.tangem.domain.demo.DemoConfig import com.tangem.domain.models.scan.CardDTO -import java.util.* +import java.util.Locale /** [REDACTED_AUTHOR] @@ -22,6 +22,9 @@ object TapWorkarounds { val CardDTO.isStart2Coin: Boolean get() = isStart2CoinIssuer(issuer.name) + val CardDTO.isVisa: Boolean + get() = firmwareVersion.doubleValue in FirmwareVersion.visaRange + val CardDTO.isTestCard: Boolean get() = batchId == TEST_CARD_BATCH && cardId.startsWith(TEST_CARD_ID_STARTS_WITH) diff --git a/domain/legacy/src/main/java/com/tangem/domain/userwallets/UserWalletBuilder.kt b/domain/legacy/src/main/java/com/tangem/domain/userwallets/UserWalletBuilder.kt index 72d4684786..182653ef00 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/userwallets/UserWalletBuilder.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/userwallets/UserWalletBuilder.kt @@ -20,6 +20,7 @@ class UserWalletBuilder( ProductType.Note -> "Note" ProductType.Twins -> "Twin" ProductType.Start2Coin -> "Start2Coin" + ProductType.Visa -> "Tangem Visa" ProductType.Wallet, ProductType.Wallet2, ProductType.Ring, @@ -28,7 +29,6 @@ class UserWalletBuilder( cardTypesResolver.isStart2Coin() -> "Start2Coin" else -> "Wallet" } - ProductType.Wallet2 -> "Wallet" } /** diff --git a/domain/legacy/src/main/java/com/tangem/domain/userwallets/UserWalletIdBuilder.kt b/domain/legacy/src/main/java/com/tangem/domain/userwallets/UserWalletIdBuilder.kt index a9fab74fb9..607484d8a8 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/userwallets/UserWalletIdBuilder.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/userwallets/UserWalletIdBuilder.kt @@ -63,6 +63,7 @@ class UserWalletIdBuilder private constructor( ProductType.Wallet2, ProductType.Ring, ProductType.Start2Coin, + ProductType.Visa, -> null }, ) diff --git a/domain/models/src/main/kotlin/com/tangem/domain/models/scan/ScanResponse.kt b/domain/models/src/main/kotlin/com/tangem/domain/models/scan/ScanResponse.kt index ece295860b..174b27f6d1 100644 --- a/domain/models/src/main/kotlin/com/tangem/domain/models/scan/ScanResponse.kt +++ b/domain/models/src/main/kotlin/com/tangem/domain/models/scan/ScanResponse.kt @@ -21,5 +21,5 @@ data class ScanResponse( typealias KeyWalletPublicKey = ByteArrayKey enum class ProductType { - Note, Twins, Wallet, Start2Coin, Wallet2, Ring + Note, Twins, Wallet, Start2Coin, Wallet2, Ring, Visa, } \ No newline at end of file