From 8d66353e6e776891ea860b019039090d31b9ca71 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 18 Oct 2022 15:32:50 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../com/tangem/tap/domain/TangemSdkManager.kt | 49 ++++++++++++------- .../redux/OnboardingWalletMiddleware.kt | 1 + .../saltPay/redux/OnboardingSaltPayAction.kt | 3 +- .../redux/OnboardingSaltPayMiddleware.kt | 1 + .../saltPay/redux/OnboardingSaltPayState.kt | 2 +- 5 files changed, 34 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt b/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt index 9f5703fb22..98694f525b 100644 --- a/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt @@ -60,32 +60,32 @@ class TangemSdkManager(private val tangemSdk: TangemSdk, private val context: Co } suspend fun createProductWallet( - scanResponse: ScanResponse + scanResponse: ScanResponse, ): CompletionResult { return runTaskAsync( CreateProductWalletTask(scanResponse.productType), scanResponse.card.cardId, - Message(context.getString(R.string.initial_message_create_wallet_body)) + Message(context.getString(R.string.initial_message_create_wallet_body)), ) } private fun sendScanResultsToAnalytics( analyticsHandler: AnalyticsHandler?, - result: CompletionResult + result: CompletionResult, ) { when (result) { is CompletionResult.Success -> { analyticsHandler?.triggerEvent( event = AnalyticsEvent.CARD_IS_SCANNED, card = result.data.card, - blockchain = result.data.walletData?.blockchain + blockchain = result.data.walletData?.blockchain, ) if (DemoHelper.isDemoCard(result.data)) { analyticsHandler?.triggerEvent( event = AnalyticsEvent.DEMO_MODE_ACTIVATED, card = result.data.card, blockchain = result.data.walletData?.blockchain, - params = mapOf(AnalyticsParam.CARD_ID.param to result.data.card.cardId) + params = mapOf(AnalyticsParam.CARD_ID.param to result.data.card.cardId), ) } } @@ -93,20 +93,22 @@ class TangemSdkManager(private val tangemSdk: TangemSdk, private val context: Co (result.error as? TangemSdkError)?.let { error -> analyticsHandler?.logCardSdkError( error = error, - actionToLog = Analytics.ActionToLog.Scan + actionToLog = Analytics.ActionToLog.Scan, ) } } } suspend fun createWallet(cardId: String?): CompletionResult { - return runTaskAsyncReturnOnMain(CreateWalletAndRescanTask(), cardId, - initialMessage = Message(context.getString(R.string.initial_message_create_wallet_body))) + return runTaskAsyncReturnOnMain( + CreateWalletAndRescanTask(), cardId, + initialMessage = Message(context.getString(R.string.initial_message_create_wallet_body)), + ) } suspend fun derivePublicKeys( cardId: String, - derivations: Map> + derivations: Map>, ): CompletionResult { return runTaskAsyncReturnOnMain(DeriveMultipleWalletPublicKeysTask(derivations), cardId) } @@ -115,49 +117,58 @@ class TangemSdkManager(private val tangemSdk: TangemSdk, private val context: Co return runTaskAsyncReturnOnMain( ResetToFactorySettingsTask(), card.cardId, - initialMessage = Message(context.getString(R.string.details_row_title_reset_factory_settings))) + initialMessage = Message(context.getString(R.string.details_row_title_reset_factory_settings)), + ) } suspend fun setPasscode(cardId: String?): CompletionResult { return runTaskAsyncReturnOnMain( SetUserCodeCommand.changePasscode(null), cardId, - initialMessage = Message(context.getString(R.string.initial_message_change_passcode_body))) + initialMessage = Message(context.getString(R.string.initial_message_change_passcode_body)), + ) } suspend fun setAccessCode(cardId: String?): CompletionResult { return runTaskAsyncReturnOnMain( SetUserCodeCommand.changeAccessCode(null), cardId, - initialMessage = Message(context.getString(R.string.initial_message_change_access_code_body))) + initialMessage = Message(context.getString(R.string.initial_message_change_access_code_body)), + ) } suspend fun setLongTap(cardId: String?): CompletionResult { return runTaskAsyncReturnOnMain( SetUserCodeCommand.resetUserCodes(), cardId, - initialMessage = Message(context.getString(R.string.initial_message_tap_header))) + initialMessage = Message(context.getString(R.string.initial_message_tap_header)), + ) } suspend fun checkUserCodes(cardId: String?): CompletionResult { return runTaskAsyncReturnOnMain( CheckUserCodesCommand(), cardId, - initialMessage = Message(context.getString(R.string.initial_message_tap_header))) + initialMessage = Message(context.getString(R.string.initial_message_tap_header)), + ) } suspend fun scanCard(): CompletionResult { return runTaskAsyncReturnOnMain( ScanTask(), - initialMessage = Message(context.getString(R.string.initial_message_tap_header))) + initialMessage = Message(context.getString(R.string.initial_message_tap_header)), + ) } suspend fun runTaskAsync( - runnable: CardSessionRunnable, cardId: String? = null, initialMessage: Message? = null, + runnable: CardSessionRunnable, + cardId: String? = null, + initialMessage: Message? = null, + accessCode: String? = null, ): CompletionResult = withContext(Dispatchers.Main) { suspendCoroutine { continuation -> - tangemSdk.startSessionWithRunnable(runnable, cardId, initialMessage) { result -> + tangemSdk.startSessionWithRunnable(runnable, cardId, initialMessage, accessCode) { result -> if (continuation.context.isActive) continuation.resume(result) } } @@ -187,8 +198,8 @@ class TangemSdkManager(private val tangemSdk: TangemSdk, private val context: Co linkedTerminal = true, allowUntrustedCards = true, filter = CardFilter( - allowedCardTypes = FirmwareVersion.FirmwareType.values().toList() - ) + allowedCardTypes = FirmwareVersion.FirmwareType.values().toList(), + ), ) } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt index bed9b98857..eb23b6b4e0 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt @@ -284,6 +284,7 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) if (action.accessCodeConfirmation == backupState.accessCode) { store.dispatch(BackupAction.SetAccessCodeError(null)) backupService.setAccessCode(action.accessCodeConfirmation) + store.dispatch(OnboardingSaltPayAction.SetAccessCode(action.accessCodeConfirmation)) store.dispatch(BackupAction.PrepareToWritePrimaryCard) } else { store.dispatch(BackupAction.SetAccessCodeError(AccessCodeError.CodesDoNotMatch)) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayAction.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayAction.kt index 30f0f25d71..54876f0a64 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayAction.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayAction.kt @@ -19,7 +19,7 @@ sealed class OnboardingSaltPayAction : Action { } data class SetIsBusy(val isBusy: Boolean) : OnboardingSaltPayAction() - data class SetAccessCode(val accessCode: ByteArray?) : OnboardingSaltPayAction() + data class SetAccessCode(val accessCode: String?) : OnboardingSaltPayAction() object Update : OnboardingSaltPayAction() object RegisterCard : OnboardingSaltPayAction() @@ -29,6 +29,5 @@ sealed class OnboardingSaltPayAction : Action { data class TrySetPin(val pin: String) : OnboardingSaltPayAction() data class SetPin(val pin: String) : OnboardingSaltPayAction() - // data class TryUpdateStep(val newStep: SaltPayRegistrationStep? = null) : OnboardingSaltPayAction() data class SetStep(val newStep: SaltPayRegistrationStep? = null) : OnboardingSaltPayAction() } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayMiddleware.kt index 31c16e9525..16c7594774 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayMiddleware.kt @@ -90,6 +90,7 @@ private fun handleOnboardingSaltPayAction(anyAction: Action, appState: () -> App header = null, body = tangemSdkManager.getString(R.string.registration_task_alert_message), ), + accessCode = state.accessCode, ).successOr { onException(it.error as Exception) return@launch diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayState.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayState.kt index 287829fa39..2ecaa4b382 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayState.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayState.kt @@ -26,7 +26,7 @@ data class OnboardingSaltPayState( val saltPayManager: SaltPayRegistrationManager = SaltPayRegistrationManager.stub(), val saltPayConfig: SaltPayConfig = SaltPayConfig.stub(), val pinCode: String? = null, - val accessCode: ByteArray? = null, + val accessCode: String? = null, val step: SaltPayRegistrationStep = SaltPayRegistrationStep.NeedPin, val saltPayCardArtworkUrl: String? = null, val isBusy: Boolean = false,