Changes applied: Still fucked but working

This commit is contained in:
Hariharan Mudaliar 2025-10-06 00:07:02 +05:30
commit 310dde6573
8 changed files with 18739 additions and 1538 deletions

View file

@ -9,13 +9,12 @@ import Defaults
import MacroVisionKit
import SwiftUI
@MainActor
class FullscreenMediaDetector: ObservableObject {
static let shared = FullscreenMediaDetector()
private let detector: MacroVisionKit
@ObservedObject private var musicManager = MusicManager.shared
@Published private(set) var fullscreenStatus: [String: Bool] = [:]
@MainActor @Published private(set) var fullscreenStatus: [String: Bool] = [:]
private var notificationTask: Task<Void, Never>?
private init() {
self.detector = MacroVisionKit.shared
@ -25,17 +24,34 @@ class FullscreenMediaDetector: ObservableObject {
}
private func setupNotificationObservers() {
let nc = NSWorkspace.shared.notificationCenter
nc.addObserver(self, selector: #selector(handleChange),
name: NSWorkspace.activeSpaceDidChangeNotification, object: nil)
nc.addObserver(self, selector: #selector(handleChange),
name: NSApplication.didChangeScreenParametersNotification, object: nil)
notificationTask = Task { @Sendable [weak self] in
await withTaskGroup(of: Void.self) { group in
group.addTask {
let activeSpaceNotifications = NSWorkspace.shared.notificationCenter.notifications(
named: NSWorkspace.activeSpaceDidChangeNotification
)
for await _ in activeSpaceNotifications {
await self?.handleChange()
}
}
group.addTask {
let screenParameterNotifications = NSWorkspace.shared.notificationCenter.notifications(
named: NSApplication.didChangeScreenParametersNotification
)
for await _ in screenParameterNotifications {
await self?.handleChange()
}
}
}
}
}
@objc private func handleChange() {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
self.updateFullScreenStatus()
}
private func handleChange() async {
try? await Task.sleep(for: .milliseconds(500))
self.updateFullScreenStatus()
}
private func updateFullScreenStatus() {