From 449d24b23f142c85ef75073b2afb7923375b850f Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 1 Apr 2020 18:45:02 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../triggers/afterAction/AfterScanModifier.kt | 24 ++++++++++--------- .../ParamChangeConsequence.kt | 3 +++ .../tangemtest/ucase/tunnel/ViewScreen.kt | 2 +- .../ucase/ui/BaseCardActionFragment.kt | 4 ++-- .../tangemtest/ucase/ui/ParamsViewModel.kt | 2 +- tangem-demo/src/main/res/values/strings.xml | 2 +- 6 files changed, 21 insertions(+), 16 deletions(-) diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/afterAction/AfterScanModifier.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/afterAction/AfterScanModifier.kt index 9b1e7b6f2f..cef30ec7f8 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/afterAction/AfterScanModifier.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/afterAction/AfterScanModifier.kt @@ -19,22 +19,24 @@ import ru.dev.gbixahue.eu4d.lib.android.global.threading.postUI class AfterScanModifier : AfterActionModification { override fun modify(payload: PayloadHolder, taskEvent: TaskEvent<*>, itemList: List): List { val foundItem = itemList.findDataItem(TlvId.CardId) ?: return listOf() + val card = smartCast(taskEvent)?.card ?: return listOf() + val actionView = payload.get(PayloadKey.actionView) as? ActionView ?: return listOf() - return if (taskEvent is TaskEvent.Event && taskEvent.data is ScanEvent.OnReadEvent) { - val card = (taskEvent.data as ScanEvent.OnReadEvent).card - val actionView = payload.remove(PayloadKey.actionView) as? ActionView ?: return listOf() - - if (isPersonalized(card)) { - actionView.showSnackbar(CardError.NotPersonalized) - return listOf() - } - + return if (isNotPersonalized(card)) { + actionView.showSnackbar(CardError.NotPersonalized) + postUI { actionView.showActionFab(false) } + listOf() + } else { payload.set(PayloadKey.card, card) foundItem.setData(card.cardId) postUI { actionView.showActionFab(true) } listOf(foundItem) - } else listOf() + } } - private fun isPersonalized(card: Card): Boolean = card.status == CardStatus.NotPersonalized + private fun smartCast(taskEvent: TaskEvent<*>): ScanEvent.OnReadEvent? { + return (taskEvent as? TaskEvent.Event)?.data as? ScanEvent.OnReadEvent + } + + private fun isNotPersonalized(card: Card): Boolean = card.status == CardStatus.NotPersonalized } \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/changeConsequence/ParamChangeConsequence.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/changeConsequence/ParamChangeConsequence.kt index 0b2cd58b84..d7da0d3d1b 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/changeConsequence/ParamChangeConsequence.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/changeConsequence/ParamChangeConsequence.kt @@ -8,7 +8,9 @@ import com.tangem.tangemtest._arch.structure.PayloadHolder import com.tangem.tangemtest._arch.structure.abstraction.Item import com.tangem.tangemtest.ucase.domain.paramsManager.PayloadKey import com.tangem.tangemtest.ucase.domain.paramsManager.findDataItem +import com.tangem.tangemtest.ucase.tunnel.ActionView import com.tangem.tangemtest.ucase.variants.TlvId +import ru.dev.gbixahue.eu4d.lib.android.global.threading.postUI /** [REDACTED_AUTHOR] @@ -30,6 +32,7 @@ class SignScanConsequence: ItemsChangeConsequence { val card = payload.remove(PayloadKey.card) as Card? if (card == null) { hashItem.restoreDefaultData() + postUI { (payload.get(PayloadKey.actionView) as? ActionView)?.showActionFab(false) } } else { val dataForHashing = hashItem.getData() as? String ?: "Any data mother...s" val hashedData = when(card.curve) { diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/tunnel/ViewScreen.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/tunnel/ViewScreen.kt index 4103f4f467..d7c1df09f2 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/tunnel/ViewScreen.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/tunnel/ViewScreen.kt @@ -10,5 +10,5 @@ interface SnackbarHolder { } interface ActionView : ViewScreen, SnackbarHolder { - fun showActionFab(enable: Boolean) + fun showActionFab(show: Boolean) } \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/BaseCardActionFragment.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/BaseCardActionFragment.kt index 1f6f679601..c4202bfa01 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/BaseCardActionFragment.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/BaseCardActionFragment.kt @@ -126,8 +126,8 @@ abstract class BaseCardActionFragment : Fragment(), LayoutHolder, ActionView { return view as ViewGroup } - override fun showActionFab(enable: Boolean) { - if (enable) actionFab.show() else actionFab.hide() + override fun showActionFab(show: Boolean) { + if (show) actionFab.show() else actionFab.hide() } override fun showSnackbar(id: Id) { diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/ParamsViewModel.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/ParamsViewModel.kt index 0ead6ab91a..2df743786e 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/ParamsViewModel.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/ParamsViewModel.kt @@ -88,7 +88,7 @@ internal class Notifier(private val vm: ParamsViewModel) { private val gson: Gson = GsonInitializer().gson fun handleActionResult(response: TaskEvent<*>, list: List) { - notifyItemsChanged(list) + if (list.isNotEmpty()) notifyItemsChanged(list) handleResponse(response) } diff --git a/tangem-demo/src/main/res/values/strings.xml b/tangem-demo/src/main/res/values/strings.xml index ed410bbe60..4c532e1910 100644 --- a/tangem-demo/src/main/res/values/strings.xml +++ b/tangem-demo/src/main/res/values/strings.xml @@ -7,6 +7,6 @@ unknown Docs - The card not personalized + Your card hasn\'t been personalized yet. You need to run personalize command first.