Updated on 2026-08-14

This commit is contained in:
Tangem 2024-02-08 13:49:26 +03:00
parent 6f22bf53b2
commit a7b2af9832
2 changed files with 13 additions and 5 deletions

View file

@ -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))
}

View file

@ -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)
}
}
}