From a7b2af9832a57de01b930cb5e189e4098490d035 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 8 Feb 2024 13:49:26 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/features/details/redux/DetailsMiddleware.kt | 6 +++++- .../wallet/redux/OnboardingWalletMiddleware.kt | 12 ++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) 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 f039fbb8b1..508f29e664 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 @@ -122,7 +122,6 @@ class DetailsMiddleware { doBeforeErase() tangemSdkManager.resetToFactorySettings(card.cardId, true) - .flatMap { userWalletsListManager.delete(listOfNotNull(userWalletId)) } .flatMap { tangemSdkManager.deleteSavedUserCodes(setOf(card.cardId)) } .doOnSuccess { Analytics.send(Settings.CardSettings.FactoryResetFinished()) @@ -130,16 +129,21 @@ class DetailsMiddleware { val selectedUserWallet = userWalletsListManager.selectedUserWalletSync if (selectedUserWallet != null) { if (userWalletsListManager.isLockedSync) { + userWalletsListManager.delete(listOfNotNull(userWalletId)) store.dispatchOnMain(NavigationAction.PopBackTo(AppScreen.Welcome)) } else { store.dispatchOnMain(NavigationAction.PopBackTo(AppScreen.Wallet)) + delay(timeMillis = 500) + userWalletsListManager.delete(listOfNotNull(userWalletId)) store.onUserWalletSelected(selectedUserWallet) } } else { + userWalletsListManager.delete(listOfNotNull(userWalletId)) store.dispatchOnMain(NavigationAction.PopBackTo(AppScreen.Home)) } } .doOnFailure { error -> + userWalletsListManager.delete(listOfNotNull(userWalletId)) if (error is TangemSdkError && error !is TangemSdkError.UserCancelled) { Analytics.send(Settings.CardSettings.FactoryResetFinished(error)) } 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 418ca44742..3e602349e8 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 @@ -1,6 +1,7 @@ package com.tangem.tap.features.onboarding.products.wallet.redux import android.net.Uri +import com.google.firebase.crashlytics.FirebaseCrashlytics import com.tangem.common.CompletionResult import com.tangem.common.core.TangemSdkError import com.tangem.common.extensions.guard @@ -70,8 +71,8 @@ private fun handleWalletAction(action: Action) { when (action) { OnboardingWalletAction.Init -> { - ifNotNull(onboardingManager, card) { manager, card -> - if (!manager.isActivationStarted(card.cardId)) { + ifNotNull(onboardingManager, card) { manager, notNullCard -> + if (!manager.isActivationStarted(notNullCard.cardId)) { Analytics.send(Onboarding.Started()) } } @@ -403,8 +404,9 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) is CompletionResult.Success -> { store.dispatchOnMain(BackupAction.AddBackupCard.Success) } - is CompletionResult.Failure -> { + val crashlytics = FirebaseCrashlytics.getInstance() + when (val error = result.error) { is TangemSdkError.BackupFailedNotEmptyWallets -> { if (card?.canSkipBackup == false) { @@ -413,6 +415,8 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) BackupDialog.ResetBackupCard(error.cardId), ), ) + } else { + crashlytics.recordException(error) } } is TangemSdkError.IssuerSignatureLoadingFailed -> { @@ -420,7 +424,7 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) GlobalAction.ShowDialog(BackupDialog.AttestationFailed), ) } - else -> Unit + else -> crashlytics.recordException(error) } } }