Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Application/AppCoordinator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import SwiftUI

class AppCoordinator: ObservableObject {
// MARK: - Managers
static var shared: AppCoordinator?
let libraryManager: LibraryManager
let playlistManager: PlaylistManager
let audioPlayerManager: AudioPlayerManager
Expand All @@ -24,5 +25,6 @@ class AppCoordinator: ObservableObject {
// Setup now playing
nowPlayingManager = NowPlayingManager()
nowPlayingManager.connectRemoteCommandCenter(audioPlayer: audioPlayerManager, playlistManager: playlistManager)
Self.shared = self
}
}
24 changes: 23 additions & 1 deletion Application/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,32 @@ class AppDelegate: NSObject, NSApplicationDelegate {

func applicationWillTerminate(_ notification: Notification) {
print("App is terminating...")
// Any cleanup code can go here
// Stop audio playback cleanly
if let coordinator = AppCoordinator.shared {
coordinator.audioPlayerManager.stop()
}
}

func applicationDidFinishLaunching(_ notification: Notification) {
print("App finished launching")

// Ensure main window is visible
if let window = NSApp.windows.first {
window.makeKeyAndOrderFront(nil)
}
}

func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
// If no windows are visible, show the main window
if !flag {
// Create a new window if needed
if NSApp.windows.isEmpty {
// The window should be created by SwiftUI, just make it visible
NSApp.activate(ignoringOtherApps: true)
} else if let window = NSApp.windows.first {
window.makeKeyAndOrderFront(nil)
}
}
return true
}
}
2 changes: 2 additions & 0 deletions Managers/AudioPlayerManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ class AudioPlayerManager: ObservableObject {
}

deinit {
stop()
timer?.invalidate()
timer = nil
}

// MARK: - Playback Controls
Expand Down
Loading