diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsViewModel.kt b/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsViewModel.kt index e3fe0469f9..7f972b948d 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsViewModel.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsViewModel.kt @@ -161,6 +161,8 @@ internal class CardSettingsViewModel @Inject constructor( if (scanResponse.cardTypesResolver.isTangemTwins()) { store.dispatch(TwinCardsAction.SetMode(CreateTwinWalletMode.RecreateWallet(scanResponse))) + cardSettingsInteractor.clear() + store.dispatchNavigationAction { push(AppRoute.OnboardingTwins) } } else { val card = scanResponse.card 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 a53d4f51a7..19d77c509e 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 @@ -65,9 +65,9 @@ private fun handle(action: Action, dispatch: DispatchFunction) { val userWalletsListManager = store.inject(DaggerGraphState::generalUserWalletsListManager) fun getScanResponse(): ScanResponse { - return when (val mode = twinCardsState.mode) { + return when (twinCardsState.mode) { is CreateTwinWalletMode.CreateWallet -> onboardingManager?.scanResponse - is CreateTwinWalletMode.RecreateWallet -> mode.scanResponse + is CreateTwinWalletMode.RecreateWallet -> globalState.scanResponse } ?: throw NullPointerException("ScanResponse can't be NULL") } @@ -105,6 +105,10 @@ private fun handle(action: Action, dispatch: DispatchFunction) { mainScope.launch { if (twinCardsState.currentStep is TwinCardsStep.WelcomeOnly) return@launch + if (twinCardsState.mode is CreateTwinWalletMode.RecreateWallet) { + store.dispatch(GlobalAction.SaveScanResponse(twinCardsState.mode.scanResponse)) + } + val scanResponse = getScanResponse() onboardingManager?.apply { if (!isActivationStarted(scanResponse.card.cardId)) { @@ -368,8 +372,7 @@ private fun getPopBackScreen(): KClass { val userWalletsListManager = store.inject(DaggerGraphState::generalUserWalletsListManager) return if (userWalletsListManager.hasUserWallets) { - val isLocked = runCatching { userWalletsListManager.asLockable()?.isLockedSync } - .fold(onSuccess = { true }, onFailure = { false }) + val isLocked = runCatching { userWalletsListManager.asLockable()?.isLockedSync!! }.getOrElse { false } if (isLocked) { AppRoute.Welcome::class