Updated on 2026-08-14
This commit is contained in:
parent
3173f17104
commit
878581ca8e
11 changed files with 100 additions and 21 deletions
|
|
@ -50,9 +50,7 @@ class TestUserDataActivity : AppCompatActivity() {
|
|||
tangemSdk.writeUserData(
|
||||
writeOptions.cardId!!,
|
||||
writeOptions.userData,
|
||||
writeOptions.userProtectedData,
|
||||
writeOptions.userCounter,
|
||||
writeOptions.userProtectedCounter
|
||||
writeOptions.userCounter
|
||||
) {
|
||||
when (it) {
|
||||
is CompletionResult.Failure -> handleError(tv_write_result, it.error)
|
||||
|
|
|
|||
|
|
@ -71,7 +71,8 @@ class ActionListFragment : BaseFragment() {
|
|||
ActionType.ReadIssuerExData,
|
||||
ActionType.WriteIssuerExData,
|
||||
ActionType.ReadUserData,
|
||||
ActionType.WriteUserData
|
||||
ActionType.WriteUserData,
|
||||
ActionType.WriteProtectedUserData
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -11,12 +11,10 @@ class WriteUserDataAction : BaseAction() {
|
|||
override fun executeMainAction(payload: PayloadHolder, attrs: AttrForAction, callback: ActionCallback) {
|
||||
val userData = (attrs.itemList.findItem(TlvId.UserData)?.getData() as? String)?.toByteArray()
|
||||
?: return
|
||||
val protectedUserData = (attrs.itemList.findItem(TlvId.ProtectedUserData)?.getData() as? String)?.toByteArray()
|
||||
?: return
|
||||
val cardId = attrs.itemList.findItem(TlvId.CardId)?.viewModel?.data ?: return
|
||||
val counter = (attrs.itemList.findItem(TlvId.Counter)?.viewModel?.data as? Int) ?: 1
|
||||
|
||||
attrs.tangemSdk.writeUserData(stringOf(cardId), userData, protectedUserData, counter, counter) {
|
||||
attrs.tangemSdk.writeUserData(stringOf(cardId), userData, counter) {
|
||||
handleResult(payload, it, null, attrs, callback)
|
||||
}
|
||||
}
|
||||
|
|
@ -24,7 +22,6 @@ class WriteUserDataAction : BaseAction() {
|
|||
override fun getActionByTag(payload: PayloadHolder, id: Id, attrs: AttrForAction): ((ActionCallback) -> Unit)? {
|
||||
return when (id) {
|
||||
TlvId.CardId -> { callback -> ScanAction().executeMainAction(payload, attrs, callback) }
|
||||
TlvId.Counter -> { callback -> ReadUserDataAction().executeMainAction(payload, attrs, callback) }
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
package com.tangem.devkit.ucase.domain.actions
|
||||
|
||||
import com.tangem.devkit._arch.structure.Id
|
||||
import com.tangem.devkit._arch.structure.PayloadHolder
|
||||
import com.tangem.devkit._arch.structure.abstraction.findItem
|
||||
import com.tangem.devkit.ucase.domain.paramsManager.ActionCallback
|
||||
import com.tangem.devkit.ucase.variants.TlvId
|
||||
import ru.dev.gbixahue.eu4d.lib.kotlin.stringOf
|
||||
|
||||
|
||||
class WriteUserProtectedDataAction : BaseAction() {
|
||||
override fun executeMainAction(payload: PayloadHolder, attrs: AttrForAction, callback: ActionCallback) {
|
||||
val protectedUserData = (attrs.itemList.findItem(TlvId.ProtectedUserData)?.getData() as? String)?.toByteArray()
|
||||
?: return
|
||||
val cardId = attrs.itemList.findItem(TlvId.CardId)?.viewModel?.data ?: return
|
||||
val counter = (attrs.itemList.findItem(TlvId.Counter)?.viewModel?.data as? Int) ?: 1
|
||||
|
||||
attrs.tangemSdk.writeProtectedUserData(stringOf(cardId), protectedUserData, counter) {
|
||||
handleResult(payload, it, null, attrs, callback)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getActionByTag(payload: PayloadHolder, id: Id, attrs: AttrForAction): ((ActionCallback) -> Unit)? {
|
||||
return when (id) {
|
||||
TlvId.CardId -> { callback -> ScanAction().executeMainAction(payload, attrs, callback) }
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -96,9 +96,18 @@ class WriteUserDataItemsManager : BaseItemsManager(WriteUserDataAction()) {
|
|||
setItems(listOf(
|
||||
EditTextItem(TlvId.CardId, null),
|
||||
EditTextItem(TlvId.Counter, "1"),
|
||||
EditTextItem(TlvId.UserData, "User data to be written on a card"),
|
||||
EditTextItem(TlvId.ProtectedUserData, "Protected user data to be written on a card")
|
||||
|
||||
EditTextItem(TlvId.UserData, "User data to be written on a card")
|
||||
))
|
||||
}
|
||||
}
|
||||
|
||||
class WriteProtectedUserDataItemsManager : BaseItemsManager(WriteUserProtectedDataAction()) {
|
||||
init {
|
||||
setItemChangeConsequences(CardIdConsequence())
|
||||
setItems(listOf(
|
||||
EditTextItem(TlvId.CardId, null),
|
||||
EditTextItem(TlvId.Counter, "1"),
|
||||
EditTextItem(TlvId.ProtectedUserData, "Protected user data to be written on a card")
|
||||
))
|
||||
}
|
||||
}
|
||||
|
|
@ -16,6 +16,7 @@ enum class ActionType : Id {
|
|||
WriteIssuerExData,
|
||||
ReadUserData,
|
||||
WriteUserData,
|
||||
WriteProtectedUserData,
|
||||
Personalize,
|
||||
Depersonalize,
|
||||
Unknown,
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ class ActionResources {
|
|||
holder.register(ActionType.WriteIssuerExData, ActionRes(R.string.action_issuer_write_ex_data, R.string.info_action_issuer_write_ex_data, R.id.action_nav_entry_point_to_nav_issuer_write_ex_data))
|
||||
holder.register(ActionType.ReadUserData, ActionRes(R.string.action_user_read_data, R.string.info_action_user_read_data, R.id.action_nav_entry_point_to_nav_user_read_data))
|
||||
holder.register(ActionType.WriteUserData, ActionRes(R.string.action_user_write_data, R.string.info_action_user_write_data, R.id.action_nav_entry_point_to_nav_user_write_data))
|
||||
holder.register(ActionType.WriteProtectedUserData, ActionRes(R.string.action_user_write_protected_data, R.string.info_action_user_write_protected_data, R.id.action_nav_entry_point_to_nav_user_write_protected_data))
|
||||
// holder.register(ActionType.Unknown, getIfNotContains())
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
package com.tangem.devkit.ucase.variants.userdata.ui
|
||||
|
||||
import com.tangem.devkit.ucase.domain.paramsManager.ItemsManager
|
||||
import com.tangem.devkit.ucase.domain.paramsManager.managers.WriteProtectedUserDataItemsManager
|
||||
import com.tangem.devkit.ucase.ui.BaseCardActionFragment
|
||||
|
||||
class WriteProtectedUserDataFragment : BaseCardActionFragment() {
|
||||
|
||||
override val itemsManager: ItemsManager by lazy { WriteProtectedUserDataItemsManager() }
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue