// // SceneDelegate.swift // SBrowser // // Created by James Magahern on 7/21/20. // import UIKit public enum SessionActivityType: String { case BrowserWindow = "net.buzzert.rossler-attix.browser" case SettingsWindow = "net.buzzert.rossler-attix.settings" } class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? var browserViewController: BrowserViewController? var settingsViewController: SettingsViewController? func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene as? UIWindowScene) else { return } let window = UIWindow(windowScene: windowScene) if let userActivity = connectionOptions.userActivities.first { if userActivity.activityType == SessionActivityType.SettingsWindow.rawValue { let settingsViewController = SettingsViewController(windowScene: windowScene) self.settingsViewController = settingsViewController window.rootViewController = settingsViewController windowScene.sizeRestrictions?.maximumSize = CGSize(width: 760.0, height: 400.0) } } else { let browserViewController = BrowserViewController() self.browserViewController = browserViewController window.rootViewController = browserViewController if let urlContext = connectionOptions.urlContexts.first { let url = urlContext.url browserViewController.tab.beginLoadingURL(url) } #if targetEnvironment(macCatalyst) windowScene.titlebar?.titleVisibility = .hidden windowScene.titlebar?.separatorStyle = .none #endif } window.makeKeyAndVisible() self.window = window } func scene(_ scene: UIScene, openURLContexts URLContexts: Set) { for urlContext in URLContexts { browserViewController?.createNewTab(withURL: urlContext.url) } } }