Settings View: SwiftUI wrapper

This commit is contained in:
James Magahern
2021-03-03 16:17:54 -08:00
parent 225761473d
commit fb9ec47833
8 changed files with 167 additions and 13 deletions

View File

@@ -7,28 +7,43 @@
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?
let navigationController = UINavigationController()
let browserViewController = BrowserViewController()
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 }
navigationController.viewControllers = [ browserViewController ]
navigationController.setNavigationBarHidden(true, animated: false)
let window = UIWindow(windowScene: windowScene)
window.rootViewController = navigationController
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 let urlContext = connectionOptions.urlContexts.first {
let url = urlContext.url
browserViewController.tab.beginLoadingURL(url)
}
#if targetEnvironment(macCatalyst)
windowScene.titlebar?.titleVisibility = .hidden
windowScene.titlebar?.separatorStyle = .none
@@ -38,7 +53,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>)
{
for urlContext in URLContexts {
browserViewController.createNewTab(withURL: urlContext.url)
browserViewController?.createNewTab(withURL: urlContext.url)
}
}
}