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 685a09edee..e7c01ea29e 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 @@ -20,7 +20,7 @@ import com.tangem.domain.models.scan.ScanResponse import com.tangem.domain.userwallets.UserWalletBuilder import com.tangem.domain.userwallets.UserWalletIdBuilder import com.tangem.domain.wallets.legacy.UserWalletsListManager -import com.tangem.domain.wallets.legacy.isLockedSync +import com.tangem.domain.wallets.legacy.asLockable import com.tangem.tap.* import com.tangem.tap.common.analytics.events.AnalyticsParam import com.tangem.tap.common.analytics.events.Settings @@ -120,8 +120,12 @@ class DetailsMiddleware { doBeforeErase() tangemSdkManager.resetToFactorySettings(card.cardId, true) - .flatMap { userWalletsListManager.delete(listOfNotNull(userWalletId)) } - .flatMap { tangemSdkManager.deleteSavedUserCodes(setOf(card.cardId)) } + .flatMap { + userWalletsListManager.delete(listOfNotNull(userWalletId)) + } + .flatMap { + tangemSdkManager.deleteSavedUserCodes(setOf(card.cardId)) + } .doOnSuccess { Analytics.send(Settings.CardSettings.FactoryResetFinished()) @@ -130,7 +134,9 @@ class DetailsMiddleware { store.dispatchOnMain(NavigationAction.PopBackTo(AppScreen.Wallet)) store.onUserWalletSelected(selectedUserWallet) } else { - if (userWalletsListManager.isLockedSync) { + val isLocked = runCatching { userWalletsListManager.asLockable()?.isLockedSync } + .fold(onSuccess = { true }, onFailure = { false }) + if (isLocked) { store.dispatchOnMain(NavigationAction.PopBackTo(AppScreen.Welcome)) } else { store.dispatchOnMain(NavigationAction.PopBackTo(AppScreen.Home)) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/redux/TwinCardsMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/redux/TwinCardsMiddleware.kt index 90f14188f3..e7919af2f3 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/redux/TwinCardsMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/redux/TwinCardsMiddleware.kt @@ -11,6 +11,7 @@ import com.tangem.domain.common.extensions.withMainContext import com.tangem.domain.common.util.twinsIsTwinned import com.tangem.domain.models.scan.ScanResponse import com.tangem.domain.userwallets.UserWalletIdBuilder +import com.tangem.domain.wallets.legacy.asLockable import com.tangem.domain.wallets.legacy.isLockedSync import com.tangem.tap.common.analytics.events.AnalyticsParam import com.tangem.tap.common.analytics.events.Onboarding @@ -356,7 +357,9 @@ private fun handle(action: Action, dispatch: DispatchFunction) { private fun getPopBackScreen(): AppScreen { return if (userWalletsListManager.hasUserWallets) { - if (userWalletsListManager.isLockedSync) { + val isLocked = runCatching { userWalletsListManager.asLockable()?.isLockedSync } + .fold(onSuccess = { true }, onFailure = { false }) + if (isLocked) { AppScreen.Welcome } else { AppScreen.Wallet