Updated on 2026-08-14
This commit is contained in:
parent
2c9ea54ebc
commit
a4e5286779
9 changed files with 52 additions and 11 deletions
|
|
@ -3,6 +3,7 @@ package com.tangem.domain.common
|
|||
import com.tangem.blockchain.common.Blockchain
|
||||
import com.tangem.blockchain.common.Token
|
||||
|
||||
@Suppress("TooManyFunctions")
|
||||
interface CardTypesResolver {
|
||||
|
||||
fun isTangemNote(): Boolean
|
||||
|
|
@ -11,6 +12,12 @@ interface CardTypesResolver {
|
|||
|
||||
fun isShibaWallet(): Boolean
|
||||
|
||||
fun isTronWallet(): Boolean
|
||||
|
||||
fun isKaspaWallet(): Boolean
|
||||
|
||||
fun isBadWallet(): Boolean
|
||||
|
||||
fun isWhiteWallet(): Boolean
|
||||
|
||||
fun isWallet2(): Boolean
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import com.tangem.domain.models.scan.CardDTO
|
|||
import com.tangem.domain.models.scan.ProductType
|
||||
import com.tangem.operations.attestation.Attestation
|
||||
|
||||
@Suppress("TooManyFunctions")
|
||||
internal class TangemCardTypesResolver(
|
||||
private val card: CardDTO,
|
||||
private val productType: ProductType,
|
||||
|
|
@ -29,12 +30,18 @@ internal class TangemCardTypesResolver(
|
|||
return card.firmwareVersion.compareTo(FirmwareVersion.KeysImportAvailable) == 0
|
||||
}
|
||||
|
||||
override fun isTronWallet(): Boolean = card.batchId == TRON_WALLET_BATCH_ID
|
||||
|
||||
override fun isKaspaWallet(): Boolean = card.batchId == KASPA_WALLET_BATCH_ID
|
||||
|
||||
override fun isBadWallet(): Boolean = card.batchId == BAD_WALLET_BATCH_ID
|
||||
|
||||
override fun isWhiteWallet(): Boolean {
|
||||
return walletData == null && card.firmwareVersion <= FirmwareVersion.HDWalletAvailable
|
||||
}
|
||||
|
||||
override fun isWallet2(): Boolean {
|
||||
return card.firmwareVersion >= FirmwareVersion.Ed25519Slip0010Available && card.settings.isKeysImportAllowed
|
||||
return productType == ProductType.Wallet2
|
||||
}
|
||||
|
||||
override fun isTangemTwins(): Boolean = productType == ProductType.Twins
|
||||
|
|
@ -115,5 +122,8 @@ internal class TangemCardTypesResolver(
|
|||
private companion object {
|
||||
|
||||
const val DEV_KIT_CARD_BATCH_ID = "CB83"
|
||||
const val TRON_WALLET_BATCH_ID = "AF07"
|
||||
const val KASPA_WALLET_BATCH_ID = "AF08"
|
||||
const val BAD_WALLET_BATCH_ID = "AF09"
|
||||
}
|
||||
}
|
||||
|
|
@ -22,6 +22,9 @@ internal object WalletImageResolver {
|
|||
fun resolve(userWallet: UserWallet): Int? {
|
||||
val cardTypesResolver = userWallet.scanResponse.cardTypesResolver
|
||||
return when {
|
||||
cardTypesResolver.isTronWallet() -> userWallet.resolveTronWallet()
|
||||
cardTypesResolver.isKaspaWallet() -> userWallet.resolveKaspaWallet()
|
||||
cardTypesResolver.isBadWallet() -> userWallet.resolveBadWallet()
|
||||
cardTypesResolver.isWallet2() -> userWallet.resolveWallet2()
|
||||
cardTypesResolver.isShibaWallet() -> userWallet.resolveShibaWallet()
|
||||
cardTypesResolver.isTangemWallet() -> userWallet.resolveWallet1()
|
||||
|
|
@ -34,24 +37,45 @@ internal object WalletImageResolver {
|
|||
}
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveWallet2(): Int? {
|
||||
private fun UserWallet.resolveWallet2(
|
||||
@DrawableRes oneBackupResId: Int = R.drawable.ill_wallet2_cards2_120_106,
|
||||
@DrawableRes twoBackupResId: Int = R.drawable.ill_wallet2_cards3_120_106,
|
||||
): Int? {
|
||||
return resolveWalletWithBackups { count ->
|
||||
when (count) {
|
||||
WALLET_WITH_ONE_BACKUP_COUNT -> R.drawable.ill_wallet2_cards2_120_106
|
||||
WALLET_WITH_TWO_BACKUPS_COUNT -> R.drawable.ill_wallet2_cards3_120_106
|
||||
WALLET_WITH_ONE_BACKUP_COUNT -> oneBackupResId
|
||||
WALLET_WITH_TWO_BACKUPS_COUNT -> twoBackupResId
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveTronWallet(): Int? {
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_tron_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_tron_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveKaspaWallet(): Int? {
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_kaspa_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_kaspa_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveBadWallet(): Int? {
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_bad_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_bad_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveShibaWallet(): Int? {
|
||||
return resolveWalletWithBackups { count ->
|
||||
when (count) {
|
||||
WALLET_WITH_ONE_BACKUP_COUNT -> R.drawable.ill_shiba_card2_120_106
|
||||
WALLET_WITH_TWO_BACKUPS_COUNT -> R.drawable.ill_shiba_card3_120_106
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_shiba_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_shiba_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveWallet1(): Int? {
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.5 KiB |
Loading…
Add table
Add a link
Reference in a new issue