From 55a3ed095487a0677259ff5dde38eaddfec123c0 Mon Sep 17 00:00:00 2001 From: Bruno Muniz Azevedo Filho <bruno@elixxir.io> Date: Fri, 29 Jul 2022 18:54:11 -0300 Subject: [PATCH] Added deeplink using router --- Sources/App/AppDelegate.swift | 8 ++++++-- Sources/App/DependencyRegistrator.swift | 5 +++++ Sources/LaunchFeature/LaunchController.swift | 3 +++ Sources/PushFeature/PushRouter.swift | 1 + 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Sources/App/AppDelegate.swift b/Sources/App/AppDelegate.swift index b20f3d6c..52b3626b 100644 --- a/Sources/App/AppDelegate.swift +++ b/Sources/App/AppDelegate.swift @@ -143,8 +143,12 @@ public class AppDelegate: UIResponder, UIApplicationDelegate { open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:] ) -> Bool { - if let invitationUsername = getUsernameFromInvitationDeepLink(url) { - self.invitation = invitationUsername + if let username = getUsernameFromInvitationDeepLink(url), + let _ = try? DependencyInjection.Container.shared.resolve() as SessionType, + let router = try? DependencyInjection.Container.shared.resolve() as PushRouter { + invitation = username + router.navigateTo(.search, {}) + return true } else { return dropboxService.handleOpenUrl(url) diff --git a/Sources/App/DependencyRegistrator.swift b/Sources/App/DependencyRegistrator.swift index 7c4d70a9..297f9231 100644 --- a/Sources/App/DependencyRegistrator.swift +++ b/Sources/App/DependencyRegistrator.swift @@ -259,6 +259,11 @@ extension PushRouter { launchController.pendingPushRoute = route } else { switch route { + case .search: + if (navigationController.viewControllers.last as? SearchContainerController) == nil { + navigationController.setViewControllers([SearchContainerController()], animated: true) + } + case .requests: if (navigationController.viewControllers.last as? RequestsContainerController) == nil { navigationController.setViewControllers([RequestsContainerController()], animated: true) diff --git a/Sources/LaunchFeature/LaunchController.swift b/Sources/LaunchFeature/LaunchController.swift index 9eeeb763..0a6a1c65 100644 --- a/Sources/LaunchFeature/LaunchController.swift +++ b/Sources/LaunchFeature/LaunchController.swift @@ -54,6 +54,9 @@ public final class LaunchController: UIViewController { case .chats: if let pushRoute = pendingPushRoute { switch pushRoute { + case .search: + coordinator.toSearch(from: self) + case .requests: coordinator.toRequests(from: self) diff --git a/Sources/PushFeature/PushRouter.swift b/Sources/PushFeature/PushRouter.swift index 6fc66797..51af8a80 100644 --- a/Sources/PushFeature/PushRouter.swift +++ b/Sources/PushFeature/PushRouter.swift @@ -4,6 +4,7 @@ public struct PushRouter { public typealias NavigateTo = (Route, @escaping () -> Void) -> Void public enum Route { + case search case requests case groupChat(id: Data) case contactChat(id: Data) -- GitLab