Skip to content

Commit bd61c30

Browse files
authored
Merge pull request #63 from samzong/feat/launch-with-song-picker
✨ app: add configurable song picker window on app launch with localiz…
2 parents 661a50f + b419d95 commit bd61c30

File tree

8 files changed

+199
-109
lines changed

8 files changed

+199
-109
lines changed

MacMusicPlayer/AppDelegate.swift

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import Cocoa
99
import MediaPlayer
10+
1011

1112
@MainActor
1213
class AppDelegate: NSObject, NSApplicationDelegate {
@@ -15,6 +16,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
1516
var sleepManager: SleepManager!
1617
var launchManager: LaunchManager!
1718
var libraryManager: LibraryManager!
19+
var configManager: ConfigManager!
1820
var statusMenuController: StatusMenuController!
1921

2022
// Strong reference to the window
@@ -27,6 +29,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
2729
sleepManager = SleepManager()
2830
launchManager = LaunchManager()
2931
libraryManager = LibraryManager()
32+
configManager = ConfigManager.shared
3033
DownloadManager.shared.updateLibraryManager(libraryManager)
3134

3235
if let currentLibrary = libraryManager.currentLibrary {
@@ -60,6 +63,10 @@ class AppDelegate: NSObject, NSApplicationDelegate {
6063
name: NSNotification.Name("AddNewLibrary"),
6164
object: nil
6265
)
66+
67+
DispatchQueue.main.async { [weak self] in
68+
self?.showSongPickerIfPreferred()
69+
}
6370
}
6471

6572
func setupRemoteCommandCenter() {
@@ -151,6 +158,11 @@ class AppDelegate: NSObject, NSApplicationDelegate {
151158
sleepManager.cleanupResourcesOnly()
152159
}
153160

161+
func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
162+
showSongPickerIfPreferred()
163+
return true
164+
}
165+
154166
@objc func showDownloadWindow() {
155167
if let existingWindow = self.downloadWindow {
156168
existingWindow.makeKeyAndOrderFront(nil)
@@ -310,6 +322,13 @@ class AppDelegate: NSObject, NSApplicationDelegate {
310322
songPickerWindow.makeKeyAndOrderFront(nil)
311323
NSApp.activate(ignoringOtherApps: true)
312324
}
325+
326+
private func showSongPickerIfPreferred() {
327+
guard configManager.showSongPickerOnLaunch else { return }
328+
showSongPickerWindow()
329+
}
330+
331+
313332
}
314333

315334
extension AppDelegate: NSWindowDelegate {

0 commit comments

Comments
 (0)