42 lines
1.3 KiB
Swift
42 lines
1.3 KiB
Swift
//
|
|
// TuskerSceneDelegate.swift
|
|
// Tusker
|
|
//
|
|
// Created by Shadowfacts on 10/31/22.
|
|
// Copyright © 2022 Shadowfacts. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
protocol TuskerSceneDelegate: UISceneDelegate {
|
|
var window: UIWindow? { get }
|
|
var rootViewController: TuskerRootViewController? { get }
|
|
}
|
|
|
|
enum StatusBarTapActionResult {
|
|
case `continue`
|
|
case stop
|
|
}
|
|
|
|
extension TuskerSceneDelegate {
|
|
func handleStatusBarTapped(xPosition: CGFloat) -> StatusBarTapActionResult {
|
|
if let rootViewController {
|
|
let converted = rootViewController.view.convert(CGPoint(x: xPosition, y: 0), from: nil)
|
|
return rootViewController.handleStatusBarTapped(xPosition: converted.x)
|
|
}
|
|
return .continue
|
|
}
|
|
|
|
func applyAppearancePreferences() {
|
|
guard let window else { return }
|
|
window.overrideUserInterfaceStyle = Preferences.shared.theme
|
|
window.tintColor = Preferences.shared.accentColor.color
|
|
_ = catchNSException {
|
|
let key = ["Controller", "Presentation", "root", "_"].reversed().joined()
|
|
if let rootPresentationController = window.value(forKey: key) as? UIPresentationController {
|
|
rootPresentationController.overrideTraitCollection = UITraitCollection(pureBlackDarkMode: Preferences.shared.pureBlackDarkMode)
|
|
}
|
|
}
|
|
}
|
|
}
|