From e243410d53e981f745ea174949dba156f51f41e1 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 18 Sep 2018 11:50:01 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/domain/wallet/ArtworksStorage.kt | 66 ++++++++++++++++--- .../presentation/fragment/LoadedWallet.kt | 10 +-- 2 files changed, 59 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/tangem/domain/wallet/ArtworksStorage.kt b/app/src/main/java/com/tangem/domain/wallet/ArtworksStorage.kt index ea0898e1f0..20324a2633 100644 --- a/app/src/main/java/com/tangem/domain/wallet/ArtworksStorage.kt +++ b/app/src/main/java/com/tangem/domain/wallet/ArtworksStorage.kt @@ -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( diff --git a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt index ca45a5b8e4..e331492274 100644 --- a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt +++ b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt @@ -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