Updated on 2026-08-14

This commit is contained in:
Tangem 2018-09-18 11:50:01 +03:00
parent bd9a8a424d
commit e243410d53
2 changed files with 59 additions and 17 deletions

View file

@ -38,13 +38,13 @@ data class ArtworksStorage(
} else {
batches = HashMap()
putBatchToCatalog("0004", "card_btc_001", false)
putBatchToCatalog("0006", "card_btc_001", false)
putBatchToCatalog("0010", "card_btc_001", false)
putBatchToCatalog("0005", "card_btc_005", false)
putBatchToCatalog("0007", "card_btc_005", false)
putBatchToCatalog("0011", "card_btc_005", true)
// putBatchToCatalog("0004", "card_btc_001", false)
// putBatchToCatalog("0006", "card_btc_001", false)
// putBatchToCatalog("0010", "card_btc_001", false)
//
// putBatchToCatalog("0005", "card_btc_005", false)
// putBatchToCatalog("0007", "card_btc_005", false)
// putBatchToCatalog("0011", "card_btc_005", true)
// "0012": card_seed;
// "0013": card_btc_hk_s;
@ -136,9 +136,55 @@ data class ArtworksStorage(
return bitmap
}
fun getBatchBitmap(batch: String): Bitmap {
val batchInfo = batches[batch] ?: return getDefaultArtworkBitmap()
return getArtworkBitmap(batchInfo.artworkId) ?: return getDefaultArtworkBitmap()
fun getCardArtworkBitmap(card: TangemCard): Bitmap {
// special cases (first series of cards, hardcode CID->artwork), on new series batch<->artwork
val artworkId =
when (card.cidDescription) {
in "AA01 0000 0000 0000".."AA01 0000 0000 4999" -> {
context.resources.getResourceName(R.drawable.card_btc_001)
}
in "AA01 0000 0000 5000".."AA01 0000 0000 9999" -> {
context.resources.getResourceName(R.drawable.card_btc_005)
}
in "AE01 0000 0000 0000".."AE01 0000 0000 4999" -> {
context.resources.getResourceName(R.drawable.card_btc_001)
}
in "AE01 0000 0000 5000".."AE01 0000 0000 9999" -> {
context.resources.getResourceName(R.drawable.card_btc_005)
}
in "CB01 0000 0000 0000".."CB01 0000 0000 9999" -> {
context.resources.getResourceName(R.drawable.card_btc_001)
}
in "CB01 0000 0001 0000".."CB01 0000 0001 9999" -> {
context.resources.getResourceName(R.drawable.card_btc_005)
}
in "CB01 0000 0002 0000".."CB01 0000 0003 9999" -> {
context.resources.getResourceName(R.drawable.card_btc_001)
}
in "CB01 0000 0004 0000".."CB01 0000 0005 9999" -> {
context.resources.getResourceName(R.drawable.card_btc_005)
}
in "CB02 0000 0000 0000".."CB02 0000 0002 4999" -> {
context.resources.getResourceName(R.drawable.card_btc_001)
}
in "CB02 0000 0002 5000".."CB02 0000 0004 9999" -> {
context.resources.getResourceName(R.drawable.card_btc_005)
}
in "CB05 0000 1000 0000".."CB05 0000 1000 9999" -> {
context.resources.getResourceName(R.drawable.card_btc_001)
}
else -> {
val batchInfo = batches[card.batch] ?: return getDefaultArtworkBitmap()
batchInfo.artworkId
}
}
return getArtworkBitmap(artworkId) ?: return getDefaultArtworkBitmap()
}
data class ArtworkInfo(

View file

@ -23,11 +23,8 @@ import android.view.ViewGroup
import android.widget.Toast
import com.google.zxing.WriterException
import com.tangem.data.network.ServerApiHelper
import com.tangem.data.network.model.CardVerifyAndGetArtwork
import com.tangem.data.network.model.InfuraResponse
import com.tangem.data.network.request.ElectrumRequest
import com.tangem.data.network.request.InfuraRequest
import com.tangem.data.network.task.loaded_wallet.ETHRequestTask
import com.tangem.data.network.task.loaded_wallet.UpdateWalletInfoTask
import com.tangem.data.nfc.VerifyCardTask
import com.tangem.domain.cardReader.CardProtocol
@ -45,7 +42,6 @@ import kotlinx.android.synthetic.main.fr_loaded_wallet.*
import org.json.JSONException
import java.math.BigInteger
import java.util.*
import kotlin.concurrent.fixedRateTimer
class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notifications, SharedPreferences.OnSharedPreferenceChangeListener {
companion object {
@ -112,7 +108,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
tvBalance.setSingleLine(false)
//ivTangemCard.setImageResource(card!!.cardImageResource)
ivTangemCard.setImageBitmap(artworksStorage.getBatchBitmap(card!!.batch))
ivTangemCard.setImageBitmap(artworksStorage.getCardArtworkBitmap(card!!))
val engine = CoinEngineFactory.create(card!!.blockchain)
val visibleFlag = engine?.inOutPutVisible() ?: true
@ -242,7 +238,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
if (artworksStorage.checkBatchArtworkChanged(result.batch, result.artworkId)) {
Log.w(TAG, "Batch ${result.batch} artwork changed to '${result.artworkId}'")
ivTangemCard.setImageBitmap(artworksStorage.getBatchBitmap(card!!.batch))
ivTangemCard.setImageBitmap(artworksStorage.getCardArtworkBitmap(card!!))
}
if (artworksStorage.checkNeedUpdateArtwork(result.artworkId, result.artworkHash, result.getUpdateDate())) {
Log.w(TAG, "Artwork '${result.artworkId}' updated, need download")
@ -255,7 +251,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
serverApiHelper!!.setArtworkListener { artworkId, inputStream, updateDate ->
Log.w(TAG, "Artwork '$artworkId' downloaded")
artworksStorage.updateArtwork(artworkId, inputStream, updateDate)
ivTangemCard.setImageBitmap(artworksStorage.getBatchBitmap(card!!.batch))
ivTangemCard.setImageBitmap(artworksStorage.getCardArtworkBitmap(card!!))
}
// request rate info listener