Updated on 2026-08-14

This commit is contained in:
Tangem 2021-03-09 12:04:34 +00:00
commit 2e2cf328fe
2 changed files with 26 additions and 19 deletions

View file

@ -1,6 +1,7 @@
package com.tangem.tap.domain
import com.tangem.commands.common.card.Card
import com.tangem.commands.common.card.masks.Product
import java.util.*
object TapWorkarounds {
@ -12,5 +13,26 @@ object TapWorkarounds {
isStart2Coin = card.cardData?.issuerName?.toLowerCase(Locale.US) == START_2_COIN_ISSUER
}
const val START_2_COIN_ISSUER = "start2coin"
fun Card.isExcluded(): Boolean {
val cardData = this.cardData ?: return false
val productMask = cardData.productMask
val excludedBatch = excludedBatches.contains(cardData.batchId)
val excludedIssuerName = excludedIssuers.contains(cardData.issuerName?.capitalize(Locale.US))
val excludedProductMask = (productMask != null && // product mask is on cards v2.30 and later
!productMask.contains(Product.Note) && !productMask.contains(Product.TwinCard))
return excludedBatch || excludedIssuerName || excludedProductMask
}
private const val START_2_COIN_ISSUER = "start2coin"
private val excludedBatches = listOf(
"0027",
"0030",
"0031",
) // Tangem tags
private val excludedIssuers = listOf(
"TTM BANK"
)
}

View file

@ -10,12 +10,12 @@ import com.tangem.commands.CommandResponse
import com.tangem.commands.ReadIssuerDataCommand
import com.tangem.commands.common.card.Card
import com.tangem.commands.common.card.CardStatus
import com.tangem.commands.common.card.masks.Product
import com.tangem.commands.verifycard.VerifyCardCommand
import com.tangem.commands.verifycard.VerifyCardResponse
import com.tangem.common.CompletionResult
import com.tangem.common.extensions.toHexString
import com.tangem.tap.domain.TapSdkError
import com.tangem.tap.domain.TapWorkarounds.isExcluded
import com.tangem.tap.domain.twins.TwinCardsManager
import com.tangem.tap.domain.twins.isTwinCard
import com.tangem.tasks.ScanTask
@ -113,26 +113,11 @@ class ScanNoteTask(val card: Card? = null) : CardSessionRunnable<ScanNoteRespons
}
private fun getErrorIfExcludedCard(card: Card): TangemError? {
val productMask = card.cardData?.productMask
if (productMask != null && // product mask is on cards v2.30 and later
!productMask.contains(Product.Note) && !productMask.contains(Product.TwinCard)) {
return TapSdkError.CardForDifferentApp
}
if (excludedBatches.contains(card.cardData?.batchId)) {
return TapSdkError.CardForDifferentApp
}
if (card.isExcluded()) return TapSdkError.CardForDifferentApp
if (card.status == CardStatus.Purged) return TangemSdkError.CardIsPurged()
if (card.status == CardStatus.NotPersonalized) return TangemSdkError.NotPersonalized()
return null
}
companion object {
private val excludedBatches = listOf(
"0027",
"0030",
"0031", //tags
"0079", //TOTHEMOON
)
}
}