Updated on 2026-08-14

This commit is contained in:
Tangem 2020-04-07 07:20:00 +00:00
commit 9560ef80a7
8 changed files with 18 additions and 6 deletions

View file

@ -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<Id, Resources>) {
private fun initSettingsMaskNdef(holder: TypedHolder<Id, Resources>) {
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<Id, Resources>) {

View file

@ -104,7 +104,8 @@ enum class SettingsMaskNdef : BlockItem {
DynamicNdef,
DisablePrecomputedNdef,
Aar,
AarCustom
AarCustom,
Uri,
}
enum class Pins : BlockItem {

View file

@ -67,6 +67,7 @@ class PersonalizeConfigValuesHolder : BaseTypedHolder<Id, Value>() {
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))

View file

@ -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.IdCard, ProductMask.IdIssuerCard,SettingsMask.IsReusable, SettingsMask.NeedActivation,
ProductMask.Note, ProductMask.Tag, ProductMask.IdCard, ProductMask.IdIssuerCard, 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(

View file

@ -92,6 +92,7 @@ class ItemsToPersonalizeConfig : ItemsToModel<PersonalizeConfig> {
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)

View file

@ -166,7 +166,8 @@ class PersonalizeConfigToItem : ModelToItems<PersonalizeConfig> {
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<PersonalizeConfig, CardConfig> {
val ndefs = mutableListOf<NdefRecord>()
if (from.uri.isNotEmpty()) {
ndefs.add(NdefRecord(NdefRecord.Type.URI, from.uri))
}
when (from.aar) {
"None" -> null
"--- CUSTOM ---" -> NdefRecord(NdefRecord.Type.AAR, from.aarCustom)

View file

@ -80,6 +80,7 @@ class PersonalizeConfig {
var disablePrecomputedNDEF = false
var aar = "com.tangem.wallet"
var aarCustom = ""
var uri = "https://tangem.com"
// Pins

View file

@ -68,6 +68,7 @@
<string name="pers_item_disable_precomputed_ndef">Disable precomputed NDEF</string>
<string name="pers_item_aar">AAR</string>
<string name="pers_item_custom_aar_package_name">Custom AAR package name</string>
<string name="pers_item_uri">Url</string>
<string name="pers_item_pin">PIN</string>
<string name="pers_item_pin2">PIN2</string>
<string name="pers_item_pin3">PIN3</string>
@ -155,6 +156,7 @@
</string>
<string name="info_pers_item_aar">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.</string>
<string name="info_pers_item_custom_aar_package_name"></string>
<string name="info_pers_item_uri"></string>
<string name="info_pers_item_pin">PIN1 code to access the card. Default unhashed value: 000000.</string>
<string name="info_pers_item_pin2">PIN2 code to confirm transaction signatures and swap PIN operations. Default unhashed value: 000.</string>
<string name="info_pers_item_pin3">PIN3 code to confirm POS transaction with amount that exceed pin-less floor limit.</string>