Files
Attractor/App/Scene Delegates/BrowserSceneDelegate.swift

71 lines
2.4 KiB
Swift
Raw Normal View History

//
2022-08-22 17:10:47 -07:00
// BrowserSceneDelegate.swift
// SBrowser
//
// Created by James Magahern on 7/21/20.
//
import UIKit
2021-03-03 16:17:54 -08:00
public enum SessionActivityType: String {
2022-03-28 18:27:28 -07:00
case BrowserWindow = "net.buzzert.attractor.browser"
case SettingsWindow = "net.buzzert.attractor.settings"
2022-08-22 17:10:47 -07:00
case ReaderWindow = "net.buzzert.attractor.reader"
2021-03-03 16:17:54 -08:00
}
2022-08-22 17:10:47 -07:00
class BrowserSceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
2021-03-03 16:17:54 -08:00
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)
let browserViewController = BrowserViewController()
self.browserViewController = browserViewController
window.rootViewController = browserViewController
if let urlContext = connectionOptions.urlContexts.first {
let url = urlContext.url
browserViewController.tab.beginLoadingURL(url)
2021-03-03 16:17:54 -08:00
}
2022-08-22 17:10:47 -07:00
#if targetEnvironment(macCatalyst)
windowScene.titlebar?.titleVisibility = .hidden
windowScene.titlebar?.separatorStyle = .none
if #available(macCatalyst 16.0, *) {
let screenSize = windowScene.screen.bounds.size
let preferredSize = CGSize(width: 1000, height: 1100)
let geometryPreferences = UIWindowScene.GeometryPreferences.Mac(systemFrame: CGRect(
origin: CGPoint(
x: (screenSize.width - preferredSize.width) / 2,
y: (screenSize.height - preferredSize.height) / 2
),
size: preferredSize
))
windowScene.requestGeometryUpdate(geometryPreferences)
}
#endif
window.makeKeyAndVisible()
self.window = window
}
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>)
{
for urlContext in URLContexts {
if browserViewController?.tab.url == nil {
browserViewController?.tab.beginLoadingURL(urlContext.url)
} else {
browserViewController?.createNewTab(withURL: urlContext.url)
}
}
}
}