45 lines
1.3 KiB
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
|
|
}
|
|
}
|