From a4c7731f708210c35d4b688697c74c5ff5a65b2b Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 6 Apr 2020 17:25:38 +0300 Subject: [PATCH 01/10] Updated on 2026-08-14 --- .../ucase/resources/initializers/PersonalizeResources.kt | 6 ++++-- .../com/tangem/tangemtest/ucase/variants/personalize/Ids.kt | 3 ++- .../ucase/variants/personalize/converter/DefaultValues.kt | 1 + .../variants/personalize/converter/fromTo/ItemTypes.kt | 4 ++-- .../converter/fromTo/ItemsToPersonalizeConfig.kt | 1 + .../personalize/converter/fromTo/PersonalizeConfigTo.kt | 6 +++++- .../ucase/variants/personalize/dto/PersonalizeConfig.kt | 1 + tangem-demo/src/main/res/values/strings_personalization.xml | 2 ++ 8 files changed, 18 insertions(+), 6 deletions(-) diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/PersonalizeResources.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/PersonalizeResources.kt index 1413ede425..e182c60e38 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/PersonalizeResources.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/PersonalizeResources.kt @@ -22,7 +22,7 @@ class PersonalizeResources() { initProductMask(holder) initSettingsMask(holder) initSettingsMaskProtocolEnc(holder) - initSettingsMaskNde(holder) + initSettingsMaskNdef(holder) initPins(holder) } @@ -115,11 +115,13 @@ class PersonalizeResources() { holder.register(SettingsMaskProtocolEnc.AllowStaticEncryption, Resources(R.string.pers_item_allow_fast_encryption, R.string.info_pers_item_allow_fast_encryption)) } - private fun initSettingsMaskNde(holder: TypedHolder) { + private fun initSettingsMaskNdef(holder: TypedHolder) { holder.register(SettingsMaskNdef.UseNdef, Resources(R.string.pers_item_use_ndef, R.string.info_pers_item_use_ndef)) holder.register(SettingsMaskNdef.DynamicNdef, Resources(R.string.pers_item_dynamic_ndef, R.string.info_pers_item_dynamic_ndef)) holder.register(SettingsMaskNdef.DisablePrecomputedNdef, Resources(R.string.pers_item_disable_precomputed_ndef, R.string.info_pers_item_disable_precomputed_ndef)) holder.register(SettingsMaskNdef.Aar, Resources(R.string.pers_item_aar, R.string.info_pers_item_aar)) + holder.register(SettingsMaskNdef.AarCustom, Resources(R.string.pers_item_custom_aar_package_name, R.string.info_pers_item_custom_aar_package_name)) + holder.register(SettingsMaskNdef.Uri, Resources(R.string.pers_item_uri, R.string.info_pers_item_uri)) } private fun initPins(holder: TypedHolder) { diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/Ids.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/Ids.kt index b0cf3f78de..176af027b3 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/Ids.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/Ids.kt @@ -104,7 +104,8 @@ enum class SettingsMaskNdef : BlockItem { DynamicNdef, DisablePrecomputedNdef, Aar, - AarCustom + AarCustom, + Uri, } enum class Pins : BlockItem { diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/DefaultValues.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/DefaultValues.kt index 9fac214af2..d40e50b17e 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/DefaultValues.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/DefaultValues.kt @@ -67,6 +67,7 @@ class PersonalizeConfigValuesHolder : BaseTypedHolder() { register(SettingsMaskNdef.DisablePrecomputedNdef, Value(default.disablePrecomputedNDEF)) register(SettingsMaskNdef.Aar, Value(default.aar, Helper.aarList())) register(SettingsMaskNdef.AarCustom, Value(default.aar)) + register(SettingsMaskNdef.Uri, Value(default.uri)) register(Pins.Pin, Value(default.PIN)) register(Pins.Pin2, Value(default.PIN2)) register(Pins.Pin3, Value(default.PIN3)) diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/fromTo/ItemTypes.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/fromTo/ItemTypes.kt index 4c6b277667..87454c9244 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/fromTo/ItemTypes.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/fromTo/ItemTypes.kt @@ -17,7 +17,7 @@ class ItemTypes { SigningMethod.SignValidatedTxRaw, SigningMethod.SignValidatedTxIssuer, SigningMethod.SignValidatedTxRawIssuer, SigningMethod.SignExternal, SignHashExProp.RequireTerminalCertSig, SignHashExProp.RequireTerminalTxSig, SignHashExProp.CheckPin3, Denomination.WriteOnPersonalize, Token.ItsToken, - ProductMask.Note, ProductMask.Tag, ProductMask.CardId, ProductMask.IssuerId,SettingsMask.IsReusable, SettingsMask.NeedActivation, + ProductMask.Note, ProductMask.Tag, ProductMask.CardId, ProductMask.IssuerId, SettingsMask.IsReusable, SettingsMask.NeedActivation, SettingsMask.ForbidPurge, SettingsMask.AllowSelectBlockchain, SettingsMask.UseBlock, SettingsMask.OneApdu, SettingsMask.UseCvc, SettingsMask.AllowSwapPin, SettingsMask.AllowSwapPin2, SettingsMask.ForbidDefaultPin, SettingsMask.SmartSecurityDelay, SettingsMask.ProtectIssuerDataAgainstReplay, @@ -29,7 +29,7 @@ class ItemTypes { val editTextList = mutableListOf( CardNumber.Series, CardNumber.BatchId, Common.BlockchainCustom, SignHashExProp.CryptoExKey, Token.Symbol, - Token.ContractAddress, Pins.Pin, Pins.Pin2, Pins.Pin3, Pins.Cvc, SettingsMaskNdef.AarCustom + Token.ContractAddress, Pins.Pin, Pins.Pin2, Pins.Pin3, Pins.Cvc, SettingsMaskNdef.AarCustom, SettingsMaskNdef.Uri ) val numberList = mutableListOf( diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/fromTo/ItemsToPersonalizeConfig.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/fromTo/ItemsToPersonalizeConfig.kt index d6ea20bf06..8ba83342ce 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/fromTo/ItemsToPersonalizeConfig.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/fromTo/ItemsToPersonalizeConfig.kt @@ -92,6 +92,7 @@ class ItemsToPersonalizeConfig : ItemsToModel { export.disablePrecomputedNDEF = getTyped(SettingsMaskNdef.DisablePrecomputedNdef) export.aar = getTyped(SettingsMaskNdef.Aar) export.aarCustom = getTyped(SettingsMaskNdef.AarCustom) + export.uri = getTyped(SettingsMaskNdef.Uri) export.PIN = getTyped(Pins.Pin) export.PIN2 = getTyped(Pins.Pin2) export.PIN3 = getTyped(Pins.Pin3) diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/fromTo/PersonalizeConfigTo.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/fromTo/PersonalizeConfigTo.kt index 73baa0b078..64b26930ef 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/fromTo/PersonalizeConfigTo.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/fromTo/PersonalizeConfigTo.kt @@ -166,7 +166,8 @@ class PersonalizeConfigToItem : ModelToItems { SettingsMaskNdef.DynamicNdef, SettingsMaskNdef.DisablePrecomputedNdef, SettingsMaskNdef.Aar, - SettingsMaskNdef.AarCustom + SettingsMaskNdef.AarCustom, + SettingsMaskNdef.Uri ).forEach { createItem(block, it) } return block } @@ -248,6 +249,9 @@ class PersonalizeConfigToCardConfig : Converter { val ndefs = mutableListOf() + if (from.uri.isNotEmpty()) { + ndefs.add(NdefRecord(NdefRecord.Type.URI, from.uri)) + } when (from.aar) { "None" -> null "--- CUSTOM ---" -> NdefRecord(NdefRecord.Type.AAR, from.aarCustom) diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/dto/PersonalizeConfig.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/dto/PersonalizeConfig.kt index 0ebc993776..bc855da8b1 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/dto/PersonalizeConfig.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/dto/PersonalizeConfig.kt @@ -80,6 +80,7 @@ class PersonalizeConfig { var disablePrecomputedNDEF = false var aar = "com.tangem.wallet" var aarCustom = "" + var uri = "https://tangem.com" // Pins diff --git a/tangem-demo/src/main/res/values/strings_personalization.xml b/tangem-demo/src/main/res/values/strings_personalization.xml index 6ae2c26d5b..c17a65c936 100644 --- a/tangem-demo/src/main/res/values/strings_personalization.xml +++ b/tangem-demo/src/main/res/values/strings_personalization.xml @@ -68,6 +68,7 @@ Disable precomputed NDEF AAR Custom AAR package name + Url PIN PIN2 PIN3 @@ -155,6 +156,7 @@ Android Application Record. Android Application ID, Package name of Android apllication. Android OS will open this app or send user to Google Play page if it\'s not installed. If this field is empty, Android OS will try to open URI from URI field. + PIN1 code to access the card. Default unhashed value: ‘000000’. PIN2 code to confirm transaction signatures and swap PIN operations. Default unhashed value: ‘000’. PIN3 code to confirm POS transaction with amount that exceed pin-less floor limit. From 1bb12cd0ebdc7cd4e5917e7c6e9f380823e0fb51 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 6 Apr 2020 18:18:54 +0300 Subject: [PATCH 02/10] Updated on 2026-08-14 --- .../main/java/com/tangem/data/Blockchain.java | 39 +++++------------- .../tangem/ui/fragment/VerifyCardFragment.kt | 2 +- .../src/main/res/drawable/ic_logo_rif.png | Bin 0 -> 1701 bytes 3 files changed, 11 insertions(+), 30 deletions(-) create mode 100644 tangem-sdk-old/src/main/res/drawable/ic_logo_rif.png diff --git a/app/src/main/java/com/tangem/data/Blockchain.java b/app/src/main/java/com/tangem/data/Blockchain.java index c9747e62f8..ed1ab10387 100644 --- a/app/src/main/java/com/tangem/data/Blockchain.java +++ b/app/src/main/java/com/tangem/data/Blockchain.java @@ -20,7 +20,7 @@ public enum Blockchain { Rootstock("RSK", "RBTC", 1.0, R.drawable.tangem2, "RSK"), RootstockToken("RskToken", "RBTC", 1.0, R.drawable.tangem2, "RSK"), Cardano("CARDANO", "ADA", 1000000.0, R.drawable.tangem2, "Cardano"), - Ripple ("XRP", "XRP", 1000000.0, R.drawable.ic_logo_xrp, "XRP"), + Ripple("XRP", "XRP", 1000000.0, R.drawable.ic_logo_xrp, "XRP"), Binance("BINANCE", "BNB", 100000000.0, R.drawable.ic_logo_binance, "Binance"), BinanceTestNet("BINANCE/test", "BNB", 100000000.0, R.drawable.ic_logo_binance, "Binance Testnet"), Matic("MATIC", "MTX", 1.0, R.drawable.tangem2, "Matic"), @@ -89,37 +89,18 @@ public enum Blockchain { return mImageResource; } - public int getImageResource(android.content.Context context, String name) { - if (name==null || name.isEmpty()) - return getImageResource(); - - name = name.toLowerCase(); - - int resourceId = context.getResources().getIdentifier(name + "_token", "drawable", context.getPackageName()); - - if (resourceId <= 0) - return R.drawable.ic_logo_ethereum; - return resourceId; - } - - public static int getLogoImageResource(String blockchainID, String symbolName) { - switch (blockchainID) { - case "BTC": - return R.drawable.ic_logo_bitcoin; - - case "Token": + public int getLogoImageResource(String symbolName) { + switch (this) { + case Token: if (symbolName.equals("SEED")) return R.drawable.ic_logo_seed; - else - return R.drawable.ic_logo_ethereum; - - case "ETH": - return R.drawable.ic_logo_ethereum; - - case "XLM": - return R.drawable.ic_logo_stellar; + break; + case RootstockToken: + if (symbolName.equals("RIF")) + return R.drawable.ic_logo_rif; } - return R.drawable.tangem2; + + return getImageResource(); } } diff --git a/app/src/main/java/com/tangem/ui/fragment/VerifyCardFragment.kt b/app/src/main/java/com/tangem/ui/fragment/VerifyCardFragment.kt index 1272905501..7e26ac59ae 100644 --- a/app/src/main/java/com/tangem/ui/fragment/VerifyCardFragment.kt +++ b/app/src/main/java/com/tangem/ui/fragment/VerifyCardFragment.kt @@ -281,7 +281,7 @@ class VerifyCardFragment : BaseFragment(), NavigationResultListener, NfcAdapter. tvInputs.text = engine!!.unspentInputsDescription - ivBlockchain.setImageResource(Blockchain.getLogoImageResource(ctx.card!!.blockchainID, ctx.card!!.tokenSymbol)) + ivBlockchain.setImageResource(ctx.blockchain.getLogoImageResource(ctx.card!!.tokenSymbol)) var s = "" for (signingM in ctx.card!!.allowedSigningMethod) { diff --git a/tangem-sdk-old/src/main/res/drawable/ic_logo_rif.png b/tangem-sdk-old/src/main/res/drawable/ic_logo_rif.png new file mode 100644 index 0000000000000000000000000000000000000000..3569ef0433d98728575aac56e62c79aa03b6b259 GIT binary patch literal 1701 zcma)6c~H`M6i1^KE04BAYjt&Vw`N)=8CMOp$SupN8)qL_8;(5N<+5*|RcfLm_XlY6GIP0XkD^sZL-Bl=?U*x-@4q{e6Q@Qwo#?y$UmuLgd1VZwnbXOmCc z?HR}0Rj}sk-?O~!Eg@iI+7}$NIXF3mG8b=#!&Y^()jTv~LCa0x{|N2xMU}2JEH({} zpR_OZMAO6}QcWVXuVt4ENtJ_x1dAM}*zpq^L>V6wz!4Zx!c* zmTT~kX}^}ScgVE(+|59_$+^PuRATOFy||2?Gr`jN%|{7ULYSAe@f(8swoxk7Lyaox z$B?Ofg#{hy_!&oM1&UZ(TTXwZbf&BG)nLvL@B?O1%k{`3w*G1(lR_!g)w|yo>vBHO zU|zp?%b7^tzO%!ABkjuSIx z+KqP4Y3Ta;_ia65@{}cKthxmjEgbV#Y51U_deJ&a7Ppa+YTB*Laf3B4+jc+N9|!_(_10&v|xKhkk%RBvtL z@?WT*fFE8$6b=7i7%ns9z2^e$$8nrc)I&p&QuG9C&X3Rle}kSJnW3yzFaV{rR{MW* zC~ft)W?`wmD}g_ZSYp&G<6XhdLq6c&Q-cKdEIkBYMt4JB{5HE|a{FjE%mmON2z1Ra z8D6j{HHG3VzNWod-&6||Mex~E^W9*4+rh#E*yZr3GvO9t_C?bJW08)KBrf0Ci+8o_ z#kEzH#Upu#&f^i4?#ZqkQM#^5Nkf$_nSJA-8Y0?ETBb&Blay;83suEgJ2b6x5PT00 zUie+1n*?V_Nc`x{feRHHsQ4wS$OA#9HY!T{CXrBzsCs`Rg1o|0SOwazoBB zXL-}H_vu)6c>_wn&CY7^HZZevZ@N2Pa&*?35U}huY5j3EF-sm%AbD-%PAv2a{d;HL zs#Qh!dil?|OsA5yE;tPlYX)es#85w|$oilyfm~>&nvLqAj3zd5#Cw% zTA_+vy>I&E4MOw&^XK+KW98c^wPy0|lr+(INR7&yi*Dhlbd*qV-F5UOBxW$d`-1@~Gx3>Reb%tgJvMXJ^HPF6uZuZy|i`0L{#6g>0 zSZp|{J2wy6Fay4Iw_c5L+QNURNJ*jK8|fB8WxP{TZ&jS$5GGVzhxYfNO3l(xl!pp8 v2b$xJD8>|fU8x(-fPE*v Date: Mon, 6 Apr 2020 18:31:39 +0300 Subject: [PATCH 03/10] Updated on 2026-08-14 --- app/src/main/java/com/tangem/wallet/xlm/XlmAssetEngine.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/tangem/wallet/xlm/XlmAssetEngine.java b/app/src/main/java/com/tangem/wallet/xlm/XlmAssetEngine.java index eee75cd22c..c003f24b18 100644 --- a/app/src/main/java/com/tangem/wallet/xlm/XlmAssetEngine.java +++ b/app/src/main/java/com/tangem/wallet/xlm/XlmAssetEngine.java @@ -109,8 +109,8 @@ public class XlmAssetEngine extends CoinEngine { @Override public boolean isBalanceNotZero() { if (coinData == null) return false; - return (coinData.getXlmBalance() != null && coinData.getXlmBalance().notZero() && - coinData.getAssetBalance() != null && coinData.getAssetBalance().notZero()); + return (coinData.getXlmBalance() != null && coinData.getXlmBalance().notZero()) || + (coinData.getAssetBalance() != null && coinData.getAssetBalance().notZero()); } @Override From bd1b816eefdfb82852d220c9b36a5a5c7481f97d Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 6 Apr 2020 20:33:32 +0300 Subject: [PATCH 04/10] Updated on 2026-08-14 --- .../main/java/com/tangem/wallet/flowDemo/FlowDemoEngine.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/tangem/wallet/flowDemo/FlowDemoEngine.kt b/app/src/main/java/com/tangem/wallet/flowDemo/FlowDemoEngine.kt index 87e22d2162..b148c70fe9 100644 --- a/app/src/main/java/com/tangem/wallet/flowDemo/FlowDemoEngine.kt +++ b/app/src/main/java/com/tangem/wallet/flowDemo/FlowDemoEngine.kt @@ -7,14 +7,11 @@ import com.tangem.tangem_card.reader.CardProtocol.TangemException import com.tangem.tangem_card.tasks.SignTask import com.tangem.tangem_card.util.Util import com.tangem.wallet.* -import com.tangem.wallet.binance.client.domain.Account import com.tangem.wallet.flowDemo.proto.Observation import com.tangem.wallet.flowDemo.proto.ObserveServiceGrpc import io.grpc.ManagedChannelBuilder -import io.reactivex.Observable import io.reactivex.Single import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.functions.Function import io.reactivex.observers.DisposableSingleObserver import io.reactivex.schedulers.Schedulers import java.util.concurrent.TimeUnit @@ -247,4 +244,8 @@ class FlowDemoEngine : CoinEngine { override fun createCoinData(): CoinData { return FlowDemoData() } + + override fun isNftToken(): Boolean { + return true + } } \ No newline at end of file From 0f7b93342b84325f5a5115f75cc01775338c0e46 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 7 Apr 2020 14:45:52 +0300 Subject: [PATCH 05/10] Updated on 2026-08-14 --- app/src/main/java/com/tangem/wallet/xlm/XlmAssetEngine.java | 4 +++- app/src/main/res/values/strings.xml | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/tangem/wallet/xlm/XlmAssetEngine.java b/app/src/main/java/com/tangem/wallet/xlm/XlmAssetEngine.java index c003f24b18..06cfd560ef 100644 --- a/app/src/main/java/com/tangem/wallet/xlm/XlmAssetEngine.java +++ b/app/src/main/java/com/tangem/wallet/xlm/XlmAssetEngine.java @@ -128,6 +128,8 @@ public class XlmAssetEngine extends CoinEngine { ctx.setMessage(R.string.general_wallet_empty); } else if (awaitingConfirmation()) { ctx.setMessage(R.string.loaded_wallet_message_wait); + } else if (coinData.getXlmBalance() == null || coinData.getXlmBalance().isZero()) { + ctx.setMessage(ctx.getString(R.string.confirm_transaction_error_not_enough_xlm_for_fee)); } else { return true; } @@ -259,7 +261,7 @@ public class XlmAssetEngine extends CoinEngine { balanceValidator.setScore(100); balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_balance); balanceValidator.setSecondLine(R.string.balance_validator_second_line_confirmed_in_blockchain); - if (coinData.getXlmBalance().isZero()) { + if (!isBalanceNotZero()) { balanceValidator.setFirstLine(R.string.balance_validator_first_line_empty_wallet); balanceValidator.setSecondLine(R.string.empty_string); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 67cf1e495e..ce8a2776e1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -210,6 +210,7 @@ Cannot calculate fee! Wrong data received from the node Please wait for confirmation of incoming transaction Not enough ETH funds for fee + Not enough XLM funds for fee Not enough RBTC funds for fee Target account is not created! Send 1+ XLM to create it PIN2 is required to sign the payment From 7bea5ecea1cb24ab12245d98560e904a585cc691 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 7 Apr 2020 17:33:56 +0300 Subject: [PATCH 06/10] Updated on 2026-08-14 --- .../main/java/com/tangem/server_android/data/LocalStorage.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server-android/src/main/java/com/tangem/server_android/data/LocalStorage.kt b/server-android/src/main/java/com/tangem/server_android/data/LocalStorage.kt index 102e7ef8d9..4fbfe8956c 100644 --- a/server-android/src/main/java/com/tangem/server_android/data/LocalStorage.kt +++ b/server-android/src/main/java/com/tangem/server_android/data/LocalStorage.kt @@ -47,10 +47,11 @@ class LocalStorage artworks = HashMap() } - if (artworks.count() < 43) { + if (artworks.count() < 44) { // forceSave=true only on the last one putResourceArtworkToCatalog(R.drawable.card_default, false) putResourceArtworkToCatalog(R.drawable.card_default_nft, false) + putResourceArtworkToCatalog(R.drawable.card_id_issuer, false) putResourceArtworkToCatalog(R.drawable.card_ru006, false) putResourceArtworkToCatalog(R.drawable.card_ru007, false) putResourceArtworkToCatalog(R.drawable.card_ru011, false) From 87bd34abd9eb7b83e1fc1fecc47b4d50fa4cc64d Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 8 Apr 2020 10:44:13 +0300 Subject: [PATCH 07/10] Updated on 2026-08-14 --- app/src/main/java/com/tangem/App.kt | 4 +++- app/src/main/java/com/tangem/ui/fragment/SettingsFragment.kt | 2 +- app/src/main/java/com/tangem/util/Analytics.kt | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/tangem/App.kt b/app/src/main/java/com/tangem/App.kt index b5a4451cb7..ef34464937 100644 --- a/app/src/main/java/com/tangem/App.kt +++ b/app/src/main/java/com/tangem/App.kt @@ -80,8 +80,10 @@ class App : Application() { ) } - FirebaseAnalytics.getInstance(this).setAnalyticsCollectionEnabled(Analytics.isEnabled()) FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(Analytics.isEnabled()) + FirebaseAnalytics.getInstance(this).setAnalyticsCollectionEnabled( + Analytics.isEnabled() && !BuildConfig.DEBUG + ) } private fun buildToastHelperComponent(): ToastHelperComponent { diff --git a/app/src/main/java/com/tangem/ui/fragment/SettingsFragment.kt b/app/src/main/java/com/tangem/ui/fragment/SettingsFragment.kt index 98b57d7910..23cdd5d09b 100644 --- a/app/src/main/java/com/tangem/ui/fragment/SettingsFragment.kt +++ b/app/src/main/java/com/tangem/ui/fragment/SettingsFragment.kt @@ -53,7 +53,7 @@ class SettingsFragment : PreferenceFragmentCompat(), SharedPreferences.OnSharedP if (!Analytics.isEnabled()) { analytics.logEvent(AnalyticsEvent.ANALYTICS_TURNED_OFF.event, bundleOf()) } - analytics.setAnalyticsCollectionEnabled(Analytics.isEnabled()) + analytics.setAnalyticsCollectionEnabled(Analytics.isEnabled() && !BuildConfig.DEBUG) } FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(Analytics.isEnabled()) diff --git a/app/src/main/java/com/tangem/util/Analytics.kt b/app/src/main/java/com/tangem/util/Analytics.kt index c01d40e340..d1120edf6e 100644 --- a/app/src/main/java/com/tangem/util/Analytics.kt +++ b/app/src/main/java/com/tangem/util/Analytics.kt @@ -22,6 +22,7 @@ enum class AnalyticsParam(val param: String) { FIRMWARE("firmware"), ; } + class Analytics { companion object { fun setCardData(ctx: TangemContext): Bundle { From 0375fc4e69441aecef685365eeb0ce569c6fda69 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 8 Apr 2020 12:24:54 +0300 Subject: [PATCH 08/10] Updated on 2026-08-14 --- .../main/java/com/tangem/wallet/btc/BtcData.java | 2 +- .../com/tangem/wallet/ducatus/DucatusData.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/tangem/wallet/ducatus/DucatusData.java diff --git a/app/src/main/java/com/tangem/wallet/btc/BtcData.java b/app/src/main/java/com/tangem/wallet/btc/BtcData.java index 0d0eca1d85..28648010df 100644 --- a/app/src/main/java/com/tangem/wallet/btc/BtcData.java +++ b/app/src/main/java/com/tangem/wallet/btc/BtcData.java @@ -15,7 +15,7 @@ public class BtcData extends CoinData { super(); } - private Long balanceConfirmed, balanceUnconfirmed; + protected Long balanceConfirmed, balanceUnconfirmed; private boolean useBlockcypher = false; diff --git a/app/src/main/java/com/tangem/wallet/ducatus/DucatusData.java b/app/src/main/java/com/tangem/wallet/ducatus/DucatusData.java new file mode 100644 index 0000000000..ecb8e69561 --- /dev/null +++ b/app/src/main/java/com/tangem/wallet/ducatus/DucatusData.java @@ -0,0 +1,16 @@ +package com.tangem.wallet.ducatus; + +import com.tangem.wallet.CoinEngine; +import com.tangem.wallet.btc.BtcData; + +import java.math.BigDecimal; + +public class DucatusData extends BtcData { + public CoinEngine.InternalAmount getBalanceInInternalUnits() { + if (balanceConfirmed != null) { + return new CoinEngine.InternalAmount(BigDecimal.valueOf(balanceConfirmed), "Satoshi"); + } else { + return null; + } + } +} From 0bacaa9c50022716ddfd9d3dc2abac41885a6019 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 8 Apr 2020 15:12:59 +0300 Subject: [PATCH 09/10] Updated on 2026-08-14 --- .../java/com/tangem/wallet/ducatus/DucatusEngine.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java b/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java index 4a363c1dfb..da4fd8d5e1 100644 --- a/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java +++ b/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java @@ -46,15 +46,15 @@ import io.reactivex.observers.DisposableSingleObserver; public class DucatusEngine extends BtcEngine { private static final String TAG = DucatusEngine.class.getSimpleName(); - public BtcData coinData = null; + public DucatusData coinData = null; public DucatusEngine(TangemContext context) throws Exception { super(context); if (context.getCoinData() == null) { - coinData = new BtcData(); + coinData = new DucatusData(); context.setCoinData(coinData); } else if (context.getCoinData() instanceof BtcData) { - coinData = (BtcData) context.getCoinData(); + coinData = (DucatusData) context.getCoinData(); } else { throw new Exception("Invalid type of Blockchain data for DucatusEngine"); } @@ -380,7 +380,7 @@ public class DucatusEngine extends BtcEngine { @Override public CoinData createCoinData() { - return new BtcData(); + return new DucatusData(); } @Override From c262a567fb971729799389d8f8628a0227339f7f Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 8 Apr 2020 16:10:33 +0300 Subject: [PATCH 10/10] Updated on 2026-08-14 --- .../main/java/com/tangem/wallet/ducatus/DucatusEngine.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java b/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java index da4fd8d5e1..d6fb31aad1 100644 --- a/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java +++ b/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java @@ -49,11 +49,11 @@ public class DucatusEngine extends BtcEngine { public DucatusData coinData = null; public DucatusEngine(TangemContext context) throws Exception { - super(context); + this.ctx = context; if (context.getCoinData() == null) { coinData = new DucatusData(); context.setCoinData(coinData); - } else if (context.getCoinData() instanceof BtcData) { + } else if (context.getCoinData() instanceof DucatusData) { coinData = (DucatusData) context.getCoinData(); } else { throw new Exception("Invalid type of Blockchain data for DucatusEngine");