diff --git a/domain/legacy/src/main/java/com/tangem/domain/common/CardTypesResolver.kt b/domain/legacy/src/main/java/com/tangem/domain/common/CardTypesResolver.kt index 2793156b1f..f055b69543 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/common/CardTypesResolver.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/common/CardTypesResolver.kt @@ -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 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 a6fe702b8a..b4323a0ae7 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 @@ -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" } } \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/WalletImageResolver.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/WalletImageResolver.kt index b9c019e84d..5fc3322696 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/WalletImageResolver.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/WalletImageResolver.kt @@ -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? { diff --git a/features/wallet/impl/src/main/res/drawable/ill_bad_card2_120_106.webp b/features/wallet/impl/src/main/res/drawable/ill_bad_card2_120_106.webp new file mode 100644 index 0000000000..cb046b7ce2 Binary files /dev/null and b/features/wallet/impl/src/main/res/drawable/ill_bad_card2_120_106.webp differ diff --git a/features/wallet/impl/src/main/res/drawable/ill_bad_card3_120_106.webp b/features/wallet/impl/src/main/res/drawable/ill_bad_card3_120_106.webp new file mode 100644 index 0000000000..2acc73e1f5 Binary files /dev/null and b/features/wallet/impl/src/main/res/drawable/ill_bad_card3_120_106.webp differ diff --git a/features/wallet/impl/src/main/res/drawable/ill_kaspa_card2_120_106.webp b/features/wallet/impl/src/main/res/drawable/ill_kaspa_card2_120_106.webp new file mode 100644 index 0000000000..9fa7ac2b7f Binary files /dev/null and b/features/wallet/impl/src/main/res/drawable/ill_kaspa_card2_120_106.webp differ diff --git a/features/wallet/impl/src/main/res/drawable/ill_kaspa_card3_120_106.webp b/features/wallet/impl/src/main/res/drawable/ill_kaspa_card3_120_106.webp new file mode 100644 index 0000000000..c2347fd636 Binary files /dev/null and b/features/wallet/impl/src/main/res/drawable/ill_kaspa_card3_120_106.webp differ diff --git a/features/wallet/impl/src/main/res/drawable/ill_tron_card2_120_106.webp b/features/wallet/impl/src/main/res/drawable/ill_tron_card2_120_106.webp new file mode 100644 index 0000000000..b838e8308b Binary files /dev/null and b/features/wallet/impl/src/main/res/drawable/ill_tron_card2_120_106.webp differ diff --git a/features/wallet/impl/src/main/res/drawable/ill_tron_card3_120_106.webp b/features/wallet/impl/src/main/res/drawable/ill_tron_card3_120_106.webp new file mode 100644 index 0000000000..8bbda73d2e Binary files /dev/null and b/features/wallet/impl/src/main/res/drawable/ill_tron_card3_120_106.webp differ