Updated on 2026-08-14

This commit is contained in:
Tangem 2022-02-02 13:21:30 +03:00
parent a1e86cb6fc
commit 53ed62b84d
3 changed files with 28 additions and 3 deletions

View file

@ -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)
}

View file

@ -0,0 +1,17 @@
package com.tangem.tap.domain.extensions
import com.tangem.blockchain.common.Token
/**
[REDACTED_AUTHOR]
*/
private val tokenCustomIconUrls = mutableMapOf<String, String>()
fun Token.getCustomIconUrl(): String? {
return tokenCustomIconUrls[this.contractAddress]
}
fun Token.setCustomIconUrl(url: String) {
tokenCustomIconUrls[this.contractAddress] = url
}

View file

@ -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()
)
}
}