From fcac61eb69ef9b95e3f023908ab1d19f07a067bd Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 23 Apr 2020 18:39:29 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../paramsManager/managers/SimpleManagers.kt | 5 +-- .../ParamChangeConsequence.kt | 34 +++++-------------- 2 files changed, 11 insertions(+), 28 deletions(-) diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/managers/SimpleManagers.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/managers/SimpleManagers.kt index 97e1a9f2db..a2a7ab9e8b 100644 --- a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/managers/SimpleManagers.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/managers/SimpleManagers.kt @@ -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") diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/triggers/changeConsequence/ParamChangeConsequence.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/triggers/changeConsequence/ParamChangeConsequence.kt index 5a455a3989..6da18ea8b7 100644 --- a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/triggers/changeConsequence/ParamChangeConsequence.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/triggers/changeConsequence/ParamChangeConsequence.kt @@ -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): List? + fun affectChanges(payload: PayloadHolder, changedItem: Item, itemList: List): List } -class SignScanConsequence : ItemsChangeConsequence { +class CardIdConsequence : ItemsChangeConsequence { - override fun affectChanges(payload: PayloadHolder, changedItem: Item, itemList: List): List? { - if (changedItem.id != TlvId.CardId) return null + override fun affectChanges(payload: PayloadHolder, changedItem: Item, itemList: List): List { + val affectedList = mutableListOf() + 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() == null + postUI { (payload.get(PayloadKey.actionView) as? ActionView)?.enableActionFab(!cidDataIsNull) } + return affectedList } } \ No newline at end of file