LiveApple/LiveApple/LiveAppleApp.swift

45 lines
1.3 KiB
Swift

//
// LiveAppleApp.swift
// LiveApple
//
// Created by Shadowfacts on 9/24/22.
//
import SwiftUI
import BackgroundTasks
@main
struct LiveAppleApp: App {
@UIApplicationDelegateAdaptor private var delegate: AppDelegate
@State var controller: PlayerController!
var body: some Scene {
WindowGroup {
ContentView(controller: controller)
.task {
controller = PlayerController()
delegate.controller = controller
await controller.start()
}
}
}
}
class AppDelegate: NSObject, UIApplicationDelegate {
var controller: PlayerController!
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
// can't update in the background without going through BackgroundTasks
BGTaskScheduler.shared.register(forTaskWithIdentifier: "task", using: .main) { [unowned self] task in
Task {
await BackgroundManager(controller: self.controller).run()
task.setTaskCompleted(success: true)
}
}
// application.beginReceivingRemoteControlEvents()
return true
}
}