From cc177a6c3ec2f58c6d58085b8c96fb869ec1df91 Mon Sep 17 00:00:00 2001
From: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
Date: Sat, 25 Nov 2023 22:30:05 -0500
Subject: [PATCH] Revert "Avoid showing the initial loading view after welcome
 form"

This reverts commit 6fe6d36d9226759ad54485e72eaf7426bdb67bb7.

Change-Id: Ifdec6eb5b1a2d4f2e5e5a9e96a4ee95ec848c6ec
---
 Ring/Ring/Coordinators/AppCoordinator.swift      | 16 ++++++++--------
 .../Walkthrough/WalkthroughCoordinator.swift     |  8 ++------
 2 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/Ring/Ring/Coordinators/AppCoordinator.swift b/Ring/Ring/Coordinators/AppCoordinator.swift
index fa122d1ab..98184ae3c 100644
--- a/Ring/Ring/Coordinators/AppCoordinator.swift
+++ b/Ring/Ring/Coordinators/AppCoordinator.swift
@@ -102,12 +102,6 @@ final class AppCoordinator: Coordinator, StateableResponsive {
         self.dispatchApplication()
     }
 
-    /// Starts the coordinator
-    func startWithoutLoading() {
-        // ~ Dispatch to the proper screen
-        self.dispatchApplication()
-    }
-
     func migrateAccount(accountId: String) {
         let migratonController = MigrateAccountViewController.instantiate(with: self.injectionBag)
         migratonController.viewModel.accountToMigrate = accountId
@@ -145,16 +139,22 @@ final class AppCoordinator: Coordinator, StateableResponsive {
         let walkthroughCoordinator = WalkthroughCoordinator(with: self.injectionBag)
         walkthroughCoordinator.isAccountFirst = isAccountFirst
         walkthroughCoordinator.withAnimations = animated
-        walkthroughCoordinator.parentCoordinator = self
         walkthroughCoordinator.start()
 
-        self.navigationController.setViewControllers([], animated: false)
         self.addChildCoordinator(childCoordinator: walkthroughCoordinator)
         let walkthroughViewController = walkthroughCoordinator.rootViewController
         self.present(viewController: walkthroughViewController,
                      withStyle: .appear,
                      withAnimation: true,
                      disposeBag: self.disposeBag)
+
+        walkthroughViewController.rx.controllerWasDismissed
+            .subscribe(onNext: { [weak self, weak walkthroughCoordinator] (_) in
+                walkthroughCoordinator?.stateSubject.dispose()
+                self?.removeChildCoordinator(childCoordinator: walkthroughCoordinator)
+                self?.dispatchApplication()
+            })
+            .disposed(by: self.disposeBag)
     }
 
     /// Presents the main interface
diff --git a/Ring/Ring/Features/Walkthrough/WalkthroughCoordinator.swift b/Ring/Ring/Features/Walkthrough/WalkthroughCoordinator.swift
index 697094367..c03f3107b 100644
--- a/Ring/Ring/Features/Walkthrough/WalkthroughCoordinator.swift
+++ b/Ring/Ring/Features/Walkthrough/WalkthroughCoordinator.swift
@@ -75,12 +75,8 @@ class WalkthroughCoordinator: Coordinator, StateableResponsive {
                     self.showAddAccount(with: walkthroughType)
                 case .accountCreated, .deviceLinked:
                     if self.rootViewController.presentedViewController != nil {
-                        if let appCoordinator = self.parentCoordinator as? AppCoordinator {
-                            appCoordinator.startWithoutLoading()
-                            appCoordinator.removeChildCoordinator(childCoordinator: self)
-                            self.rootViewController.presentedViewController?.dismiss(animated: true) {
-                                self.rootViewController.dismiss(animated: false)
-                            }
+                        self.rootViewController.dismiss(animated: true) { [weak self] in // dismiss the pop up form modal view
+                            self?.rootViewController.dismiss(animated: true) // dismiss the welcome view and check for user account state
                         }
                     }
                 case .walkthroughCanceled:
-- 
GitLab