yattee/iOS/AppDelegate.swift

47 lines
1.6 KiB
Swift
Raw Normal View History

import AVFoundation
import Defaults
import Foundation
import Logging
import UIKit
final class AppDelegate: UIResponder, UIApplicationDelegate {
var orientationLock = UIInterfaceOrientationMask.all
private var logger = Logger(label: "stream.yattee.app.delegate")
private(set) static var instance: AppDelegate!
func application(_: UIApplication, supportedInterfaceOrientationsFor _: UIWindow?) -> UIInterfaceOrientationMask {
return orientationLock
}
func application(_: UIApplication, didFinishLaunchingWithOptions _: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool { // swiftlint:disable:this discouraged_optional_collection
2022-05-20 19:53:17 +00:00
Self.instance = self
2022-06-28 19:11:28 +00:00
#if !os(macOS)
UIViewController.swizzleHomeIndicatorProperty()
2022-07-09 22:29:13 +00:00
OrientationTracker.shared.startDeviceOrientationTracking()
OrientationModel.shared.startOrientationUpdates()
// Configure the audio session for playback
do {
try AVAudioSession.sharedInstance().setCategory(.playback, mode: .moviePlayback)
} catch {
logger.error("Failed to set audio session category: \(error)")
}
// Begin receiving remote control events
UIApplication.shared.beginReceivingRemoteControlEvents()
2022-06-21 22:18:16 +00:00
#endif
return true
}
2024-05-16 16:28:32 +00:00
func application(_: UIApplication, open url: URL, options _: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
2024-04-25 17:01:44 +00:00
if url.scheme == "yattee" {
2024-05-16 16:53:47 +00:00
OpenURLHandler(navigationStyle: Constants.defaultNavigationStyle).handle(url)
2024-04-25 17:18:10 +00:00
return true
2024-04-25 17:01:44 +00:00
}
return false
}
}