From 53ed62b84d75e093fd652dbf2b82925acfce0168 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 2 Feb 2022 13:21:30 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../com/tangem/tap/common/extensions/Picasso.kt | 4 +++- .../com/tangem/tap/domain/extensions/Token.kt | 17 +++++++++++++++++ .../tap/domain/tokens/CurrenciesRepository.kt | 10 ++++++++-- 3 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/tangem/tap/domain/extensions/Token.kt diff --git a/app/src/main/java/com/tangem/tap/common/extensions/Picasso.kt b/app/src/main/java/com/tangem/tap/common/extensions/Picasso.kt index 60c8a1ec9d..f34b5e9ecf 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/Picasso.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/Picasso.kt @@ -1,6 +1,7 @@ package com.tangem.tap.common.extensions import android.graphics.PorterDuff +import android.net.Uri import android.widget.ImageView import android.widget.TextView import androidx.core.content.ContextCompat @@ -9,6 +10,7 @@ import com.squareup.picasso.Picasso import com.tangem.blockchain.common.Blockchain import com.tangem.blockchain.common.IconsUtil import com.tangem.blockchain.common.Token +import com.tangem.tap.domain.extensions.getCustomIconUrl import com.tangem.wallet.R fun Picasso.loadCurrenciesIcon( @@ -19,7 +21,7 @@ fun Picasso.loadCurrenciesIcon( ) { val url = if (token != null) { - IconsUtil.getTokenIconUri(blockchain, token) + token.getCustomIconUrl()?.let { Uri.parse(it) } ?: IconsUtil.getTokenIconUri(blockchain, token) } else { IconsUtil.getBlockchainIconUri(blockchain) } diff --git a/app/src/main/java/com/tangem/tap/domain/extensions/Token.kt b/app/src/main/java/com/tangem/tap/domain/extensions/Token.kt new file mode 100644 index 0000000000..6963ed3682 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/domain/extensions/Token.kt @@ -0,0 +1,17 @@ +package com.tangem.tap.domain.extensions + +import com.tangem.blockchain.common.Token + +/** +[REDACTED_AUTHOR] + */ + +private val tokenCustomIconUrls = mutableMapOf() + +fun Token.getCustomIconUrl(): String? { + return tokenCustomIconUrls[this.contractAddress] +} + +fun Token.setCustomIconUrl(url: String) { + tokenCustomIconUrls[this.contractAddress] = url +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt b/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt index ad57bd6f51..02d42e5869 100644 --- a/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt @@ -11,6 +11,8 @@ import com.tangem.blockchain.common.Token import com.tangem.common.card.FirmwareVersion import com.tangem.common.json.MoshiJsonConverter import com.tangem.tap.common.extensions.readJsonFileToString +import com.tangem.tap.domain.extensions.getCustomIconUrl +import com.tangem.tap.domain.extensions.setCustomIconUrl import com.tangem.tap.network.createMoshi class CurrenciesRepository(val context: Application) { @@ -183,6 +185,7 @@ data class TokenDao( val decimalCount: Int, @Json(name = "blockchain") val blockchainDao: BlockchainDao, + val customIconUrl: String? = null, val type: String? = null ) { fun toToken(): Token { @@ -192,7 +195,9 @@ data class TokenDao( contractAddress = contractAddress, decimals = decimalCount, blockchain = blockchainDao.toBlockchain() - ) + ).apply { + customIconUrl?.let { this.setCustomIconUrl(it) } + } } companion object { @@ -202,7 +207,8 @@ data class TokenDao( symbol = token.symbol, contractAddress = token.contractAddress, decimalCount = token.decimals, - blockchainDao = BlockchainDao.fromBlockchain(token.blockchain) + blockchainDao = BlockchainDao.fromBlockchain(token.blockchain), + customIconUrl = token.getCustomIconUrl() ) } }