From b3e52c242e6af20a43983b5d24bfd8d4a6c2765e Mon Sep 17 00:00:00 2001 From: Tangem Date: Sun, 29 Mar 2020 18:19:13 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tangemtest/_arch/structure/impl/Items.kt | 4 ++- .../ucase/domain/actions/PersonalizeAction.kt | 31 +++++++++---------- .../managers/PersonalizeParamsManager.kt | 4 ++- .../tangemtest/ucase/ui/ParamsViewModel.kt | 7 +++-- 4 files changed, 25 insertions(+), 21 deletions(-) diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/impl/Items.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/impl/Items.kt index 3ce019b111..11ea5510c0 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/impl/Items.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/impl/Items.kt @@ -14,4 +14,6 @@ class BoolItem(override val id: Id, value: Boolean? = null) : BaseItem( class ListItem(override val id: Id, value: List, selectedValue: Any?) : BaseItem(ListViewModel(ListValueWrapper(selectedValue, value)) -) \ No newline at end of file +) + +inline fun BaseItem.getData(): T? = viewModel.data \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/PersonalizeAction.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/PersonalizeAction.kt index 87666d0646..3ebe74db73 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/PersonalizeAction.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/PersonalizeAction.kt @@ -1,9 +1,12 @@ package com.tangem.tangemtest.ucase.domain.actions import com.tangem.commands.personalization.CardConfig +import com.tangem.tangemtest._arch.structure.impl.EditTextItem +import com.tangem.tangemtest._arch.structure.impl.getData import com.tangem.tangemtest.ucase.domain.paramsManager.ActionCallback -import com.tangem.tasks.ScanEvent +import com.tangem.tangemtest.ucase.variants.TlvId import com.tangem.tasks.TaskEvent +import ru.dev.gbixahue.eu4d.lib.android.global.log.Log /** [REDACTED_AUTHOR] @@ -11,17 +14,25 @@ import com.tangem.tasks.TaskEvent class PersonalizeAction : BaseCardAction() { override fun executeMainAction(attrs: AttrForAction, callback: ActionCallback) { var cardId: String? = null - ScanAction().executeMainAction(attrs) { response, b -> + ScanAction().executeMainAction(attrs) { response, affectedList -> when (response) { is TaskEvent.Event -> { - val taskEvent = response as TaskEvent.Event - cardId = handleDataEvent(taskEvent.data) + Log.d(this, "ScanAction:response: TaskEvent.Event") + val item = affectedList.firstOrNull { it.id == TlvId.CardId } as? EditTextItem + ?: return@executeMainAction + cardId = item.getData() if (cardId == null) { handleResponse(response, null, attrs, callback) return@executeMainAction } } is TaskEvent.Completion -> { + Log.d(this, "ScanAction:response: TaskEvent.Completion") + if (cardId == null) { + handleResponse(response, null, attrs, callback) + return@executeMainAction + } + val cardConfig = attrs.payload.remove(cardConfig) as? CardConfig ?: throw IllegalArgumentException("CardConfig must be in the payloads of the ParamsManager") @@ -30,21 +41,9 @@ class PersonalizeAction : BaseCardAction() { } } } - - } } - private fun handleDataEvent(event: Any?): String? { - return when (event) { - is ScanEvent.OnReadEvent -> { - event.card.cardId - } - else -> null - } - - } - companion object { val cardConfig = "cardConfig" } diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/managers/PersonalizeParamsManager.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/managers/PersonalizeParamsManager.kt index ccaeba9804..6d3fcda887 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/managers/PersonalizeParamsManager.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/managers/PersonalizeParamsManager.kt @@ -2,15 +2,17 @@ package com.tangem.tangemtest.ucase.domain.paramsManager.managers import com.tangem.CardManager import com.tangem.tangemtest._arch.structure.abstraction.Item +import com.tangem.tangemtest._arch.structure.impl.EditTextItem import com.tangem.tangemtest.ucase.domain.actions.PersonalizeAction import com.tangem.tangemtest.ucase.domain.paramsManager.ActionCallback +import com.tangem.tangemtest.ucase.variants.TlvId /** [REDACTED_AUTHOR] */ class PersonalizeParamsManager : BaseParamsManager(PersonalizeAction()) { override fun createParamsList(): List { - return listOf() + return listOf(EditTextItem(TlvId.CardId)) } override fun invokeMainAction(cardManager: CardManager, callback: ActionCallback) { 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 dd2ae58474..1498352329 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 @@ -15,6 +15,7 @@ import com.tangem.tangemtest.ucase.domain.paramsManager.ParamsManager import com.tangem.tasks.ScanEvent import com.tangem.tasks.TaskError import com.tangem.tasks.TaskEvent +import ru.dev.gbixahue.eu4d.lib.android.global.log.Log /** [REDACTED_AUTHOR] @@ -109,13 +110,13 @@ internal class Notifier(private val vm: ParamsViewModel) { private fun handleCompletionEvent(taskEvent: TaskEvent.Completion<*>) { if (taskEvent.error == null) { - if (notShowedError == null) { - vm.seError.postValue("User was cancelled") - } else { + Log.d(this, "error = null") + if (notShowedError != null) { vm.seError.postValue("${notShowedError!!::class.simpleName}") notShowedError = null } } else { + Log.d(this, "error = ${taskEvent.error}") when (taskEvent.error) { is TaskError.UserCancelled -> { if (notShowedError == null) {