From 20c985d8594340ee26937ecf0194c127c8e54d29 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 16 Nov 2021 19:45:05 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../features/details/redux/DetailsAction.kt | 3 +- .../details/redux/DetailsMiddleware.kt | 30 ++++++++++++------- .../features/details/ui/DetailsFragment.kt | 6 ++-- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt index 29143f79b9..9c7a39b172 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt @@ -1,6 +1,7 @@ package com.tangem.tap.features.details.redux import com.tangem.blockchain.common.Wallet +import com.tangem.common.card.Card import com.tangem.operations.pins.CheckUserCodesResponse import com.tangem.tap.common.redux.NotificationAction import com.tangem.tap.common.redux.global.FiatCurrencyName @@ -50,7 +51,7 @@ sealed class DetailsAction : Action { } sealed class ManageSecurity : DetailsAction() { - data class CheckCurrentSecurityOption(val cardId: String?) : ManageSecurity() + data class CheckCurrentSecurityOption(val card: Card) : ManageSecurity() data class SetCurrentOption(val userCodes: CheckUserCodesResponse) : ManageSecurity() object OpenSecurity : ManageSecurity() data class SelectOption(val option: SecurityOption) : ManageSecurity() diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt index 0f9b8982dc..05591c0e48 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt @@ -1,8 +1,10 @@ package com.tangem.tap.features.details.redux import com.tangem.common.CompletionResult +import com.tangem.common.card.FirmwareVersion import com.tangem.common.core.TangemSdkError import com.tangem.common.services.Result +import com.tangem.operations.pins.CheckUserCodesResponse import com.tangem.tap.common.analytics.FirebaseAnalyticsHandler import com.tangem.tap.common.extensions.dispatchNotification import com.tangem.tap.common.extensions.dispatchOnMain @@ -141,16 +143,22 @@ class DetailsMiddleware { fun handle(action: DetailsAction.ManageSecurity) { when (action) { is DetailsAction.ManageSecurity.CheckCurrentSecurityOption -> { - scope.launch { - when (val response = tangemSdkManager.checkUserCodes(action.cardId)) { - is CompletionResult.Success -> { - store.dispatchOnMain( - DetailsAction.ManageSecurity.SetCurrentOption(response.data) - ) - store.dispatchOnMain(DetailsAction.ManageSecurity.OpenSecurity) - } - is CompletionResult.Failure -> { - + if (action.card.firmwareVersion >= FirmwareVersion.IsAccessCodeStatusAvailable) { + // for a card that meets this condition, we can get these statuses from it + val simulatedResponse = CheckUserCodesResponse( + action.card.isAccessCodeSet, action.card.isPasscodeSet ?: false + ) + store.dispatch(DetailsAction.ManageSecurity.SetCurrentOption(simulatedResponse)) + store.dispatch(DetailsAction.ManageSecurity.OpenSecurity) + } else { + scope.launch { + when (val response = tangemSdkManager.checkUserCodes(action.card.cardId)) { + is CompletionResult.Success -> { + store.dispatchOnMain(DetailsAction.ManageSecurity.SetCurrentOption(response.data)) + store.dispatchOnMain(DetailsAction.ManageSecurity.OpenSecurity) + } + is CompletionResult.Failure -> { + } } } } @@ -197,7 +205,7 @@ class DetailsMiddleware { actionToLog = FirebaseAnalyticsHandler.ActionToLog.ChangeSecOptions, parameters = mapOf( FirebaseAnalyticsHandler.AnalyticsParam.NEW_SECURITY_OPTION to - (selectedOption?.name ?: "") + (selectedOption?.name ?: "") ), card = store.state.detailsState.scanResponse?.card ) diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/DetailsFragment.kt b/app/src/main/java/com/tangem/tap/features/details/ui/DetailsFragment.kt index 6f7eb15b43..5a1864ec3f 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/DetailsFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/DetailsFragment.kt @@ -119,9 +119,7 @@ class DetailsFragment : Fragment(R.layout.fragment_details), StoreSubscriber