Updated on 2026-08-14
This commit is contained in:
parent
7453e8d179
commit
fd7ac00fd4
10 changed files with 268 additions and 333 deletions
|
|
@ -10,54 +10,8 @@ interface CardTypesResolver {
|
|||
|
||||
fun isTangemWallet(): Boolean
|
||||
|
||||
fun isWhiteWallet2(): Boolean
|
||||
|
||||
fun isAvroraWallet(): Boolean
|
||||
|
||||
fun isTraillantWallet(): Boolean
|
||||
|
||||
fun isShibaWallet(): Boolean
|
||||
|
||||
fun isTronWallet(): Boolean
|
||||
|
||||
fun isKaspaWallet(): Boolean
|
||||
|
||||
fun isKaspa2Wallet(): Boolean
|
||||
|
||||
fun isKaspaResellerWallet(): Boolean
|
||||
|
||||
fun isBadWallet(): Boolean
|
||||
|
||||
fun isJrWallet(): Boolean
|
||||
|
||||
fun isGrimWallet(): Boolean
|
||||
|
||||
fun isSatoshiFriendsWallet(): Boolean
|
||||
|
||||
fun isBitcoinPizzaDayWallet(): Boolean
|
||||
|
||||
fun isVeChainWallet(): Boolean
|
||||
|
||||
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 isVividWallet(): Boolean
|
||||
|
||||
fun isPastelWallet(): Boolean
|
||||
|
||||
fun isWhiteWallet(): Boolean
|
||||
|
||||
fun isWallet2(): Boolean
|
||||
|
|
|
|||
|
|
@ -26,60 +26,10 @@ internal class TangemCardTypesResolver(
|
|||
card.firmwareVersion >= FirmwareVersion.MultiWalletAvailable
|
||||
}
|
||||
|
||||
override fun isWhiteWallet2(): Boolean = card.batchId == WHITE_WALLET2_BATCH_ID
|
||||
|
||||
override fun isAvroraWallet(): Boolean = card.batchId == AVRORA_WALLET_BATCH_ID
|
||||
|
||||
override fun isTraillantWallet(): Boolean = card.batchId == TRILLIANT_WALLET_BATCH_ID
|
||||
|
||||
override fun isShibaWallet(): Boolean {
|
||||
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 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
|
||||
|
||||
override fun isGrimWallet(): Boolean = card.batchId == GRIM_WALLET_BATCH_ID
|
||||
|
||||
override fun isSatoshiFriendsWallet(): Boolean = card.batchId == SATOSHI_WALLET_BATCH_ID
|
||||
|
||||
override fun isBitcoinPizzaDayWallet(): Boolean = card.batchId == BITCOIN_PIZZA_DAY_WALLET_BATCH_ID
|
||||
|
||||
override fun isVeChainWallet(): Boolean = card.batchId == VECHAIN_WALLET_BATCH_ID
|
||||
|
||||
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 isVividWallet(): Boolean = card.batchId == VIVID_LEMON_WALLET_BATCH_ID ||
|
||||
card.batchId == VIVID_AQUA_WALLET_BATCH_ID ||
|
||||
card.batchId == VIVID_GRAPEFRUIT_WALLET_BATCH_ID
|
||||
|
||||
override fun isPastelWallet(): Boolean = card.batchId == PASTEL_PEACH_WALLET_BATCH_ID ||
|
||||
card.batchId == PASTEL_GRASS_WALLET_BATCH_ID ||
|
||||
card.batchId == PASTEL_AIR_WALLET_BATCH_ID
|
||||
|
||||
override fun isWhiteWallet(): Boolean {
|
||||
return walletData == null && card.firmwareVersion <= FirmwareVersion.HDWalletAvailable
|
||||
}
|
||||
|
|
@ -183,34 +133,5 @@ 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 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"
|
||||
const val SATOSHI_WALLET_BATCH_ID = "AF19"
|
||||
const val WHITE_WALLET2_BATCH_ID = "AF15"
|
||||
const val TRILLIANT_WALLET_BATCH_ID = "AF16"
|
||||
const val AVRORA_WALLET_BATCH_ID = "AF18"
|
||||
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"
|
||||
// VIVID WALLETS
|
||||
const val VIVID_LEMON_WALLET_BATCH_ID = "AF40"
|
||||
const val VIVID_AQUA_WALLET_BATCH_ID = "AF41"
|
||||
const val VIVID_GRAPEFRUIT_WALLET_BATCH_ID = "AF42"
|
||||
// PASTEL WALLETS
|
||||
const val PASTEL_PEACH_WALLET_BATCH_ID = "AF43"
|
||||
const val PASTEL_AIR_WALLET_BATCH_ID = "AF44"
|
||||
const val PASTEL_GRASS_WALLET_BATCH_ID = "AF45"
|
||||
}
|
||||
}
|
||||
|
|
@ -92,4 +92,8 @@ dependencies {
|
|||
implementation(projects.features.details.api)
|
||||
implementation(projects.features.pushNotifications.api)
|
||||
implementation(projects.features.markets.api)
|
||||
|
||||
/** Test libraries */
|
||||
implementation(deps.test.junit)
|
||||
implementation(deps.test.truth)
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.tangem.feature.wallet.presentation.wallet.domain
|
||||
|
||||
import androidx.annotation.DrawableRes
|
||||
import com.tangem.blockchain.common.Blockchain
|
||||
import com.tangem.feature.wallet.impl.R
|
||||
|
||||
/**
|
||||
* Note image model
|
||||
*
|
||||
* @property blockchain blockchain
|
||||
* @property imageResId image res id
|
||||
*
|
||||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
internal enum class NoteImage(
|
||||
val blockchain: Blockchain,
|
||||
@DrawableRes val imageResId: Int,
|
||||
) {
|
||||
|
||||
Bitcoin(blockchain = Blockchain.Bitcoin, imageResId = R.drawable.ill_note_btc_120_106),
|
||||
|
||||
Ethereum(blockchain = Blockchain.Ethereum, imageResId = R.drawable.ill_note_ethereum_120_106),
|
||||
|
||||
Binance(blockchain = Blockchain.BSC, imageResId = R.drawable.ill_note_binance_120_106),
|
||||
|
||||
Dogecoin(blockchain = Blockchain.Dogecoin, imageResId = R.drawable.ill_note_doge_120_106),
|
||||
|
||||
Cardano(blockchain = Blockchain.Cardano, imageResId = R.drawable.ill_note_cardano_120_106),
|
||||
|
||||
XRP(blockchain = Blockchain.XRP, imageResId = R.drawable.ill_note_xrp_120_106),
|
||||
}
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
package com.tangem.feature.wallet.presentation.wallet.domain
|
||||
|
||||
import androidx.annotation.DrawableRes
|
||||
import com.tangem.feature.wallet.impl.R
|
||||
|
||||
/**
|
||||
* Wallet2 cobrand image.
|
||||
* To integrate a new cobrand, just implement new enum object and that all.
|
||||
*
|
||||
* @property cards2ResId image resource id for wallet set with 2 cards
|
||||
* @property cards3ResId image resource id for wallet set with 3 cards
|
||||
* @property batchIds set of unique batch ids for this cobrand
|
||||
*
|
||||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
internal enum class Wallet2CobrandImage(
|
||||
@DrawableRes val cards2ResId: Int,
|
||||
@DrawableRes val cards3ResId: Int,
|
||||
val batchIds: Set<String>,
|
||||
) {
|
||||
|
||||
Avrora(
|
||||
cards2ResId = R.drawable.ill_avrora_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_avrora_card3_120_106,
|
||||
batchIds = setOf("AF18"),
|
||||
),
|
||||
|
||||
BabyDoge(
|
||||
cards2ResId = R.drawable.ill_baby_doge_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_baby_doge_card3_120_106,
|
||||
batchIds = setOf("AF51"),
|
||||
),
|
||||
|
||||
Bad(
|
||||
cards2ResId = R.drawable.ill_bad_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_bad_card3_120_106,
|
||||
batchIds = setOf("AF09"),
|
||||
),
|
||||
|
||||
BitcoinPizzaDay(
|
||||
cards2ResId = R.drawable.ill_pizza_day_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_pizza_day_card3_120_106,
|
||||
batchIds = setOf("AF33"),
|
||||
),
|
||||
|
||||
CoinMetrica(
|
||||
cards2ResId = R.drawable.ill_coin_metrica_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_coin_metrica_card3_120_106,
|
||||
batchIds = setOf("AF27"),
|
||||
),
|
||||
|
||||
COQ(
|
||||
cards2ResId = R.drawable.ill_coq_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_coq_card3_120_106,
|
||||
batchIds = setOf("AF28"),
|
||||
),
|
||||
|
||||
CryptoSeth(
|
||||
cards2ResId = R.drawable.ill_crypto_seth_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_crypto_seth_card3_120_106,
|
||||
batchIds = setOf("AF32"),
|
||||
),
|
||||
|
||||
Grim(
|
||||
cards2ResId = R.drawable.ill_grim_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_grim_card3_120_106,
|
||||
batchIds = setOf("AF13"),
|
||||
),
|
||||
|
||||
Jr(
|
||||
cards2ResId = R.drawable.ill_jr_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_jr_card3_120_106,
|
||||
batchIds = setOf("AF14"),
|
||||
),
|
||||
|
||||
Kaspa(
|
||||
cards2ResId = R.drawable.ill_kaspa_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_kaspa_card3_120_106,
|
||||
batchIds = setOf("AF08"),
|
||||
),
|
||||
|
||||
Kaspa2(
|
||||
cards2ResId = R.drawable.ill_kaspa2_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_kaspa2_card3_120_106,
|
||||
batchIds = setOf("AF25"),
|
||||
),
|
||||
|
||||
KaspaReseller(
|
||||
cards2ResId = R.drawable.ill_kaspa_reseller_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_kaspa_reseller_card3_120_106,
|
||||
batchIds = setOf("AF31"),
|
||||
),
|
||||
|
||||
KishuInu(
|
||||
cards2ResId = R.drawable.ill_kishu_inu_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_kishu_inu_card3_120_106,
|
||||
batchIds = setOf("AF52"),
|
||||
),
|
||||
|
||||
NewWorldElite(
|
||||
cards2ResId = R.drawable.ill_nwe_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_nwe_card3_120_106,
|
||||
batchIds = setOf("AF26"),
|
||||
),
|
||||
|
||||
// for multicolored cards use image of 3 cards in all cases
|
||||
Pastel(
|
||||
cards2ResId = R.drawable.ill_pastel_cards3_120_106,
|
||||
cards3ResId = R.drawable.ill_pastel_cards3_120_106,
|
||||
batchIds = setOf("AF43", "AF44", "AF45"),
|
||||
),
|
||||
|
||||
RedPanda(
|
||||
cards2ResId = R.drawable.ill_red_panda_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_red_panda_card3_120_106,
|
||||
batchIds = setOf("AF34"),
|
||||
),
|
||||
|
||||
SatoshiFriends(
|
||||
cards2ResId = R.drawable.ill_satoshi_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_satoshi_card3_120_106,
|
||||
batchIds = setOf("AF19"),
|
||||
),
|
||||
|
||||
Trillant(
|
||||
cards2ResId = R.drawable.ill_trillant_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_trillant_card3_120_106,
|
||||
batchIds = setOf("AF16"),
|
||||
),
|
||||
|
||||
Tron(
|
||||
cards2ResId = R.drawable.ill_tron_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_tron_card3_120_106,
|
||||
batchIds = setOf("AF07"),
|
||||
),
|
||||
|
||||
VeChain(
|
||||
cards2ResId = R.drawable.ill_vechain_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_vechain_card3_120_106,
|
||||
batchIds = setOf("AF29"),
|
||||
),
|
||||
|
||||
// for multicolored cards use image of 3 cards in all cases
|
||||
Vivid(
|
||||
cards2ResId = R.drawable.ill_vivid_cards3_120_106,
|
||||
cards3ResId = R.drawable.ill_vivid_cards3_120_106,
|
||||
batchIds = setOf("AF40", "AF41", "AF42"),
|
||||
),
|
||||
|
||||
VoltInu(
|
||||
cards2ResId = R.drawable.ill_volt_inu_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_volt_inu_card3_120_106,
|
||||
batchIds = setOf("AF35"),
|
||||
),
|
||||
|
||||
WhiteTangem(
|
||||
cards2ResId = R.drawable.ill_white_card2_120_106,
|
||||
cards3ResId = R.drawable.ill_white_card3_120_106,
|
||||
batchIds = setOf("AF15"),
|
||||
),
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
package com.tangem.feature.wallet.presentation.wallet.domain
|
||||
|
||||
import androidx.annotation.DrawableRes
|
||||
import com.tangem.blockchain.common.Blockchain
|
||||
import com.tangem.domain.common.util.cardTypesResolver
|
||||
import com.tangem.domain.common.util.getCardsCount
|
||||
import com.tangem.domain.demo.DemoConfig
|
||||
|
|
@ -13,7 +12,6 @@ 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
|
||||
|
|
@ -25,42 +23,42 @@ internal object WalletImageResolver {
|
|||
@DrawableRes
|
||||
fun resolve(userWallet: UserWallet): Int? {
|
||||
val cardTypesResolver = userWallet.scanResponse.cardTypesResolver
|
||||
|
||||
val cobrandImage = Wallet2CobrandImage.entries.firstOrNull {
|
||||
it.batchIds.contains(userWallet.scanResponse.card.batchId)
|
||||
}
|
||||
|
||||
val noteImage by lazy {
|
||||
val noteBlockchain = cardTypesResolver.getBlockchain()
|
||||
|
||||
NoteImage.entries.firstOrNull { it.blockchain == noteBlockchain }
|
||||
}
|
||||
|
||||
return when {
|
||||
cardTypesResolver.isDevKit() -> R.drawable.ill_dev_120_106
|
||||
cardTypesResolver.isWhiteWallet2() -> userWallet.resolveWhiteWallet2()
|
||||
cardTypesResolver.isAvroraWallet() -> userWallet.resolveAvroraWallet()
|
||||
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()
|
||||
cardTypesResolver.isSatoshiFriendsWallet() -> userWallet.resolveSatoshiWallet()
|
||||
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.isVividWallet() -> userWallet.resolveVividWallet()
|
||||
cardTypesResolver.isPastelWallet() -> userWallet.resolvePastelWallet()
|
||||
cobrandImage != null -> userWallet.resolveWallet2Cobrand(image = cobrandImage)
|
||||
cardTypesResolver.isWallet2() -> userWallet.resolveWallet2()
|
||||
cardTypesResolver.isShibaWallet() -> userWallet.resolveShibaWallet()
|
||||
cardTypesResolver.isTangemWallet() -> userWallet.resolveWallet1()
|
||||
cardTypesResolver.isWhiteWallet() -> R.drawable.ill_wallet_old_white_120_106
|
||||
cardTypesResolver.isTangemTwins() -> R.drawable.ill_twins_120_106
|
||||
cardTypesResolver.isStart2Coin() -> R.drawable.ill_start2coin_120_106
|
||||
cardTypesResolver.isTangemNote() -> resolveNote(blockchain = cardTypesResolver.getBlockchain())
|
||||
cardTypesResolver.isTangemNote() -> noteImage?.imageResId
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveWallet2Cobrand(image: Wallet2CobrandImage): Int? {
|
||||
return resolveWallet2(oneBackupResId = image.cards2ResId, twoBackupResId = image.cards3ResId)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveShibaWallet(): Int? {
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_shiba_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_shiba_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveWallet2(
|
||||
@DrawableRes oneBackupResId: Int = R.drawable.ill_wallet2_cards2_120_106,
|
||||
@DrawableRes twoBackupResId: Int = R.drawable.ill_wallet2_cards3_120_106,
|
||||
|
|
@ -76,176 +74,6 @@ internal object WalletImageResolver {
|
|||
}
|
||||
}
|
||||
|
||||
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.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,
|
||||
twoBackupResId = R.drawable.ill_bad_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveJrWallet(): Int? {
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_jr_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_jr_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveGrimWallet(): Int? {
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_grim_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_grim_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveSatoshiWallet(): Int? {
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_satoshi_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_satoshi_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveShibaWallet(): Int? {
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_shiba_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_shiba_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveWhiteWallet2(): Int? {
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_white_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_white_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveAvroraWallet(): Int? {
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_avrora_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_avrora_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveTraillantWallet(): Int? {
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_traillant_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_traillant_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveBitcoinPizzaDayWallet(): Int? {
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_pizza_day_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_pizza_day_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveVeChainWallet(): Int? {
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_vechain_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_vechain_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveNewWorldEliteWallet(): Int? {
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_nwe_card2_120_106,
|
||||
twoBackupResId = R.drawable.ill_nwe_card3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
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.resolveVividWallet(): Int? {
|
||||
// for multicolored cards use image of 3 cards in all cases
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_vivid_cards3_120_106,
|
||||
twoBackupResId = R.drawable.ill_vivid_cards3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolvePastelWallet(): Int? {
|
||||
// for multicolored cards use image of 3 cards in all cases
|
||||
return resolveWallet2(
|
||||
oneBackupResId = R.drawable.ill_pastel_cards3_120_106,
|
||||
twoBackupResId = R.drawable.ill_pastel_cards3_120_106,
|
||||
)
|
||||
}
|
||||
|
||||
private fun UserWallet.resolveWallet1(): Int? {
|
||||
return resolveWalletWithBackups { count ->
|
||||
when (count) {
|
||||
|
|
@ -262,16 +90,4 @@ internal object WalletImageResolver {
|
|||
|
||||
return if (count != null) resolve(count) else null
|
||||
}
|
||||
|
||||
private fun resolveNote(blockchain: Blockchain): Int? {
|
||||
return when (blockchain) {
|
||||
Blockchain.Bitcoin -> R.drawable.ill_note_btc_120_106
|
||||
Blockchain.Ethereum -> R.drawable.ill_note_ethereum_120_106
|
||||
Blockchain.BSC -> R.drawable.ill_note_binance_120_106
|
||||
Blockchain.Dogecoin -> R.drawable.ill_note_doge_120_106
|
||||
Blockchain.Cardano -> R.drawable.ill_note_cardano_120_106
|
||||
Blockchain.XRP -> R.drawable.ill_note_xrp_120_106
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB |
|
|
@ -0,0 +1,26 @@
|
|||
package com.tangem.feature.wallet.presentation.wallet.domain
|
||||
|
||||
import com.google.common.truth.Truth
|
||||
import com.tangem.blockchain.common.Blockchain
|
||||
import org.junit.Test
|
||||
|
||||
/**
|
||||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
internal class NoteImageTest {
|
||||
|
||||
@Test
|
||||
fun check() {
|
||||
// check uniqueness
|
||||
Truth.assertThat(NoteImage.entries.map { it.blockchain }).containsNoDuplicates()
|
||||
Truth.assertThat(NoteImage.entries.map { it.imageResId }).containsNoDuplicates()
|
||||
|
||||
// check blockchain matching
|
||||
Truth.assertThat(NoteImage.Bitcoin.blockchain).isEqualTo(Blockchain.Bitcoin)
|
||||
Truth.assertThat(NoteImage.Ethereum.blockchain).isEqualTo(Blockchain.Ethereum)
|
||||
Truth.assertThat(NoteImage.Binance.blockchain).isEqualTo(Blockchain.BSC)
|
||||
Truth.assertThat(NoteImage.Dogecoin.blockchain).isEqualTo(Blockchain.Dogecoin)
|
||||
Truth.assertThat(NoteImage.Cardano.blockchain).isEqualTo(Blockchain.Cardano)
|
||||
Truth.assertThat(NoteImage.XRP.blockchain).isEqualTo(Blockchain.XRP)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package com.tangem.feature.wallet.presentation.wallet.domain
|
||||
|
||||
import com.google.common.truth.Truth
|
||||
import org.junit.Test
|
||||
|
||||
/**
|
||||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
internal class Wallet2CobrandImageTest {
|
||||
|
||||
@Test
|
||||
fun checkUniqueness() {
|
||||
val excluded = listOf(Wallet2CobrandImage.Pastel, Wallet2CobrandImage.Vivid)
|
||||
(Wallet2CobrandImage.entries - excluded).forEach {
|
||||
Truth.assertThat(it.cards2ResId != it.cards3ResId).isTrue()
|
||||
}
|
||||
|
||||
Truth.assertThat(Wallet2CobrandImage.entries.map { it.cards2ResId }).containsNoDuplicates()
|
||||
Truth.assertThat(Wallet2CobrandImage.entries.map { it.cards3ResId }).containsNoDuplicates()
|
||||
Truth.assertThat(Wallet2CobrandImage.entries.flatMap { it.batchIds }).containsNoDuplicates()
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue