Updated on 2026-08-14

This commit is contained in:
Tangem 2024-06-11 15:37:48 +08:00
parent fb0571b34d
commit c3cd83e3c9
21 changed files with 118 additions and 0 deletions

View file

@ -22,6 +22,10 @@ interface CardTypesResolver {
fun isKaspaWallet(): Boolean
fun isKaspa2Wallet(): Boolean
fun isKaspaResellerWallet(): Boolean
fun isBadWallet(): Boolean
fun isJrWallet(): Boolean
@ -36,6 +40,20 @@ interface CardTypesResolver {
fun isNewWorldEliteWallet(): Boolean
fun isRedPandaWallet(): Boolean
fun isCryptoSethWallet(): Boolean
fun isKishuInuWallet(): Boolean
fun isBabyDogeWallet(): Boolean
fun isCOQWallet(): Boolean
fun isCoinMetricaWallet(): Boolean
fun isVoltInuWallet(): Boolean
fun isWhiteWallet(): Boolean
fun isWallet2(): Boolean

View file

@ -40,6 +40,10 @@ internal class TangemCardTypesResolver(
override fun isKaspaWallet(): Boolean = card.batchId == KASPA_WALLET_BATCH_ID
override fun isKaspa2Wallet(): Boolean = card.batchId == KASPA2_WALLET_BATCH_ID
override fun isKaspaResellerWallet(): Boolean = card.batchId == KASPA_RESELLER_WALLET_BATCH_ID
override fun isBadWallet(): Boolean = card.batchId == BAD_WALLET_BATCH_ID
override fun isJrWallet(): Boolean = card.batchId == JR_WALLET_BATCH_ID
@ -54,6 +58,20 @@ internal class TangemCardTypesResolver(
override fun isNewWorldEliteWallet(): Boolean = card.batchId == NEW_WORLD_ELITE_WALLET_BATCH_ID
override fun isRedPandaWallet(): Boolean = card.batchId == RED_PANDA_WALLET_BATCH_ID
override fun isCryptoSethWallet(): Boolean = card.batchId == CRYPTO_SETH_WALLET_BATCH_ID
override fun isKishuInuWallet(): Boolean = card.batchId == KISHU_INU_WALLET_BATCH_ID
override fun isBabyDogeWallet(): Boolean = card.batchId == BABY_DOGE_WALLET_BATCH_ID
override fun isCOQWallet(): Boolean = card.batchId == COQ_WALLET_BATCH_ID
override fun isCoinMetricaWallet(): Boolean = card.batchId == COIN_METRICA_WALLET_BATCH_ID
override fun isVoltInuWallet(): Boolean = card.batchId == VOLT_INU_WALLET_BATCH_ID
override fun isWhiteWallet(): Boolean {
return walletData == null && card.firmwareVersion <= FirmwareVersion.HDWalletAvailable
}
@ -153,6 +171,8 @@ internal class TangemCardTypesResolver(
const val DEV_KIT_CARD_BATCH_ID = "CB83"
const val TRON_WALLET_BATCH_ID = "AF07"
const val KASPA_WALLET_BATCH_ID = "AF08"
const val KASPA2_WALLET_BATCH_ID = "AF25"
const val KASPA_RESELLER_WALLET_BATCH_ID = "AF31"
const val BAD_WALLET_BATCH_ID = "AF09"
const val JR_WALLET_BATCH_ID = "AF14"
const val GRIM_WALLET_BATCH_ID = "AF13"
@ -163,5 +183,12 @@ internal class TangemCardTypesResolver(
const val BITCOIN_PIZZA_DAY_WALLET_BATCH_ID = "AF33"
const val VECHAIN_WALLET_BATCH_ID = "AF29"
const val NEW_WORLD_ELITE_WALLET_BATCH_ID = "AF26"
const val RED_PANDA_WALLET_BATCH_ID = "AF34"
const val CRYPTO_SETH_WALLET_BATCH_ID = "AF32"
const val KISHU_INU_WALLET_BATCH_ID = "AF52"
const val BABY_DOGE_WALLET_BATCH_ID = "AF51"
const val COQ_WALLET_BATCH_ID = "AF28"
const val COIN_METRICA_WALLET_BATCH_ID = "AF27"
const val VOLT_INU_WALLET_BATCH_ID = "AF35"
}
}

View file

@ -12,6 +12,7 @@ import com.tangem.feature.wallet.impl.R
*
[REDACTED_AUTHOR]
*/
// TODO: make flexible to integrate cobrands ([REDACTED_JIRA])
internal object WalletImageResolver {
private const val WALLET_WITHOUT_BACKUP_COUNT = 1
@ -30,6 +31,8 @@ internal object WalletImageResolver {
cardTypesResolver.isTraillantWallet() -> userWallet.resolveTraillantWallet()
cardTypesResolver.isTronWallet() -> userWallet.resolveTronWallet()
cardTypesResolver.isKaspaWallet() -> userWallet.resolveKaspaWallet()
cardTypesResolver.isKaspa2Wallet() -> userWallet.resolveKaspa2Wallet()
cardTypesResolver.isKaspaResellerWallet() -> userWallet.resolveKaspaResellerWallet()
cardTypesResolver.isBadWallet() -> userWallet.resolveBadWallet()
cardTypesResolver.isJrWallet() -> userWallet.resolveJrWallet()
cardTypesResolver.isGrimWallet() -> userWallet.resolveGrimWallet()
@ -37,6 +40,13 @@ internal object WalletImageResolver {
cardTypesResolver.isBitcoinPizzaDayWallet() -> userWallet.resolveBitcoinPizzaDayWallet()
cardTypesResolver.isVeChainWallet() -> userWallet.resolveVeChainWallet()
cardTypesResolver.isNewWorldEliteWallet() -> userWallet.resolveNewWorldEliteWallet()
cardTypesResolver.isRedPandaWallet() -> userWallet.resolveRedPandaWallet()
cardTypesResolver.isCryptoSethWallet() -> userWallet.resolveCryptoSethWallet()
cardTypesResolver.isKishuInuWallet() -> userWallet.resolveKishuInuWallet()
cardTypesResolver.isBabyDogeWallet() -> userWallet.resolveBabyDogeWallet()
cardTypesResolver.isCOQWallet() -> userWallet.resolveCOQWallet()
cardTypesResolver.isCoinMetricaWallet() -> userWallet.resolveCoinMetricaWallet()
cardTypesResolver.isVoltInuWallet() -> userWallet.resolveVoltInuWallet()
cardTypesResolver.isWallet2() -> userWallet.resolveWallet2()
cardTypesResolver.isShibaWallet() -> userWallet.resolveShibaWallet()
cardTypesResolver.isTangemWallet() -> userWallet.resolveWallet1()
@ -77,6 +87,20 @@ internal object WalletImageResolver {
)
}
private fun UserWallet.resolveKaspa2Wallet(): Int? {
return resolveWallet2(
oneBackupResId = R.drawable.ill_kaspa2_card2_120_106,
twoBackupResId = R.drawable.ill_kaspa2_card3_120_106,
)
}
private fun UserWallet.resolveKaspaResellerWallet(): Int? {
return resolveWallet2(
oneBackupResId = R.drawable.ill_kaspa_reseller_card2_120_106,
twoBackupResId = R.drawable.ill_kaspa_reseller_card3_120_106,
)
}
private fun UserWallet.resolveBadWallet(): Int? {
return resolveWallet2(
oneBackupResId = R.drawable.ill_bad_card2_120_106,
@ -154,6 +178,55 @@ internal object WalletImageResolver {
)
}
private fun UserWallet.resolveRedPandaWallet(): Int? {
return resolveWallet2(
oneBackupResId = R.drawable.ill_red_panda_card2_120_106,
twoBackupResId = R.drawable.ill_red_panda_card3_120_106,
)
}
private fun UserWallet.resolveCryptoSethWallet(): Int? {
return resolveWallet2(
oneBackupResId = R.drawable.ill_crypto_seth_card2_120_106,
twoBackupResId = R.drawable.ill_crypto_seth_card3_120_106,
)
}
private fun UserWallet.resolveKishuInuWallet(): Int? {
return resolveWallet2(
oneBackupResId = R.drawable.ill_kishu_inu_card2_120_106,
twoBackupResId = R.drawable.ill_kishu_inu_card3_120_106,
)
}
private fun UserWallet.resolveBabyDogeWallet(): Int? {
return resolveWallet2(
oneBackupResId = R.drawable.ill_baby_doge_card2_120_106,
twoBackupResId = R.drawable.ill_baby_doge_card3_120_106,
)
}
private fun UserWallet.resolveCOQWallet(): Int? {
return resolveWallet2(
oneBackupResId = R.drawable.ill_coq_card2_120_106,
twoBackupResId = R.drawable.ill_coq_card3_120_106,
)
}
private fun UserWallet.resolveCoinMetricaWallet(): Int? {
return resolveWallet2(
oneBackupResId = R.drawable.ill_coin_metrica_card2_120_106,
twoBackupResId = R.drawable.ill_coin_metrica_card3_120_106,
)
}
private fun UserWallet.resolveVoltInuWallet(): Int? {
return resolveWallet2(
oneBackupResId = R.drawable.ill_volt_inu_card2_120_106,
twoBackupResId = R.drawable.ill_volt_inu_card3_120_106,
)
}
private fun UserWallet.resolveWallet1(): Int? {
return resolveWalletWithBackups { count ->
when (count) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB