Updated on 2026-08-14
This commit is contained in:
parent
4955064927
commit
fcac61eb69
2 changed files with 11 additions and 28 deletions
|
|
@ -4,7 +4,7 @@ import com.tangem.devkit._arch.structure.impl.EditTextItem
|
|||
import com.tangem.devkit.ucase.domain.actions.DepersonalizeAction
|
||||
import com.tangem.devkit.ucase.domain.actions.ScanAction
|
||||
import com.tangem.devkit.ucase.domain.actions.SignAction
|
||||
import com.tangem.devkit.ucase.domain.paramsManager.triggers.changeConsequence.SignScanConsequence
|
||||
import com.tangem.devkit.ucase.domain.paramsManager.triggers.changeConsequence.CardIdConsequence
|
||||
import com.tangem.devkit.ucase.variants.TlvId
|
||||
|
||||
/**
|
||||
|
|
@ -15,6 +15,7 @@ class ScanItemsManager : BaseItemsManager(ScanAction())
|
|||
class DepersonalizeItemsManager : BaseItemsManager(DepersonalizeAction()) {
|
||||
|
||||
init {
|
||||
setItemChangeConsequences(CardIdConsequence())
|
||||
setItems(listOf(EditTextItem(TlvId.CardId, null)))
|
||||
}
|
||||
}
|
||||
|
|
@ -22,7 +23,7 @@ class DepersonalizeItemsManager : BaseItemsManager(DepersonalizeAction()) {
|
|||
class SignItemsManager : BaseItemsManager(SignAction()) {
|
||||
|
||||
init {
|
||||
setItemChangeConsequences(SignScanConsequence())
|
||||
setItemChangeConsequences(CardIdConsequence())
|
||||
setItems(listOf(
|
||||
EditTextItem(TlvId.CardId, null),
|
||||
EditTextItem(TlvId.TransactionOutHash, "Data used for hashing")
|
||||
|
|
|
|||
|
|
@ -1,13 +1,7 @@
|
|||
package com.tangem.devkit.ucase.domain.paramsManager.triggers.changeConsequence
|
||||
|
||||
import com.tangem.commands.Card
|
||||
import com.tangem.commands.EllipticCurve
|
||||
import com.tangem.common.extensions.calculateSha256
|
||||
import com.tangem.common.extensions.calculateSha512
|
||||
import com.tangem.common.extensions.toHexString
|
||||
import com.tangem.devkit._arch.structure.PayloadHolder
|
||||
import com.tangem.devkit._arch.structure.abstraction.Item
|
||||
import com.tangem.devkit._arch.structure.abstraction.findItem
|
||||
import com.tangem.devkit.ucase.domain.paramsManager.PayloadKey
|
||||
import com.tangem.devkit.ucase.tunnel.ActionView
|
||||
import com.tangem.devkit.ucase.variants.TlvId
|
||||
|
|
@ -20,29 +14,17 @@ import ru.dev.gbixahue.eu4d.lib.android.global.threading.postUI
|
|||
* of the incoming parameter
|
||||
*/
|
||||
interface ItemsChangeConsequence {
|
||||
fun affectChanges(payload: PayloadHolder, changedItem: Item, itemList: List<Item>): List<Item>?
|
||||
fun affectChanges(payload: PayloadHolder, changedItem: Item, itemList: List<Item>): List<Item>
|
||||
}
|
||||
|
||||
class SignScanConsequence : ItemsChangeConsequence {
|
||||
class CardIdConsequence : ItemsChangeConsequence {
|
||||
|
||||
override fun affectChanges(payload: PayloadHolder, changedItem: Item, itemList: List<Item>): List<Item>? {
|
||||
if (changedItem.id != TlvId.CardId) return null
|
||||
override fun affectChanges(payload: PayloadHolder, changedItem: Item, itemList: List<Item>): List<Item> {
|
||||
val affectedList = mutableListOf<Item>()
|
||||
if (changedItem.id != TlvId.CardId) return affectedList
|
||||
|
||||
val hashItem = itemList.findItem(TlvId.TransactionOutHash) ?: return null
|
||||
val affectedItems = mutableListOf(hashItem)
|
||||
val card = payload.remove(PayloadKey.card) as Card?
|
||||
if (card == null) {
|
||||
hashItem.restoreDefaultData()
|
||||
postUI { (payload.get(PayloadKey.actionView) as? ActionView)?.enableActionFab(false) }
|
||||
} else {
|
||||
val dataForHashing = hashItem.getData() as? String ?: "Any data mother...s"
|
||||
val hashedData = when (card.curve) {
|
||||
EllipticCurve.Secp256k1 -> dataForHashing.calculateSha256()
|
||||
EllipticCurve.Ed25519 -> dataForHashing.calculateSha512()
|
||||
else -> return null
|
||||
}
|
||||
hashItem.setData(hashedData.toHexString())
|
||||
}
|
||||
return affectedItems.toList()
|
||||
val cidDataIsNull = changedItem.getData<String?>() == null
|
||||
postUI { (payload.get(PayloadKey.actionView) as? ActionView)?.enableActionFab(!cidDataIsNull) }
|
||||
return affectedList
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue