diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/finalize/model/MultiWalletFinalizeModel.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/finalize/model/MultiWalletFinalizeModel.kt index dc1dec313a..eea8684ef3 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/finalize/model/MultiWalletFinalizeModel.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/finalize/model/MultiWalletFinalizeModel.kt @@ -64,18 +64,31 @@ internal class MultiWalletFinalizeModel @Inject constructor( private var walletHasBackupError = false private var hasRing = false + val uiState = _uiState.asStateFlow() val onBackFlow = MutableSharedFlow() - val onEvent = MutableSharedFlow() init { - // save scan response to preferences to be able - // to continue finalize process after app restart modelScope.launch { + // save scan response to preferences to be able + // to continue finalize process after app restart onboardingRepository.saveUnfinishedFinalizeOnboarding( scanResponse = multiWalletState.value.currentScanResponse, ) + + // sets proper artwork state for initial step + // (if we start from backup cards, we need to show proper artwork) ([REDACTED_TASK_KEY]) + when (getInitialStep()) { + MultiWalletFinalizeUM.Step.Primary -> { /* state is already set */ } + MultiWalletFinalizeUM.Step.BackupDevice1 -> { + onEvent.emit(MultiWalletFinalizeComponent.Event.OneBackupCardAdded) + } + MultiWalletFinalizeUM.Step.BackupDevice2 -> { + onEvent.emit(MultiWalletFinalizeComponent.Event.OneBackupCardAdded) + onEvent.emit(MultiWalletFinalizeComponent.Event.TwoBackupCardsAdded) + } + } } } @@ -91,21 +104,6 @@ internal class MultiWalletFinalizeModel @Inject constructor( val backupService = backupServiceHolder.backupService.get() ?: return MultiWalletFinalizeUM() val initialStep = getInitialStep() - // sets proper artwork state for initial step - // (if we start from backup cards, we need to show proper artwork) ([REDACTED_TASK_KEY]) - modelScope.launch { - when (initialStep) { - MultiWalletFinalizeUM.Step.Primary -> { /* state is already set */ } - MultiWalletFinalizeUM.Step.BackupDevice1 -> { - onEvent.emit(MultiWalletFinalizeComponent.Event.OneBackupCardAdded) - } - MultiWalletFinalizeUM.Step.BackupDevice2 -> { - onEvent.emit(MultiWalletFinalizeComponent.Event.OneBackupCardAdded) - onEvent.emit(MultiWalletFinalizeComponent.Event.TwoBackupCardsAdded) - } - } - } - val batchId = when (initialStep) { MultiWalletFinalizeUM.Step.Primary -> backupService.primaryCardBatchId MultiWalletFinalizeUM.Step.BackupDevice1 -> backupService.backupCardsBatchIds.getOrNull(0) @@ -123,7 +121,7 @@ internal class MultiWalletFinalizeModel @Inject constructor( onScanClick = ::onLinkClick, scanPrimary = initialStep == MultiWalletFinalizeUM.Step.Primary, cardNumber = cardId?.lastMasked().orEmpty(), - step = getInitialStep(), + step = initialStep, ) } diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/model/OnboardingMultiWalletState.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/model/OnboardingMultiWalletState.kt index 1906d6c2aa..1347a7122b 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/model/OnboardingMultiWalletState.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/model/OnboardingMultiWalletState.kt @@ -24,7 +24,7 @@ data class OnboardingMultiWalletState( * -> [Done] * * Wallet2/Ring - * CreateWallet -> SeedPhrase -> AddBackupDevice -> FinishBackup -> [Done] + * CreateWallet -> SeedPhrase -> AddBackupDevice -> Finalize -> [Done] * | * -> AddBackupDevice -> Finalize -> [Done] */