Files
Attractor/App/SceneDelegate.swift
2021-03-03 16:17:54 -08:00

61 lines
2.1 KiB
Swift

//
// 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()
self.settingsViewController = settingsViewController
window.rootViewController = settingsViewController
windowScene.sizeRestrictions?.maximumSize = CGSize(width: 500.0, height: 1200.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)
}
}
window.makeKeyAndVisible()
self.window = window
#if targetEnvironment(macCatalyst)
windowScene.titlebar?.titleVisibility = .hidden
windowScene.titlebar?.separatorStyle = .none
#endif
}
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>)
{
for urlContext in URLContexts {
browserViewController?.createNewTab(withURL: urlContext.url)
}
}
}