Updated on 2026-08-14
This commit is contained in:
parent
b909f4493a
commit
a4c7731f70
8 changed files with 18 additions and 6 deletions
|
|
@ -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>) {
|
||||
|
|
|
|||
|
|
@ -104,7 +104,8 @@ enum class SettingsMaskNdef : BlockItem {
|
|||
DynamicNdef,
|
||||
DisablePrecomputedNdef,
|
||||
Aar,
|
||||
AarCustom
|
||||
AarCustom,
|
||||
Uri,
|
||||
}
|
||||
|
||||
enum class Pins : BlockItem {
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ class PersonalizeConfig {
|
|||
var disablePrecomputedNDEF = false
|
||||
var aar = "com.tangem.wallet"
|
||||
var aarCustom = ""
|
||||
var uri = "https://tangem.com"
|
||||
|
||||
|
||||
// Pins
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue