From 64946c4eb6f77152149d5fd15be5ba3a6ddceb5e Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 24 Nov 2024 23:12:58 +0100 Subject: [PATCH 01/73] WIP notch playback control --- Tuneful/DynamicNotchKit/DynamicNotch.swift | 12 ++- .../DynamicNotchKit/DynamicNotchInfo.swift | 100 +++++------------- .../DynamicNotchKit/NSScreen+Extensions.swift | 1 + Tuneful/DynamicNotchKit/NotchView.swift | 17 ++- Tuneful/DynamicNotchKit/NotchlessView.swift | 72 ++++++++----- Tuneful/Managers/PlayerManager.swift | 17 ++- Tuneful/Models/Track.swift | 3 + Tuneful/Utilities/AppIcons.swift | 2 - Tuneful/Utilities/Constants.swift | 6 +- Tuneful/Views/Playback/AlbumArtView.swift | 1 - 10 files changed, 113 insertions(+), 118 deletions(-) diff --git a/Tuneful/DynamicNotchKit/DynamicNotch.swift b/Tuneful/DynamicNotchKit/DynamicNotch.swift index 8a1a9a7..d92e092 100644 --- a/Tuneful/DynamicNotchKit/DynamicNotch.swift +++ b/Tuneful/DynamicNotchKit/DynamicNotch.swift @@ -13,6 +13,9 @@ import SwiftUI public class DynamicNotch: ObservableObject where Content: View { public var windowController: NSWindowController? // Make public in case user wants to modify the NSPanel + + // Player manager + @Published var playerManager: PlayerManager // Content Properties @Published var content: () -> Content @@ -51,10 +54,11 @@ public class DynamicNotch: ObservableObject where Content: View { /// - Parameters: /// - content: A SwiftUI View /// - style: The popover's style. If unspecified, the style will be automatically set according to the screen. - public init(contentID: UUID = .init(), style: DynamicNotch.Style = .auto, @ViewBuilder content: @escaping () -> Content) { + public init(contentID: UUID = .init(), style: DynamicNotch.Style = .auto, playerManager: PlayerManager, @ViewBuilder content: @escaping () -> Content) { self.contentID = contentID self.content = content self.notchStyle = style + self.playerManager = playerManager self.subscription = NotificationCenter.default .publisher(for: NSApplication.didChangeScreenParametersNotification) .sink { [weak self] _ in @@ -74,6 +78,12 @@ public extension DynamicNotch { self.content = content self.contentID = .init() } + + /// Set this DynamicNotch's content. + /// - Parameter content: A SwiftUI View + func refreshContent(contentID: UUID = .init()) { + self.contentID = .init() + } /// Show the DynamicNotch. /// - Parameters: diff --git a/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift b/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift index 9ab2348..a8fe813 100644 --- a/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift +++ b/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift @@ -30,22 +30,18 @@ internal final class DynamicNotchInfoPublisher: ObservableObject { } public class DynamicNotchInfo { + @Published var playerManager: PlayerManager private var internalDynamicNotch: DynamicNotch - private let publisher: DynamicNotchInfoPublisher - public init(contentID: UUID = .init(), icon: Image! = nil, title: String, description: String? = nil, iconColor: Color = .white, style: DynamicNotch.Style = .auto, onTap: @escaping () -> Void) { - let publisher = DynamicNotchInfoPublisher(icon: icon, iconColor: iconColor, title: title, description: description) - self.publisher = publisher - internalDynamicNotch = DynamicNotch(contentID: contentID, style: style) { - InfoView(publisher: publisher, onTap: onTap) + public init(contentID: UUID = .init(), style: DynamicNotch.Style = .auto, playerManager: PlayerManager) { + self.playerManager = playerManager + internalDynamicNotch = DynamicNotch(contentID: contentID, style: style, playerManager: playerManager) { + InfoView(playerManager: playerManager) } } - - @MainActor - public func setContent(contentID: UUID = .init(), icon: Image? = nil, title: String, description: String? = nil, iconColor: Color = .white) { - withAnimation { - publisher.publish(icon: icon, iconColor: iconColor, title: title, description: description) - } + + public func refreshContent() { + internalDynamicNotch.refreshContent() } public func show(on screen: NSScreen = NSScreen.screens[0], for time: Double = 0) { @@ -64,77 +60,33 @@ public class DynamicNotchInfo { public extension DynamicNotchInfo { struct InfoView: View { @State private var isTapped: Bool = false - - private var publisher: DynamicNotchInfoPublisher - private var onTap: () -> Void + @ObservedObject private var playerManager: PlayerManager - init(publisher: DynamicNotchInfoPublisher, onTap: @escaping () -> Void) { - self.publisher = publisher - self.onTap = onTap + init(playerManager: PlayerManager) { + self.playerManager = playerManager } public var body: some View { HStack(spacing: 10) { - InfoImageView(publisher: publisher) - InfoTextView(publisher: publisher) + AlbumArtView(imageSize: 50) + .environmentObject(playerManager) + + VStack(alignment: .leading) { + Text(playerManager.track.title) + .font(.headline) + Text(playerManager.track.artist) + .foregroundStyle(.secondary) + .font(.caption2) + .opacity(1) + } + Spacer(minLength: 0) } - .frame(height: 40) + .frame(height: 50) + .frame(maxWidth: 250) .tapAnimation { - self.onTap() - } - } - } - - struct InfoImageView: View { - @ObservedObject private var publisher: DynamicNotchInfoPublisher - - init(publisher: DynamicNotchInfoPublisher) { - self.publisher = publisher - } - - public var body: some View { - if let image = publisher.icon { - image - .resizable() - .foregroundStyle(publisher.iconColor) - .padding(3) - .scaledToFit() - } else { - Image(nsImage: NSApplication.shared.applicationIconImage) - .resizable() - .padding(-5) - .scaledToFit() + playerManager.openMusicApp() } } } - - struct InfoTextView: View { - @ObservedObject private var publisher: DynamicNotchInfoPublisher - - init(publisher: DynamicNotchInfoPublisher) { - self.publisher = publisher - } - - public var body: some View { - VStack(alignment: .leading, spacing: publisher.description != nil ? nil : 0) { - Text(publisher.title) - .font(.headline) - Text(publisher.description ?? "") - .foregroundStyle(.secondary) - .font(.caption2) - .opacity(publisher.description != nil ? 1 : 0) - .frame(maxHeight: publisher.description != nil ? nil : 0) - } - } - } -} - -struct DynamicNotchInfo_Previews: PreviewProvider { - static let publisher = DynamicNotchInfoPublisher(icon: nil, iconColor: .blue, title: "testing") - static var previews: some View { - VStack { - DynamicNotchInfo.InfoView(publisher: publisher, onTap: {}) - } - } } diff --git a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift index 5531b90..3e569ad 100644 --- a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift +++ b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift @@ -17,6 +17,7 @@ extension NSScreen { } var hasNotch: Bool { +// return true auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil } diff --git a/Tuneful/DynamicNotchKit/NotchView.swift b/Tuneful/DynamicNotchKit/NotchView.swift index 9ff411d..f9cc0f5 100644 --- a/Tuneful/DynamicNotchKit/NotchView.swift +++ b/Tuneful/DynamicNotchKit/NotchView.swift @@ -26,17 +26,30 @@ struct NotchView: View where Content: View { .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } - .blur(radius: dynamicNotch.isVisible ? 0 : 10) .scaleEffect(dynamicNotch.isVisible ? 1 : 0.8) .offset(y: dynamicNotch.isVisible ? 0 : 5) .padding(.horizontal, 15) // Small corner radius of the TOP of the notch .transition(.blur.animation(.smooth)) + + if dynamicNotch.isMouseInside { + VStack { + PlaybackButtonsView(playButtonSize: 20) + .environmentObject(dynamicNotch.playerManager) + } + .frame(width: dynamicNotch.notchWidth * 0.75) + .padding(.bottom, 15) + } } .fixedSize() .frame(minWidth: dynamicNotch.notchWidth) .onHover { hovering in - dynamicNotch.isMouseInside = hovering + if !dynamicNotch.isVisible { + return + } + withAnimation(dynamicNotch.animation) { + dynamicNotch.isMouseInside = hovering + } } .background { Rectangle() diff --git a/Tuneful/DynamicNotchKit/NotchlessView.swift b/Tuneful/DynamicNotchKit/NotchlessView.swift index 83f8b04..bb41ca7 100644 --- a/Tuneful/DynamicNotchKit/NotchlessView.swift +++ b/Tuneful/DynamicNotchKit/NotchlessView.swift @@ -10,43 +10,61 @@ import SwiftUI struct NotchlessView: View where Content: View { @ObservedObject var dynamicNotch: DynamicNotch @State var windowHeight: CGFloat = 0 + @State var title: String = "" + @State var artist: String = "" var body: some View { VStack(spacing: 0) { HStack(spacing: 0) { Spacer() - dynamicNotch.content() - .id(dynamicNotch.contentID) - .safeAreaInset(edge: .top, spacing: 0) { Color.clear.frame(height: 10) } - .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 10) } - .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 13) } - .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 13) } - .fixedSize() - - .onHover { hovering in - dynamicNotch.isMouseInside = hovering + VStack(spacing: 0) { + dynamicNotch.content() + .id(dynamicNotch.contentID) + .safeAreaInset(edge: .top, spacing: 0) { Color.clear.frame(height: 10) } + .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 10) } + .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 13) } + .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 13) } + .transition(.blur.animation(.smooth)) + .fixedSize() + + if dynamicNotch.isMouseInside { + VStack { + PlaybackButtonsView(playButtonSize: 20) + .environmentObject(dynamicNotch.playerManager) + } + .frame(width: dynamicNotch.notchWidth * 0.75) + .padding(.bottom, 15) } - .background { - VisualEffectView(material: .popover, blendingMode: .behindWindow) - .overlay { - RoundedRectangle(cornerRadius: 20, style: .continuous) - .strokeBorder(.quaternary, lineWidth: 1) - } + } + .onHover { hovering in + if !dynamicNotch.isVisible { + return } - .clipShape(.rect(cornerRadius: 20)) - .shadow(color: .black.opacity(0.5), radius: dynamicNotch.isVisible ? 10 : 0) - .padding(5) - .background { - GeometryReader { geo in - Color.clear - .onAppear { - windowHeight = geo.size.height // This makes sure that the floating window FULLY slides off before disappearing - } + withAnimation(dynamicNotch.animation) { + dynamicNotch.isMouseInside = hovering + } + } + .background { + VisualEffectView(material: .popover, blendingMode: .behindWindow) + .overlay { + RoundedRectangle(cornerRadius: 20, style: .continuous) + .strokeBorder(.quaternary, lineWidth: 1) } + } + .clipShape(.rect(cornerRadius: 20)) + .shadow(color: .black.opacity(0.5), radius: dynamicNotch.isVisible ? 10 : 0) + .padding(5) + .background { + GeometryReader { geo in + Color.clear + .onAppear { + windowHeight = geo.size.height // This makes sure that the floating window FULLY slides off before disappearing + } } - .offset(y: dynamicNotch.isVisible ? dynamicNotch.notchHeight : -windowHeight) - .transition(.blur.animation(.smooth)) + } + .offset(y: dynamicNotch.isVisible ? dynamicNotch.notchHeight : -windowHeight) + .animation(dynamicNotch.animation, value: dynamicNotch.contentID) Spacer() } diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index 96ab8b5..f141f06 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -11,7 +11,7 @@ import Combine import ISSoundAdditions import ScriptingBridge -class PlayerManager: ObservableObject { +public class PlayerManager: ObservableObject { @AppStorage("connectedApp") private var connectedApp = ConnectedApps.appleMusic @AppStorage("showPlayerWindow") private var showPlayerWindow: Bool = true @AppStorage("showSongNotification") private var showSongNotification = true @@ -94,6 +94,7 @@ class PlayerManager: ObservableObject { self.playerAppProvider = PlayerAppProvider(notificationSubject: self.notificationSubject) self.setupMusicAppsAndObservers() self.playStateOrTrackDidChange(nil) + self.notchInfo = DynamicNotchInfo(playerManager: self) // Updating player state every 1 sec self.timerStartSignal.sink { @@ -273,8 +274,10 @@ class PlayerManager: ObservableObject { func getNewSongInfo() { Logger.main.log("Getting track info") - getCurrentSeekerPosition() - track = musicApp.getTrackInfo() + withAnimation(Constants.SongTransitionAnimation) { + getCurrentSeekerPosition() + track = musicApp.getTrackInfo() + } fetchAlbumArt(retryCount: 5) updateFormattedDuration() } @@ -312,13 +315,7 @@ class PlayerManager: ObservableObject { return } - self.notchInfo?.hide() - self.notchInfo = DynamicNotchInfo( - icon: Image(nsImage: albumArt.image.roundImage(withSize: NSSize(width: 70, height: 70), radius: 10)), - title: self.track.title, - description: self.track.album, - onTap: self.openMusicApp - ) + self.notchInfo.refreshContent() self.notchInfo.show(for: notificationDuration) } diff --git a/Tuneful/Models/Track.swift b/Tuneful/Models/Track.swift index 7678a12..599b4c5 100644 --- a/Tuneful/Models/Track.swift +++ b/Tuneful/Models/Track.swift @@ -16,6 +16,9 @@ struct Track: Equatable { var duration: CGFloat = 0.0 var isLoved = false var isPodcast: Bool { self.duration > Constants.podcastThresholdDurationSec } + var albumArtImage: Image { + get { return Image(nsImage: albumArt.roundImage(withSize: NSSize(width: 50, height: 50), radius: 10)) } + } static func == (lhs: Track, rhs: Track) -> Bool { if lhs.title == "" && lhs.artist == "" && lhs.album == "" { diff --git a/Tuneful/Utilities/AppIcons.swift b/Tuneful/Utilities/AppIcons.swift index 8c001f0..a158155 100644 --- a/Tuneful/Utilities/AppIcons.swift +++ b/Tuneful/Utilities/AppIcons.swift @@ -10,7 +10,6 @@ import SwiftUI import AppKit struct AppIcons { - func getIcon(file path: URL) -> NSImage? { guard FileManager.default.fileExists(atPath: path.path()) else { return nil } @@ -24,5 +23,4 @@ struct AppIcons { return getIcon(file: path) } - } diff --git a/Tuneful/Utilities/Constants.swift b/Tuneful/Utilities/Constants.swift index d959ebd..c2ef3ea 100644 --- a/Tuneful/Utilities/Constants.swift +++ b/Tuneful/Utilities/Constants.swift @@ -5,8 +5,8 @@ // Source: [Jukebox](https://github.com/Jaysce/Jukebox) // -import Foundation import AppKit +import SwiftUI enum Constants { static let podcastThresholdDurationSec = 600.0 @@ -36,4 +36,8 @@ enum Constants { static let marqueeFont = NSFont.systemFont(ofSize: 13, weight: .regular) static let imageWidth = 30.0 } + + static var SongTransitionAnimation: Animation { + Animation.timingCurve(0.16, 1, 0.3, 1, duration: 0.7) + } } diff --git a/Tuneful/Views/Playback/AlbumArtView.swift b/Tuneful/Views/Playback/AlbumArtView.swift index 4cec235..10ed505 100644 --- a/Tuneful/Views/Playback/AlbumArtView.swift +++ b/Tuneful/Views/Playback/AlbumArtView.swift @@ -16,7 +16,6 @@ struct AlbumArtView: View { VStack { Image(nsImage: playerManager.track.albumArt) .resizable() -// .scaledToFill() .frame(width: self.imageSize, height: self.imageSize) .cornerRadius(10) .shadow(color: .black.opacity(0.2), radius: 4, x: 0, y: 2) From 6934d264e2f141d512d06c2da5f69cede792f75f Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Mon, 25 Nov 2024 23:27:04 +0100 Subject: [PATCH 02/73] New playback and volume slider, new animations --- Tuneful.xcodeproj/project.pbxproj | 8 +- Tuneful/DynamicNotchKit/DynamicNotch.swift | 1 - .../DynamicNotchKit/NSScreen+Extensions.swift | 4 +- Tuneful/DynamicNotchKit/NotchView.swift | 9 ++ Tuneful/Managers/PlayerManager.swift | 18 ++- Tuneful/Views/Playback/CustomSliderView.swift | 145 ++++++------------ .../Views/Playback/PlaybackPositionView.swift | 11 +- .../Views/Playback/VolumeControlView.swift | 6 +- 8 files changed, 85 insertions(+), 117 deletions(-) diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index fc28925..d5c9801 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -22,13 +22,13 @@ FE2554A02CA9C4B9003DAB77 /* PlaybackButtonsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE25549F2CA9C4B9003DAB77 /* PlaybackButtonsView.swift */; }; FE2554A22CA9CA93003DAB77 /* HoverButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE2554A12CA9CA93003DAB77 /* HoverButton.swift */; }; FE2AEE2E2A8FBE3200E8D576 /* MiniPlayerWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE2AEE2D2A8FBE3200E8D576 /* MiniPlayerWindow.swift */; }; - FE2AEE302A8FC76500E8D576 /* PlaybackPositionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE2AEE2F2A8FC76500E8D576 /* PlaybackPositionView.swift */; }; FE2AEE322A8FE08500E8D576 /* CustomSliderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE2AEE312A8FE08500E8D576 /* CustomSliderView.swift */; }; FE2AEE342A8FE0F200E8D576 /* Settings+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE2AEE332A8FE0F200E8D576 /* Settings+Extension.swift */; }; FE2AEE392A93A50900E8D576 /* PressButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE2AEE382A93A50900E8D576 /* PressButtonStyle.swift */; }; FE3189F82A7C3B1A006B2D59 /* Helper.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189F72A7C3B1A006B2D59 /* Helper.swift */; }; FE3189FA2A7C3B8C006B2D59 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189F92A7C3B8C006B2D59 /* OnboardingView.swift */; }; FE3189FD2A7C3D01006B2D59 /* OnboardingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */; }; + FE31AED02CF50708002818ED /* PlaybackPositionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */; }; FE37A0332A829623006FBA5B /* MusicControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE37A0322A829623006FBA5B /* MusicControl.swift */; }; FE37A0352A82982B006FBA5B /* PlayPauseButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE37A0342A82982B006FBA5B /* PlayPauseButton.swift */; }; FE3F67FE2AAD02D100CCE841 /* LaunchAtLogin in Frameworks */ = {isa = PBXBuildFile; productRef = FE3F67FD2AAD02D100CCE841 /* LaunchAtLogin */; }; @@ -120,13 +120,13 @@ FE25549F2CA9C4B9003DAB77 /* PlaybackButtonsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackButtonsView.swift; sourceTree = ""; }; FE2554A12CA9CA93003DAB77 /* HoverButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HoverButton.swift; sourceTree = ""; }; FE2AEE2D2A8FBE3200E8D576 /* MiniPlayerWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerWindow.swift; sourceTree = ""; }; - FE2AEE2F2A8FC76500E8D576 /* PlaybackPositionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackPositionView.swift; sourceTree = ""; }; FE2AEE312A8FE08500E8D576 /* CustomSliderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomSliderView.swift; sourceTree = ""; }; FE2AEE332A8FE0F200E8D576 /* Settings+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Settings+Extension.swift"; sourceTree = ""; }; FE2AEE382A93A50900E8D576 /* PressButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PressButtonStyle.swift; sourceTree = ""; }; FE3189F72A7C3B1A006B2D59 /* Helper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Helper.swift; sourceTree = ""; }; FE3189F92A7C3B8C006B2D59 /* OnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = ""; }; FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingWindow.swift; sourceTree = ""; }; + FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackPositionView.swift; sourceTree = ""; }; FE37A0322A829623006FBA5B /* MusicControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicControl.swift; sourceTree = ""; }; FE37A0342A82982B006FBA5B /* PlayPauseButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayPauseButton.swift; sourceTree = ""; }; FE4414B72AB4999600A73246 /* Notification.Name.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Notification.Name.swift; sourceTree = ""; }; @@ -236,7 +236,7 @@ children = ( FE25549F2CA9C4B9003DAB77 /* PlaybackButtonsView.swift */, FE25549A2CA95F6E003DAB77 /* AddToFavoritesView.swift */, - FE2AEE2F2A8FC76500E8D576 /* PlaybackPositionView.swift */, + FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */, FE2AEE312A8FE08500E8D576 /* CustomSliderView.swift */, FE7C5BD92AC050E000D1C253 /* AlbumArtView.swift */, FEF53A632AEEA43600CE4981 /* VolumeControlView.swift */, @@ -582,7 +582,6 @@ FE5B3CA22AB0AC700038B6E4 /* PopoverView.swift in Sources */, FE6BFD0C2A73B2D400D3321F /* NSImage+Extension.swift in Sources */, FE6BFD022A73AB9A00D3321F /* MusicApplication.swift in Sources */, - FE2AEE302A8FC76500E8D576 /* PlaybackPositionView.swift in Sources */, FEBA3D042B58303A00E25A67 /* View+Extension.swift in Sources */, FE6BFD032A73AB9A00D3321F /* SpotifyApplication.swift in Sources */, FE3189FD2A7C3D01006B2D59 /* OnboardingWindow.swift in Sources */, @@ -612,6 +611,7 @@ FEFFE55B2B4FE028000887B5 /* DateComponentsFormatter+Extension.swift in Sources */, FEF53A642AEEA43600CE4981 /* VolumeControlView.swift in Sources */, FE9FCF232CAEC0C90015DF4D /* SpotifyManager.swift in Sources */, + FE31AED02CF50708002818ED /* PlaybackPositionView.swift in Sources */, FE25549B2CA95F87003DAB77 /* AddToFavoritesView.swift in Sources */, FE3189FA2A7C3B8C006B2D59 /* OnboardingView.swift in Sources */, FE8CE1542C1E03F30053FDEA /* CompactPopoverView.swift in Sources */, diff --git a/Tuneful/DynamicNotchKit/DynamicNotch.swift b/Tuneful/DynamicNotchKit/DynamicNotch.swift index d92e092..8d71448 100644 --- a/Tuneful/DynamicNotchKit/DynamicNotch.swift +++ b/Tuneful/DynamicNotchKit/DynamicNotch.swift @@ -11,7 +11,6 @@ import SwiftUI // MARK: - DynamicNotch public class DynamicNotch: ObservableObject where Content: View { - public var windowController: NSWindowController? // Make public in case user wants to modify the NSPanel // Player manager diff --git a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift index 3e569ad..361688c 100644 --- a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift +++ b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift @@ -17,8 +17,8 @@ extension NSScreen { } var hasNotch: Bool { -// return true - auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil + return true +// auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil } var notchSize: NSSize? { diff --git a/Tuneful/DynamicNotchKit/NotchView.swift b/Tuneful/DynamicNotchKit/NotchView.swift index f9cc0f5..82156dc 100644 --- a/Tuneful/DynamicNotchKit/NotchView.swift +++ b/Tuneful/DynamicNotchKit/NotchView.swift @@ -36,6 +36,8 @@ struct NotchView: View where Content: View { VStack { PlaybackButtonsView(playButtonSize: 20) .environmentObject(dynamicNotch.playerManager) + PlaybackPositionView() + .environmentObject(dynamicNotch.playerManager) } .frame(width: dynamicNotch.notchWidth * 0.75) .padding(.bottom, 15) @@ -51,6 +53,13 @@ struct NotchView: View where Content: View { dynamicNotch.isMouseInside = hovering } } + .onChange(of: dynamicNotch.isMouseInside) { isMouseInside in + if isMouseInside { + dynamicNotch.playerManager.startTimer() + } else { + dynamicNotch.playerManager.stopTimer() + } + } .background { Rectangle() .foregroundStyle(.black) diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index f141f06..bf7bef1 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -363,7 +363,9 @@ public class PlayerManager: ObservableObject { if isDraggingPlaybackPositionView { return } musicApp.refreshInfo { - self.seekerPosition = self.musicApp.getCurrentSeekerPosition() + withAnimation { + self.seekerPosition = self.musicApp.getCurrentSeekerPosition() + } } } @@ -391,6 +393,16 @@ public class PlayerManager: ObservableObject { func draggingPlaybackPosition() { formattedPlaybackPosition = formattedTimestamp(seekerPosition) } + + // MARK: Timer + + func startTimer() { + self.timerStartSignal.send() + } + + func stopTimer() { + self.timerStopSignal.send() + } // MARK: Volume @@ -405,7 +417,9 @@ public class PlayerManager: ObservableObject { musicApp.setVolume(volume: newVolume) - volume = CGFloat(newVolume) + withAnimation { + volume = CGFloat(newVolume) + } } func increaseVolume() { diff --git a/Tuneful/Views/Playback/CustomSliderView.swift b/Tuneful/Views/Playback/CustomSliderView.swift index 20b759f..3c4a2ff 100644 --- a/Tuneful/Views/Playback/CustomSliderView.swift +++ b/Tuneful/Views/Playback/CustomSliderView.swift @@ -8,135 +8,105 @@ import SwiftUI struct CustomSliderView: View { - @Environment(\.isEnabled) var isEnabled @Binding var value: CGFloat @Binding var isDragging: Bool @State var lastOffset: CGFloat = 0 + @State var sliderHeight: CGFloat = 7 let range: ClosedRange - let knobDiameter: CGFloat - let knobColor: Color - let knobScaleEffectMagnitude: CGFloat - let leadingRectangleColor: Color + let leadingRectangleColor: Color = .playbackPositionLeadingRectangle - /// Called when the drag gesture ends. + // Called when the drag gesture ends. let onEndedDragging: ((DragGesture.Value) -> Void)? - - let sliderHeight: CGFloat = 5 - - let knobAnimation: Animation? - let knobTransition = AnyTransition.scale init( value: Binding, isDragging: Binding, range: ClosedRange, - knobDiameter: CGFloat, - knobColor: Color, - knobScaleEffectMagnitude: CGFloat = 1, - knobAnimation: Animation? = nil, - leadingRectangleColor: Color, + sliderHeight: CGFloat = 7, onEndedDragging: ((DragGesture.Value) -> Void)? = nil ) { self._value = value self._isDragging = isDragging self.range = range - self.knobDiameter = knobDiameter - self.knobColor = knobColor - self.knobScaleEffectMagnitude = knobScaleEffectMagnitude - self.knobAnimation = knobAnimation - self.leadingRectangleColor = leadingRectangleColor + self.sliderHeight = sliderHeight self.onEndedDragging = onEndedDragging } var body: some View { GeometryReader { geometry in - ZStack { - HStack(spacing: 0) { - // MARK: Leading Rectangle - Capsule() - .fill(leadingRectangleColor) - .opacity(isEnabled ? 1 : 0.25) - .frame( - width: leadingRectangleWidth(geometry), - height: sliderHeight - ) - // MARK: Trailing Rectangle - Capsule() - .fill(Color.primary.opacity(0.25)) - .opacity(isEnabled ? 1 : 0.25) - .frame(height: sliderHeight) - } - HStack(spacing: 0) { - // MARK: Knob - Circle() - .fill(isEnabled ? knobColor : .gray) - .frame(width: knobDiameter) - .scaleEffect(isDragging ? knobScaleEffectMagnitude : 1) - .shadow(radius: 5) - .transition(knobTransition) - .offset(x: knobOffset(geometry)) - .gesture(knobDragGesture(geometry)) - Spacer() - } + ZStack(alignment: .leading) { + Rectangle() + .fill(Color.primary.opacity(0.85)) + .opacity(isEnabled ? 1 : 0.25) + .frame(height: sliderHeight) + .cornerRadius(5) + .mask(alignment: .leading) { + Rectangle() + .fill(leadingRectangleColor) + .frame( + width: leadingRectangleWidth(geometry), + height: sliderHeight + ) + } + + Rectangle() + .fill(Color.primary.opacity(0.25)) + .opacity(isEnabled ? 1 : 0.25) + .frame(height: sliderHeight) + .cornerRadius(5) } .contentShape(Rectangle()) .gesture(knobPositionDragGesture(geometry)) } - .frame(height: knobDiameter + 2) - .padding(.horizontal, 5) + .frame(height: sliderHeight) + .onHover() { hovering in + withAnimation(Animation.timingCurve(0.16, 1, 0.3, 1, duration: 0.7)) { + if hovering { + sliderHeight += 3 + } else { + sliderHeight -= 3 + } + } + } } func knobOffset(_ geometry: GeometryProxy) -> CGFloat { - let maxKnobOffset = geometry.size.width - self.knobDiameter + let maxKnobOffset = geometry.size.width// - self.knobDiameter let result = max(0, self.value.map(from: self.range, to: 0...maxKnobOffset)) return result } func leadingRectangleWidth(_ geometry: GeometryProxy) -> CGFloat { - let result = max(0, knobOffset(geometry) + knobDiameter / 2) + let result = max(0, knobOffset(geometry)/* + knobDiameter / 2*/) return result } func knobDragGesture(_ geometry: GeometryProxy) -> some Gesture { return DragGesture(minimumDistance: 0) .onChanged { dragValue in - - if let animation = self.knobAnimation { - withAnimation(animation) { - self.isDragging = true - } - } - else { - self.isDragging = true - } + self.isDragging = true if abs(dragValue.translation.width) < 0.1 { self.lastOffset = knobOffset(geometry) } let knobOffsetMin: CGFloat = 0 - let knobOffsetMax = geometry.size.width - self.knobDiameter + let knobOffsetMax = geometry.size.width let knobOffsetRange = knobOffsetMin...knobOffsetMax let offset = self.lastOffset + dragValue.translation.width let knobOffset = offset.clamped(to: knobOffsetRange) + self.value = knobOffset.map( from: knobOffsetRange, to: self.range ) } .onEnded { dragValue in - if let animation = self.knobAnimation { - withAnimation(animation) { - self.isDragging = false - } - } - else { - self.isDragging = false - } + self.isDragging = false self.onEndedDragging?(dragValue) } } @@ -144,36 +114,21 @@ struct CustomSliderView: View { func knobPositionDragGesture(_ geometry: GeometryProxy) -> some Gesture { return DragGesture(minimumDistance: 0) .onChanged { dragValue in - - if let animation = self.knobAnimation { - withAnimation(animation) { - self.isDragging = true - } - } - else { - self.isDragging = true - } + self.isDragging = true - let knobOffsetMin = knobDiameter / 2 - let knobOffsetMax = geometry.size.width - knobDiameter / 2 - let knobOffsetRange = knobOffsetMin...knobOffsetMax + let knobOffsetMax = geometry.size.width + let knobOffsetRange = 0...knobOffsetMax let knobOffset = dragValue.location.x.clamped( to: knobOffsetRange ) - self.value = knobOffset.map( - from: knobOffsetRange, - to: self.range - ) + + self.value = knobOffset.map( + from: knobOffsetRange, + to: self.range + ) } .onEnded { dragValue in - if let animation = self.knobAnimation { - withAnimation(animation) { - self.isDragging = false - } - } - else { - self.isDragging = false - } + self.isDragging = false self.onEndedDragging?(dragValue) } } diff --git a/Tuneful/Views/Playback/PlaybackPositionView.swift b/Tuneful/Views/Playback/PlaybackPositionView.swift index 03d23d7..13bd1ad 100644 --- a/Tuneful/Views/Playback/PlaybackPositionView.swift +++ b/Tuneful/Views/Playback/PlaybackPositionView.swift @@ -11,22 +11,17 @@ import SwiftUI struct PlaybackPositionView: View { @EnvironmentObject var playerManager: PlayerManager - @AppStorage("showPlayerWindow") var showPlayerWindow: Bool = true var body: some View { - VStack(spacing: -5) { + VStack(spacing: 0) { CustomSliderView( value: $playerManager.seekerPosition, isDragging: $playerManager.isDraggingPlaybackPositionView, range: 0...playerManager.track.duration, - knobDiameter: 10, - knobColor: .white, - knobScaleEffectMagnitude: 1.3, - knobAnimation: .linear(duration: 0.1), - leadingRectangleColor: .playbackPositionLeadingRectangle, onEndedDragging: { _ in self.playerManager.seekTrack() } ) - .padding(.bottom, 5) + .padding(.bottom, 10) + .frame(height: 15) HStack { Text(playerManager.formattedPlaybackPosition) diff --git a/Tuneful/Views/Playback/VolumeControlView.swift b/Tuneful/Views/Playback/VolumeControlView.swift index 2e8d32b..4b935ae 100644 --- a/Tuneful/Views/Playback/VolumeControlView.swift +++ b/Tuneful/Views/Playback/VolumeControlView.swift @@ -31,11 +31,7 @@ struct VolumeControlView: View { value: $playerManager.volume, isDragging: $playerManager.isDraggingSoundVolumeSlider, range: 0...100, - knobDiameter: 5, - knobColor: .white, - knobScaleEffectMagnitude: 1.5, - knobAnimation: .linear(duration: 0.15), - leadingRectangleColor: .playbackPositionLeadingRectangle + sliderHeight: 5 ) Button(action: playerManager.increaseVolume) { From 6af3c8394ecd18e0aebac098433c8169876339df Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Wed, 27 Nov 2024 19:14:26 +0100 Subject: [PATCH 03/73] Fixed mini player window always floating when restarting Tuneful --- .../HoverTrackingWindowController.swift | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Tuneful/DynamicNotchKit/HoverTrackingWindowController.swift diff --git a/Tuneful/DynamicNotchKit/HoverTrackingWindowController.swift b/Tuneful/DynamicNotchKit/HoverTrackingWindowController.swift new file mode 100644 index 0000000..a1b4306 --- /dev/null +++ b/Tuneful/DynamicNotchKit/HoverTrackingWindowController.swift @@ -0,0 +1,49 @@ +// +// HoverTrackingWindow.swift +// Tuneful +// +// Created by Martin Fekete on 26/11/2024. +// + +import Cocoa + +class HoverTrackingWindow: NSWindow { + private var trackingArea: NSTrackingArea? + + override func updateTrackingArea() { + super.updateTrackingAreas() + + // Remove existing tracking area if it exists + if let trackingArea = trackingArea { + self.contentView?.removeTrackingArea(trackingArea) + } + + // Create a new tracking area + let options: NSTrackingArea.Options = [.mouseEnteredAndExited, .mouseMoved, .activeInKeyWindow] + trackingArea = NSTrackingArea(rect: self.contentView?.bounds ?? .zero, + options: options, + owner: self, + userInfo: nil) + + // Add the tracking area to the content view + if let trackingArea = trackingArea { + self.contentView?.addTrackingArea(trackingArea) + } + } + + override func mouseEntered(with event: NSEvent) { + super.mouseEntered(with: event) + print("Mouse entered window") + } + + override func mouseExited(with event: NSEvent) { + super.mouseExited(with: event) + print("Mouse exited window") + } + + override func mouseMoved(with event: NSEvent) { + super.mouseMoved(with: event) + print("Mouse moved in window") + } +} + From f28555296ee4fafde5109ee7ed8bd2ed35c90776 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Wed, 27 Nov 2024 19:14:51 +0100 Subject: [PATCH 04/73] Fixed mini player window always floating when restarting Tuneful --- Tuneful.xcodeproj/project.pbxproj | 4 ++ Tuneful/DynamicNotchKit/DynamicNotch.swift | 41 +++++++++++----- .../HoverTrackingWindowController.swift | 47 +++++++----------- Tuneful/DynamicNotchKit/NotchView.swift | 2 +- Tuneful/Tuneful.swift | 1 + .../Views/Playback/PlaybackPositionView.swift | 48 ++++++++++++++----- 6 files changed, 87 insertions(+), 56 deletions(-) diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index d5c9801..1cb298a 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -29,6 +29,7 @@ FE3189FA2A7C3B8C006B2D59 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189F92A7C3B8C006B2D59 /* OnboardingView.swift */; }; FE3189FD2A7C3D01006B2D59 /* OnboardingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */; }; FE31AED02CF50708002818ED /* PlaybackPositionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */; }; + FE31AED42CF6739E002818ED /* HoverTrackingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE31AED32CF67394002818ED /* HoverTrackingWindowController.swift */; }; FE37A0332A829623006FBA5B /* MusicControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE37A0322A829623006FBA5B /* MusicControl.swift */; }; FE37A0352A82982B006FBA5B /* PlayPauseButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE37A0342A82982B006FBA5B /* PlayPauseButton.swift */; }; FE3F67FE2AAD02D100CCE841 /* LaunchAtLogin in Frameworks */ = {isa = PBXBuildFile; productRef = FE3F67FD2AAD02D100CCE841 /* LaunchAtLogin */; }; @@ -127,6 +128,7 @@ FE3189F92A7C3B8C006B2D59 /* OnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = ""; }; FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingWindow.swift; sourceTree = ""; }; FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackPositionView.swift; sourceTree = ""; }; + FE31AED32CF67394002818ED /* HoverTrackingWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HoverTrackingWindowController.swift; sourceTree = ""; }; FE37A0322A829623006FBA5B /* MusicControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicControl.swift; sourceTree = ""; }; FE37A0342A82982B006FBA5B /* PlayPauseButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayPauseButton.swift; sourceTree = ""; }; FE4414B72AB4999600A73246 /* Notification.Name.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Notification.Name.swift; sourceTree = ""; }; @@ -220,6 +222,7 @@ FE1A62FA2CBC1B09001C13CE /* DynamicNotchKit */ = { isa = PBXGroup; children = ( + FE31AED32CF67394002818ED /* HoverTrackingWindowController.swift */, FE1A62F12CBC1B09001C13CE /* BlurModifier.swift */, FE1A62F22CBC1B09001C13CE /* DynamicNotch.swift */, FE1A62F32CBC1B09001C13CE /* DynamicNotchInfo.swift */, @@ -595,6 +598,7 @@ FEFFE55D2B4FE051000887B5 /* Comparable+Extension.swift in Sources */, FE6BFCFE2A73A89600D3321F /* PlayerManager.swift in Sources */, FE6BFD082A73AE5E00D3321F /* Track.swift in Sources */, + FE31AED42CF6739E002818ED /* HoverTrackingWindowController.swift in Sources */, FE2AEE2E2A8FBE3200E8D576 /* MiniPlayerWindow.swift in Sources */, FE4C92172B61459F00FF79BE /* String+Extension.swift in Sources */, FE6BFCE92A72F37800D3321F /* MiniPlayerView.swift in Sources */, diff --git a/Tuneful/DynamicNotchKit/DynamicNotch.swift b/Tuneful/DynamicNotchKit/DynamicNotch.swift index 8d71448..b8aff40 100644 --- a/Tuneful/DynamicNotchKit/DynamicNotch.swift +++ b/Tuneful/DynamicNotchKit/DynamicNotch.swift @@ -11,7 +11,7 @@ import SwiftUI // MARK: - DynamicNotch public class DynamicNotch: ObservableObject where Content: View { - public var windowController: NSWindowController? // Make public in case user wants to modify the NSPanel + public var windowController: HoverTrackingWindowController? // Make public in case user wants to modify the NSPanel // Player manager @Published var playerManager: PlayerManager @@ -26,7 +26,8 @@ public class DynamicNotch: ObservableObject where Content: View { @Published var notchHeight: CGFloat = 0 // Notch Closing Properties - @Published var isMouseInside: Bool = false // If the mouse is inside, the notch will not auto-hide + @Published var isMouseInside: Bool = false + private var timer: Timer? var workItem: DispatchWorkItem? private var subscription: AnyCancellable? @@ -123,7 +124,7 @@ public extension DynamicNotch { guard isVisible else { return } guard !isMouseInside else { - DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { + DispatchQueue.main.asyncAfter(deadline: .now() + 10) { self.hide() } return @@ -133,12 +134,12 @@ public extension DynamicNotch { self.isVisible = false } - timer = Timer.scheduledTimer( - withTimeInterval: maxAnimationDuration, - repeats: false - ) { _ in - self.deinitializeWindow() - } +// timer = Timer.scheduledTimer( +// withTimeInterval: maxAnimationDuration, +// repeats: false +// ) { _ in +// self.deinitializeWindow() +// } } /// Toggle the DynamicNotch's visibility. @@ -193,9 +194,14 @@ extension DynamicNotch { let view: NSView = { switch notchStyle { - case .notch: NSHostingView(rootView: NotchView(dynamicNotch: self).foregroundStyle(.white)) - case .floating: NSHostingView(rootView: NotchlessView(dynamicNotch: self)) - case .auto: screen.hasNotch ? NSHostingView(rootView: NotchView(dynamicNotch: self).foregroundStyle(.white)) : NSHostingView(rootView: NotchlessView(dynamicNotch: self)) + case .notch: + NSHostingView(rootView: NotchView(dynamicNotch: self).foregroundStyle(.white)) + case .floating: + NSHostingView(rootView: NotchlessView(dynamicNotch: self)) + case .auto: + screen.hasNotch + ? NSHostingView(rootView: NotchView(dynamicNotch: self).foregroundStyle(.white)) + : NSHostingView(rootView: NotchlessView(dynamicNotch: self)) } }() @@ -221,4 +227,15 @@ extension DynamicNotch { windowController.close() self.windowController = nil } + + // Handle mouse events + private func handleMouseEntered() { + print("Perform action on mouse hover") + // Add your method execution here + } + + private func handleMouseExited() { + print("Perform action on mouse exit") + // Optional: Add exit handling here + } } diff --git a/Tuneful/DynamicNotchKit/HoverTrackingWindowController.swift b/Tuneful/DynamicNotchKit/HoverTrackingWindowController.swift index a1b4306..fe21421 100644 --- a/Tuneful/DynamicNotchKit/HoverTrackingWindowController.swift +++ b/Tuneful/DynamicNotchKit/HoverTrackingWindowController.swift @@ -5,45 +5,32 @@ // Created by Martin Fekete on 26/11/2024. // +import SwiftUI import Cocoa -class HoverTrackingWindow: NSWindow { - private var trackingArea: NSTrackingArea? - - override func updateTrackingArea() { - super.updateTrackingAreas() - - // Remove existing tracking area if it exists - if let trackingArea = trackingArea { - self.contentView?.removeTrackingArea(trackingArea) - } - - // Create a new tracking area - let options: NSTrackingArea.Options = [.mouseEnteredAndExited, .mouseMoved, .activeInKeyWindow] - trackingArea = NSTrackingArea(rect: self.contentView?.bounds ?? .zero, - options: options, - owner: self, - userInfo: nil) +public class HoverTrackingWindowController: NSWindowController { + public override func windowDidLoad() { + super.windowDidLoad() - // Add the tracking area to the content view - if let trackingArea = trackingArea { - self.contentView?.addTrackingArea(trackingArea) + // Add a tracking area to the content view of the window + if let contentView = window?.contentView { + let trackingArea = NSTrackingArea( + rect: contentView.bounds, + options: [.mouseEnteredAndExited, .mouseMoved, .activeInKeyWindow], + owner: self, + userInfo: nil + ) + contentView.addTrackingArea(trackingArea) } } - override func mouseEntered(with event: NSEvent) { + public override func mouseEntered(with event: NSEvent) { super.mouseEntered(with: event) - print("Mouse entered window") + print("Mouse entered") } - override func mouseExited(with event: NSEvent) { + public override func mouseExited(with event: NSEvent) { super.mouseExited(with: event) - print("Mouse exited window") - } - - override func mouseMoved(with event: NSEvent) { - super.mouseMoved(with: event) - print("Mouse moved in window") + print("Mouse exited") } } - diff --git a/Tuneful/DynamicNotchKit/NotchView.swift b/Tuneful/DynamicNotchKit/NotchView.swift index 82156dc..bbccba3 100644 --- a/Tuneful/DynamicNotchKit/NotchView.swift +++ b/Tuneful/DynamicNotchKit/NotchView.swift @@ -36,7 +36,7 @@ struct NotchView: View where Content: View { VStack { PlaybackButtonsView(playButtonSize: 20) .environmentObject(dynamicNotch.playerManager) - PlaybackPositionView() + PlaybackPositionView(sliderHeight: 6, inline: true) .environmentObject(dynamicNotch.playerManager) } .frame(width: dynamicNotch.notchWidth * 0.75) diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index a5a0ea0..287deec 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -446,6 +446,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { let rootView = view.cornerRadius(15).environmentObject(self.playerManager) let hostedOnboardingView = NSHostingView(rootView: rootView) miniPlayerWindow.contentView = hostedOnboardingView + toggleMiniPlayerWindowLevel() } // MARK: Settings diff --git a/Tuneful/Views/Playback/PlaybackPositionView.swift b/Tuneful/Views/Playback/PlaybackPositionView.swift index 13bd1ad..03330e1 100644 --- a/Tuneful/Views/Playback/PlaybackPositionView.swift +++ b/Tuneful/Views/Playback/PlaybackPositionView.swift @@ -11,26 +11,48 @@ import SwiftUI struct PlaybackPositionView: View { @EnvironmentObject var playerManager: PlayerManager + var sliderHeight: CGFloat = 7 + var inline: Bool = false var body: some View { - VStack(spacing: 0) { - CustomSliderView( - value: $playerManager.seekerPosition, - isDragging: $playerManager.isDraggingPlaybackPositionView, - range: 0...playerManager.track.duration, - onEndedDragging: { _ in self.playerManager.seekTrack() } - ) - .padding(.bottom, 10) - .frame(height: 15) - - HStack { + if !inline { + VStack(spacing: 0) { + CustomSliderView( + value: $playerManager.seekerPosition, + isDragging: $playerManager.isDraggingPlaybackPositionView, + range: 0...playerManager.track.duration, + sliderHeight: sliderHeight, + onEndedDragging: { _ in self.playerManager.seekTrack() } + ) + .padding(.bottom, 7) + .frame(height: 15) + + HStack { + Text(playerManager.formattedPlaybackPosition) + .font(.caption) + Spacer() + Text(playerManager.formattedDuration) + .font(.caption) + } + .padding(.horizontal, 5) + } + } else { + HStack(spacing: 10) { Text(playerManager.formattedPlaybackPosition) .font(.caption) - Spacer() + + CustomSliderView( + value: $playerManager.seekerPosition, + isDragging: $playerManager.isDraggingPlaybackPositionView, + range: 0...playerManager.track.duration, + sliderHeight: sliderHeight, + onEndedDragging: { _ in self.playerManager.seekTrack() } + ) + .frame(height: 15) + Text(playerManager.formattedDuration) .font(.caption) } - .padding(.horizontal, 5) } } } From 208875662353b1ac279de17b8c1dd68bafa1b9a8 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Wed, 27 Nov 2024 21:17:12 +0100 Subject: [PATCH 05/73] Refactored fetching image logic --- Tuneful.xcodeproj/project.pbxproj | 4 -- .../DefaultAlbumart.imageset/Contents.json | 23 +++++++++++ .../DefaultAlbumart 1.png | Bin 0 -> 32161 bytes .../DefaultAlbumart 2.png | Bin 0 -> 32161 bytes .../DefaultAlbumart.png | Bin 0 -> 32161 bytes Tuneful/DynamicNotchKit/DynamicNotch.swift | 4 +- .../HoverTrackingWindowController.swift | 36 ------------------ Tuneful/DynamicNotchKit/NotchView.swift | 4 +- Tuneful/DynamicNotchKit/NotchlessView.swift | 9 +++-- Tuneful/Managers/PlayerManager.swift | 17 ++++----- .../Managers/Players/AppleMusicManager.swift | 11 +++--- Tuneful/Managers/Players/PlayerProtocol.swift | 3 +- Tuneful/Managers/Players/SpotifyManager.swift | 12 +++--- .../Players/SystemPlayerManager.swift | 11 +++--- Tuneful/Managers/StatusBarItemManager.swift | 9 ++--- Tuneful/Models/FetchedAlbumArt.swift | 6 +-- Tuneful/Models/Track.swift | 17 +++++---- .../MiniPlayer/CompactMiniPlayerView.swift | 2 +- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 2 +- Tuneful/Views/Playback/AlbumArtView.swift | 2 +- .../Views/Popover/CompactPopoverView.swift | 2 +- Tuneful/Views/Popover/PopoverView.swift | 2 +- 22 files changed, 78 insertions(+), 98 deletions(-) create mode 100644 Tuneful/Assets.xcassets/DefaultAlbumart.imageset/Contents.json create mode 100644 Tuneful/Assets.xcassets/DefaultAlbumart.imageset/DefaultAlbumart 1.png create mode 100644 Tuneful/Assets.xcassets/DefaultAlbumart.imageset/DefaultAlbumart 2.png create mode 100644 Tuneful/Assets.xcassets/DefaultAlbumart.imageset/DefaultAlbumart.png delete mode 100644 Tuneful/DynamicNotchKit/HoverTrackingWindowController.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 1cb298a..d5c9801 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -29,7 +29,6 @@ FE3189FA2A7C3B8C006B2D59 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189F92A7C3B8C006B2D59 /* OnboardingView.swift */; }; FE3189FD2A7C3D01006B2D59 /* OnboardingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */; }; FE31AED02CF50708002818ED /* PlaybackPositionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */; }; - FE31AED42CF6739E002818ED /* HoverTrackingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE31AED32CF67394002818ED /* HoverTrackingWindowController.swift */; }; FE37A0332A829623006FBA5B /* MusicControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE37A0322A829623006FBA5B /* MusicControl.swift */; }; FE37A0352A82982B006FBA5B /* PlayPauseButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE37A0342A82982B006FBA5B /* PlayPauseButton.swift */; }; FE3F67FE2AAD02D100CCE841 /* LaunchAtLogin in Frameworks */ = {isa = PBXBuildFile; productRef = FE3F67FD2AAD02D100CCE841 /* LaunchAtLogin */; }; @@ -128,7 +127,6 @@ FE3189F92A7C3B8C006B2D59 /* OnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = ""; }; FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingWindow.swift; sourceTree = ""; }; FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackPositionView.swift; sourceTree = ""; }; - FE31AED32CF67394002818ED /* HoverTrackingWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HoverTrackingWindowController.swift; sourceTree = ""; }; FE37A0322A829623006FBA5B /* MusicControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicControl.swift; sourceTree = ""; }; FE37A0342A82982B006FBA5B /* PlayPauseButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayPauseButton.swift; sourceTree = ""; }; FE4414B72AB4999600A73246 /* Notification.Name.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Notification.Name.swift; sourceTree = ""; }; @@ -222,7 +220,6 @@ FE1A62FA2CBC1B09001C13CE /* DynamicNotchKit */ = { isa = PBXGroup; children = ( - FE31AED32CF67394002818ED /* HoverTrackingWindowController.swift */, FE1A62F12CBC1B09001C13CE /* BlurModifier.swift */, FE1A62F22CBC1B09001C13CE /* DynamicNotch.swift */, FE1A62F32CBC1B09001C13CE /* DynamicNotchInfo.swift */, @@ -598,7 +595,6 @@ FEFFE55D2B4FE051000887B5 /* Comparable+Extension.swift in Sources */, FE6BFCFE2A73A89600D3321F /* PlayerManager.swift in Sources */, FE6BFD082A73AE5E00D3321F /* Track.swift in Sources */, - FE31AED42CF6739E002818ED /* HoverTrackingWindowController.swift in Sources */, FE2AEE2E2A8FBE3200E8D576 /* MiniPlayerWindow.swift in Sources */, FE4C92172B61459F00FF79BE /* String+Extension.swift in Sources */, FE6BFCE92A72F37800D3321F /* MiniPlayerView.swift in Sources */, diff --git a/Tuneful/Assets.xcassets/DefaultAlbumart.imageset/Contents.json b/Tuneful/Assets.xcassets/DefaultAlbumart.imageset/Contents.json new file mode 100644 index 0000000..8491d8b --- /dev/null +++ b/Tuneful/Assets.xcassets/DefaultAlbumart.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "DefaultAlbumart.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "DefaultAlbumart 1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "DefaultAlbumart 2.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Tuneful/Assets.xcassets/DefaultAlbumart.imageset/DefaultAlbumart 1.png b/Tuneful/Assets.xcassets/DefaultAlbumart.imageset/DefaultAlbumart 1.png new file mode 100644 index 0000000000000000000000000000000000000000..ca4fbafb559692cdf6c46976e16a7b79c8449b8f GIT binary patch literal 32161 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 literal 0 HcmV?d00001 diff --git a/Tuneful/Assets.xcassets/DefaultAlbumart.imageset/DefaultAlbumart 2.png b/Tuneful/Assets.xcassets/DefaultAlbumart.imageset/DefaultAlbumart 2.png new file mode 100644 index 0000000000000000000000000000000000000000..ca4fbafb559692cdf6c46976e16a7b79c8449b8f GIT binary patch literal 32161 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 literal 0 HcmV?d00001 diff --git a/Tuneful/Assets.xcassets/DefaultAlbumart.imageset/DefaultAlbumart.png b/Tuneful/Assets.xcassets/DefaultAlbumart.imageset/DefaultAlbumart.png new file mode 100644 index 0000000000000000000000000000000000000000..ca4fbafb559692cdf6c46976e16a7b79c8449b8f GIT binary patch literal 32161 zcmeEv3p|u-ySJodwGav+Ba&7^a)>ZfDN{+(0S!?UlW`i7!5~>V#LO%bg@~ynhQv7K zR1T9fIZF;R&JtrBW*B_;=&<)*@4LVKzUy84{oeiic0YbIp65P2_jBLZb^ZU>b=`%Y zJp*gozjEuPU zg72HSc-Bd9ZQv9EztDA(KfW8R+rzbf?K(FXSMUuko^NH&fKSf9-@q@Y&eu=wC*0pl za7#T||8L(pMGe9__JI#R*AtiAxwu5-Ilt>pp4&Ce#dVnLGs`=;hs{jEwAa<5gt5%J&nh*+?p?L%9OWvuU*efVB3v5UH&b|vi&W{k(Vl(2@z zV0qSl+Je@_-gnb(RM+#Vb(<=aEzpkH2t$eshv-(>Cdpa8SjehM0V`t4TLJYwRS?N(QgKo zn{uOa`n*aeTz9EDvumwV@xN51)Jm($Z35g|KPz?C)UQ~P;%mK?VC2?Zw`>SMYQJEd zd-V<0#oGJ_am$0*8yT;(W8$N&$>A0SUB=M=(YGZFGTYv2iKT{C*XKqX79;jec;E&4 z!b>>c!!;a4cVun%Rf_Q@i=$fi9kNkdL@3WWsJ6ejbhE;4mTWoRW|MA`JsMI!iYjPL zt28ItH4DWxcetgRg=HDkC(CIPGl$M)irV60kHZ}etZScHDOE{mgyB2?)DDboQ}QmD zU#U9xYqDCml6x^B^10VT_{k^nEcSjv#DSTfZO~BhOI}riF3J{$o_TTevl%} zr#sv#cutpn`^nweA7m?u&#>X%eP!*Z30xqqr|kS*C%|b_{y=9CG40`PzOO$w!G+N> z^!x9PT#@8<*2*0i-TSSDE8IK4g+s1V2fp{(8FX6`@1#|D?^_EG4+nz_0#d>MI}Fa0 z{_kx3@7nmb-Tq~EN|{0_d!|y9WKP2#DA`=W3w-weqPI)=3Nc#x^;4! za->mE7}if}jLmFv9ptTuc6l&}@KVwna@&W}@Vpg|8Y1Ud;jfd18}RO=qUiS8tn{{? zE_B9&jt}12(d1Yiod)s@0--{AZR&1MDKND%oES21clh#ItD^>WqgbjIQU7?y2xyTM zV|yvBAe&~XnE7n(&uu&_y6@bhXQS930{sSexpi3mj;6Yw)VfW+?CJg35q>L5=bjHl zkNdh~(9j;wttw{9_G|a7GAtYHa)>=9MV1Be^+@}p1oFKGq)$OF{NyLyx^hCy zOaVo=j)*ngPw*L`kAHgOS=uU{Z)n}0AE+*)Ms7N5YY?{E!l9w{s6J`CQmkXD_W8~H zWV;;X>u1BKmDF2fo0F@fV>ty;|IC6P5GjgMA$v?kL@e&dO^_XO*y*HOMi~p}-J5h6 z`vrYZtIo65@g+j!`55~NY60x-Buno`NTry6+r6BM!o%SxuhuYe+WR(i9fKsA+16P2 zuw&-Mh;Mx8Be<79Y_Qj~C3QsbL_F!Mny*iQRN8B8iIK0}Zrp%r&S6J%geiq)M|Ydn zNBdVF(j#S%XwlDy7N8BYS}t|vx&|YMr?S*PB#im7SHBgRr08h*AY!BYmbBa%3^mRPMEY1!577ddF30L+f$hz(7-yh0FA1u zHIIH^Wm-#l_VkAIu!-;9@QU5dZuAVPEXaCu5bS!k&S3?m0;STZs0B{p&a9zi%E5Ab6}CbL`v09;Vj4qKN5KtoZ&+=B}H4K zl&YKAz4;f@hB^?2ZtA56ojFC@|Jg;g9E$O)N;jn6S4)m69o~m}@qpH4Y^kJO@O(I@ z>XN?FOsG8!O&)yG+=-0WXgvzhMrfKmFRsdfmYyVfh`Lr5sjewu&rfawxPW+Iy@a&}e*y%CSMSXYiJU94ClMkek(yZHHzjXu$1i_@#G>cx#s$e#**3t~`Xk7AMb>go5D z$kUCj$8?BSA3LVr^?$y*dprNcHA5w~nnrU2(p&+wnwT1T%b@&F*SXEBf4s?Gm7wKG z0ncnT53h9No>-#*)QSIVP$zeu&3w9#pGLxa(m}82$7-!q~l5v9eQZ92?E}GPS@1cWxddkHe zUK)@rM+V|$eO7|0$6y<_;&nYLRg>b4Xp1mo2-Rw4KI@j6xN#9~RS)0yu_*fgeI*?E z3_slJ=7n7|aP6$lNU2Xz3rXrVeH$;mYoQF;`WZI7mDfgejii2<_CkEvFUWY$Q^Sf# zggq}|DhBRV&9%Q2lh_|>?@zKB{LMOS0edN?1Be82ELcvJzne|1jRdMbv8cc5GC@Sf zc|1&eMLf^><)z5PiPqWiFt)tM#q3>uOQ3x(T*{)X51)P8zG@XulZ5-D?&1?sTpD6m-{X9JB-=9OxtaB#N@`lHJgXPJ z`)mVBw@s|eP%F*uq+dbUO#HD-4PY=ucs=AL?1Wj>xWCoSs3k5|TBF^nM6`GV@00Dk zlKoFQX9g{poI5DUn5I2jIev~jA_KExW9YOYKWUZvzH`-ry;?}A{F$v8jdqNQi_jG@ zhU2F$>=g0%li8*Jz&8&wXb*MSmDX-O?)ncPTO${nw@ii)6J=M?XTz9(+y?wF7Vh6} zslEcBS^d?`x{dFx-w4g3z!r^E6J+e+i&FcKrb2rHq%BB4jN~Mfv(e)5KNFh%jS4u0 zW8Izkz;n#d?fs4}4qTo1*MO^k9WN8xTNhl9WfcYVa#y_GeNeq38&drL4r~5dO7(Y$ zI@y#S{S)6l;SF>X%l~f>>tBFw4Wl_9tqYbSZK4uGcY_MGJqHDy+J7~6AxXrR=ReSy z3GQ9OK=H$9C~=LLau~VYNLXAr+-m-~@yW<)x$|t1`m$SA4p%gxQv<14-oR#skkGujk}4Z-;(ZSKrJOTOaB3 z*6eM(SL&4}W;QDTrApeSJ=j6jvu+=n3jv@O;LdZZ|6#(RF#KC06VNXC=nfiBNZg_g z9#%z)bBG=sIiyj%DC>XnGJvfM&;tQ(RHy*G68(I^r;kqC(2V2H|`O5{sD-cRFnVV}@Mq%v~<%3P+u-tugVu`z6w z%{U)k9w}z;@p*1;q9Y}-Z*^rsVd-PvN-h#Q``P6&uM!N^s&(V?%)63Z9ZUJEjGS9N z)^2s~#SbUErU&$i+NvrqljAMo8izX^er*Ix^Wneks7=F*BK!vGA~5!Jc?$uyf>}&z zeosm1nPlusfcY=H>C;;tGxqmh{G8o*hStX(J_yl+Koz5LGmF`cE!iy6WiN>QBjWV5 zn13~TedzY7lcEb4bJ+|ITl4;Dd573 z!A7Io+o*Tje4J5fcEIC(Eu(@6h9_x-x>U>XMnuKM&9PzP6nj-_yN(&7L`9pRSK_nq zWvs;*=6g@@z8gvpYTgKb7IujNKHw+1FxM4*S?jBm%L3pdmv_mghgFl(L6ZAklR` zj|T!o>w}XwZv?}7`UeSflL?It`lpZ9!_k1oHsqhfscWC%pQ90fz;3sAiE#=A@f~$n zqa9vAAgCMPK=*D+YLXu|{n zykMGkxVv+$G5?I5ASBiiT!>@XB)C^s`#JOzbg{_S@-e!O4Pjml@(N3-0kE0rr0QtP znOE8>!yp#vbIQh*_vOL6E!?Whhl?JLSh~GVlwkfT4ZVXvdcy7QG+wS~3&WuC!*@2W z4|67HGMkQ7S}3Ax>kcSTnW)(FJ6VtdWLD(N)ranU*I*jcaA~M|SEQk|=18UPNaX$H z)-s3}v+0_lvR7xk7$e^B%>4QF{(}Sh_mv6;uew{+xhrdT8S}Fvf(4Co2P1>)y;M7T z#)Az|Hrv|nwPTY~+g=W}V>vWJB!@;Q6OvXzLx=?-VwbHjH`I~JuQa4zb!QK)w7Bjo zR?(35TiG-Ah;rSF>7(_lih^WD_xdRFTtL(pY;<=}{iF2ehiU3degn&bO)%W?aJWY& zO|Fx_bFZ#_N%e4Gz??Ss6cc72J1 z$LFbwHJ^2Dlf}}@Kgz*T$_UDStsG}v-W;kP3;|0__yzbwbBm(jb4m})WzT5ci!qE= zbDQBi#s9k6wxkts7QcMuEI!t<-d?=-3O&bd=q}V=f85LQQRRcjR^>;m>c0%JuS^v= zSClY}d<7h{}u}> zNYf1|ot%nX&M&y#*}1U=c_{z-ydmDuDD4oH(;_l(gH?c6!-p9q*D1KJj&4bd9|)5Plxk0xBca~qN;f02=|N1%4t z)J{faV-8gFrq>}GUn?IJuE;JmZC=`w`c=<&J!>GmsD0*JeCMqTzR8?fbKFZeH+Bq- z%j#ug9i+XXJuNH~EHX+&L$h{wTZ&(?zE^te3w=^NMVFEdooN+gr1M#qq*g8M*$zzc zeZEB%1xMWja0ar_&gx(tVsl7mB;~qQ2g8F0k)92M3066bhk3RCs?v8sge7N$xA$!| zv#!hDjb%NTm?B=oOzGZJl=6N>d!pQ>%WF+O)PDb2v?TqrS@D7ibQ5r7DYG!46f1Rs zMG-T_QcoWY=zu=g+qt$q=`8z*Vq=1Jc8s6HLDRO zX7)hUV+STo-5h6+CNPMm^(m-uhjxc>b+QHuI;GDSMH8}x#6))J&4jooFrbd=5|-q$ z#hOYAg`S`%)z~h*oUc^h&*l{vS6h z+62^y`kG5-xt?N9_;Vz1dg>Q4sj z`4j3p(6)M?k^GbeR`Kou=%c^sKop~sLB6UGXPPtBJtAi ziJHR@gfv9Y+LY5k`aB|a9tI8hGc1hQ=lSoB+_^`;f!=Z7P}J@>j!wazm@B|#lH^boaf(T_uS9-m+hrdaQb%q zqx%W#%QrSr?Mo^$n$L=nK!}lzbo};?5h4C#*cXg9Qzc8&8vV_dO;=nUYj$|saeoxX zRC@)r19@m`BRy2WIw#$hcflr9YhaI+@}-9N)e3tw-tQ)`&Q176J*}gyV2%-mN;PKc z5BA0Hb9oS@GgrssY+Tj|8B*O3q#%fb<6-t1(a6I|!>G0vLKnnST zUU3^$!Z3AtX(1&szfhuuQbWgpZ!vwl zW*;k}cj>G*!|d5951(P$xz__lVQCUBy+zuWyFvtiU9{s~I95jZID=dh)}^8r&MEPg zVgAr7*A0B4JqjXZ06Mw1<_C8!my5;uuP_pg`}~$jnGR9GW!Z{CNIjQaHra{AB0jZ| zjv4x@GNXT<{=wTD4HDF~6Xvq;i#7=w1GNX+Fc5ithIyl$A9=1;rSxWY1jIGL`oZA| z?fpv(#udkNzN(F}(?f9%Y_`b(b;9*E#rUDJn#?1skmTTzuHd9}klK~$Jw?PG*bfFC z;?9`-nCGlH8!$;X+B7&~q#3d72i5b33JG-f4~?`;KokAmos1<(Zx#4i!L5N*FXy?t z)Km@&o~cULxmFG;zWC+So0iPNXdQYT&zHp8iLe^mYtkK@M^P{DAPtJwADbtpvQW^O za=e4VnGDqrgKPwDdd%s9nw$Hlh}|O{4x`dGx-T!KseS;@Hgrka+JBiGhZ9b+KPY=v z$J0ZRICAHGy@o+-ymeZVPYC^m9jWRB%{MA);T@6rGu%sTQSFP2!p5%O*@#v1x>PeO z+8a%3SP@n&z(>B!y)1S)X^t`WD8VbrzS+h;BjI^Wx;4JfxqHA2<`5wo^ z)wf)DW-VPF(|S?>WDj3M?}&*fH!8_hdpN+HNEV3wzujnc3(LFUz{hk;YQHnMz)^!R zjdJDcX6%&y4J?-LB2g(g{%#&EYle2$Ovik% zsF702P_2YRgz+B>FcTr)YjpjsOx9!zr1E>X)_q#*Ss1ka!?$QHBm8;&Wv02|ckX-* z7TYR)5B3_=(r6_R$m-u>y?$32*LTL`j&xt_;R$TLUxUXSjRr;j35fZhs?XZpKC1;- zh#()Q0HuY8&EqmXAn)Y`Eo%Qu<@XN*Ou|RT9?$+qd_4;5V2RO`O5Kb`z=k3xxn4b! zvY0s2qu>O1+oDLQM=fOS|j#+o8DgcJ)&xduX@nQI!%ng5gp=ux%fDO>;e1 ze@7I?kiUfsDnu3&)PxxQb)5Or`NrJ3yy;y#I8bg3KsnLkC^#dnp226Pyrdh( z|0>je%4@3zvpVaU`xJ54b?Jp_V$TEn-L8o|K=?_EG4hqyi0*(64C(C)R?V9k-4?{a zMJK#oT7w)e?JIwcP_+32aawTH5Vp~%UlgE+mm?Vb(DDt-uYq1|2%+V2_0(AOpAAH`W>oDm~~ zGA*iAV?#f~&oer(gTXu6!s9J%pH{QT5(6zCU)T)}7s?qmWVSWwRbVb;o7z4Fk5Gfc zL~YYm3;4L@#p5@H_nY013=T{DWhoHOj13|dZC>8)`I|_fBfBo9Q$u1rc@EletS(Ru z_y|~1ie@uF!3Af^bZ#nLWBttROG%p>*kMUtUys^Z-_M=I^0i z{}K%Wb~ktTD>%1z2BCot^hMc|znlBj$io;ui@r@bx_7r}cCjvq)6E-FP}!%AR5z7e zm;o`pz}zl+1)_n?oqB4CqKDip{AS*9!g$GO6#`=Py%Vc?GbiM?t?Dl;Uu@~J=UzA} zlb90UqEz}N4ut!r;e5P+b^siml{p9vPS^Z0WU_fjffCH?DkqG%J3j`lbaOD5J$RQB za_m5}k|sAre4M#2#)%c?R5nRtDm_4~!)}fJba=FR5K$MJy>TU0-rhiehdOY{#jl~Y zhVYGg62q-FXVz4Uy+NQfKj5qs)*_JAh(`!PAU;N9Ep+)&^AmV^JfhCYs6SzoYsoMp zXDD-W2MA0(gam=B+G|nD@!R>m|Bkl3TK7WBkAT2qoB12zN9A-r3}UQWmiG9QYIU8< zZEq&%ICFRG`YrL`B^|KP5i4`&!1^ZuFCOa{P9%SrRv}=agORXS%OG81+;9T=oS7e` zo;x5kB0h2{W2%6!M=_w=-M&6$X+#$?lxnA*(e{#+g9rR~u9vi;V!Jg>#l!Mmketi4 zYHUuHyhiSOu)gmNqZ4&&E`vS3aFSzpqg4q`81+(S+PatS0~fq+O8v-^ z>HHO><{9lT4Ef&KVFI`yy@T?jWlc`Xph&p#zoiVyfs{cwMO9=A_lnZCfPo}V)ze@= zs(f{06nR$_YZq*fT)&Sq_wHBr+$t*;dwoh6y>IyHwoGrsZ%0t-NRQ>5FA%(xnO6R% z%lIjj)1OsA(oR4n4{)H}PvLm7j1&D9$6BWR7T&ZNGpX~8Mi{Kve|2RHqyuZ?#Kb(3 z`E+I09h4Hpob`@7q?Dm(C3Jrk<*OMXPJ=fR%>lVw6En#$wT-4f7a*>nx*e&oJT zL0*1kVIE>hbfE(kdw6$$kemp;hv#&E24BU+JNa%x{5-e~?qt7!(uwlX`W?T4x4T~Y zX5V#@&duwbl#?I5Sa#iJtFlnNq#i&7?-1Q8H?`!%?P(wr8-|pg-Max$!qr!bMjDTR z&8?#|R`fWHQ|e-mm183h+a~K%GmWv;^6{qHk8*?$me&wa{{upe1OqVAW_eLPsV%8=}Gi964VuOm(;wsm<56Xa9+SpY5luuVS04eUkzp>8)JQ9DE zNn9AQcM7iC=bJdpmp|~(-tI1+R03B$7*1!tw~)~W>-7y5a()qd>@gdz-LA6zLFEc} zKx$>oZB4OoV!@NF{-3HMGA(beJA~x^aeLn`*C_wgmJ2-5;&8bm?g9LXF77;dx0N~* z^nAo7<|Wz*_{W7dp1nMnoj*&u1U6l`^2zeT6VlDM-p_gth;(Xz754^;?JeR-=rZC74`@WwhXqIuEq}R zMw0ZHk*358UEfPM6{R;A!j6 zLnTFFHdp4^ZgI^<2a4);B0j`Z@GoGz&gLm zIjx1xg;ww)MtOQ%rIvr5Uba4crPh$TB7m#xgzQDvx{oH6F&m`rfIXrwW!G2j1KzW) zAH5)tNL>ap&N33*F#O=*^dq-U1WYhg=!d9OJ_DY;Qpjg51rc+o`0j9CGj_MsBT!8a z;@ju>tzNz`sAk4Jd41lvZ1vEmRn?+7y=m>66LS4?E+;_?N@G6XyU^MMit=hVmBaxF zo+sa*CYd)h)#hRhN=*_1Jiq2}U*Q(yTquXw^d0%$g&ybC!#4K5J+p}!$vh*_y2GVq zq-h64%4L!Yp59U_OYBFMxNG@<`*+21y8l19Eh;>{G`0DNHtA&9$XOBGdS1@f<>Kw~ zL`!n7<&NI99Quu?$5CqL)zX>Gpm*+aeUVY2>CFZNye&ulGyxq(Y^0d{m^^;4&^x)3 z4LLc{Wy0Jgr*eOdbeDbrCJV0jy2SdM%5sH+;r2AYoi_b8&HW}oAYfYMCYH$B>#PO( zq{fnds$$XHN6!ZLcxnpepDGtBJ%bS}JvZtb1@HUr!tYTaxS8d}vDkaM;wTR(69citO71v7u20)UiL2Hm4+JEX7@LH z#Y^DjjU5NC7@nTAlb=Dv%4?{@1r5^d>ic~9Z}?V`B`V%|Lr&2!x-~wfpXx?#RL_`r zMJ>#@slf;j9P4TGy0I>))5)=d!p7W=dX(}+_ZeL`hr;QRxCIkoRRU+|4qf4t!+zL7 zuM2XX7rI8^Cr5iRQEz;@PB)5xM>1sO8%tMO>~&NXFoj<6cDpYo3S-sD1sOAJr1B66 zi?WoZJ*&5Zy?UbI@%Jrysn`zpUP8zR&>A%5NoX9u16{DJM);zJF^s4=`jCsFNDX`ExA{ zDybU%_`Jx+u!uk$`DNk&avR?fMFSJET0v5+XUQ|*nwWWH5q9yBS3><@&^yXdoszqj zPu@}~!LWKp$jfq3>f9YKl4#?5RAr7d?NLt?2J)NEM>z(jc=j4?*LqQg@O9syAY{8R zI6b5-@~<1dUz7dnkWIv^XOxD&@;!Fyqs{wMMBTsU`l(6Ga%^E1`7;ty5%ZY<%;5!* z|H_^Q&C*FusN(3-T&U0E=CiziLj{m@_*ce3KtOuWz14p0cqJ-@9$~k&0}-y0RB+5_ zKJ6CB8P6b#TOV}~js0vkiF|BgiBc_z4w}o&Ar=#;jx}s;)l=i-n4gDF%B#n`NcFMPMc8jm!FQ9?%~;P(KIKz>7_$^$iPA8Xo`ueD zhf`#51aMn~&v!AXB@F}-MQ6C=dmUE~pu#fnJ)6HgIE?L7@t^U|T&P?s;a``ipEvO3 z;#44zK1*5xy?4Kv!@BCA0YP7k?+B1SUvRfGBR_ot+1%L8z|s%v^Ayt4KRQ)uH4Rt zq}g0cUo=2jWHS1PNWP*78q1X(JM`nhjlhLiq}2X^$lEG+V{~;n=6t|*aM2E_-NBg) zs}p6oiOuT}B^Kb~EuYaMG$>FkX&Q3pXu=gn3nKuVUK@wV8Ou` z@?;s7y$cZVA%2(}zf2fi$pgCY^L&#R4OI4#*#Z$>9*%Q41M}0l zE(ovlDdId%jO;`qxErjng}=(P&v#*Ve$vAFlNP({3RfnM0|B+ytv;`DGle&V8_4-l zYpTqweTN#IrC8UdeOEcQ8t+!=wG~>+2Yf+^Z5YOIed@q;=G&6^R7Ks5pa%k4%2x$U znDYr4Xo`@LL6NVpnTE}06=vbUI{F7s&RV)GE$UJO9>I#QVp}*9ibL+5RbZnx*D|f9 z0vE1x=W%QW(bnSUU?V7RI!4>lmzczF5KbH4fZK3O%=3MmdVnMcRp>LVy#0CDNzKbU zvY+YTt9F*~Uyuw37OR@Lx_IX^jmP%fyQevjQEf8;3`pRZj6|rZyAW*LHkj>4?*GEh!1(Nb_3!tDXaI75azuZ&*j3u3 z@CpJ|fgMUd-smTi|1)Q92gYA=-s$eLi$6OZpq|=j6eJn02-%`y&m9Un;;A?f`tcPC z2|DVpry+p{5JyS4kF&JC?~73Iz(={!yHBYLGgVU*Cmz!N%Jee); zxNdP^R)fI9JQO!vc8g0y6SBx>p#fJFAy6_k!9lrn*Wgyq_dN5)G8tAC7jgN?^!dq; z_vg0ZmLX<+fwo}(p+D26d|bFa;W8Nx6}*Q*;6|P?dpqup&avL#_|gHavfZW`27sr( z;m~V1G!}Yn& ze}l~T84q66ryU1en4&yX9a*+4>%a^Ef7Te>RF^Al{y?;8T$wZw>76taMndKpnH5)a z?3Xf#_+t#Xu&*rlPd4yvn#pt17d! z>Y4wlX^m!QL1C7Wh8a40!2L=lM;y()_v&lmLGF9ie5E4nYSCq3Be0Vd*d+jd_vgF4Eln>s2t3kzTyr4#A~#m_xkQdT2i2y%x^$Bl z6z+L@WLk8XuSwT+NEZ6riNJwjn}iYht>|z}+_>-@0nx%?OxP<^d6M{LNO^frAZA^d zoh)$G|LmlUJSwn$uwiNsq-+k|HGlYcIX$kAZTB%b!;agGBd~t@t+>LQ8{H-w8^$C> zh*QGMi*D0pgD#iec@P7(TS~k)`YhQh(O}J--czu#2ep2wby3|V3=)C1+`V8lB6SB<2w}jZqf-MSxhwYYI zxh@4gxP85=r!<}>4l8joEHl&MXvOc-c}{lA>LM=h)a<12!R>q>&ZJmAxJMiNn9Bp= zq3pGCua7%)0R2fj6klB9zo}xg3AX8e+ICgE|AwW>NXnt(R7{n{UeN08G)X_h>lPUq zw>ZalWt4ZNu}{fBW{Uj~|`irNxz<0%c9_WIJjH z*e0>UE4~Qj{ODz(tRxU11yW{-*EA0p6b=$xD4#u!O1(;QF3z zGqYv|-dXU^&v;$VOxWaaR&nbEZ89pqaG=q}k<$7g!?^$cgv!`9Na*c29Q;u1$4_Dh zr9NhbpF(?-yQDbQwzg$(8l8IttGfrpNU*-|b=p;dF+0y)5_qOrfy>7&%yP(ztHYt( z)Zx9mT{)+*IhXq`q*b{PD>93!c#kdnZhixc7b{rb?3zD@(e7sUQ~|5QAzB4K_R~Q? zmC&kquVmIzc#qM>gGx1SX2Pdumhg7viP{+L5!ecy;HNV*Bz}27fb&`c17GDSRV4mK z5Dcw~@nP9!XZ(xkU*+MjV^2=kW%sF+@;j zF*l(sab;G)`ja`Ku||g@5E=yD7rO+PhEZK2iWcNNmX<4d;mh?8CkXoLj-2ocUk_Wo zql!};YfMK+W})aY#E&^JYm|(BP<~KETqs0kRfv-8utX4i_$n~R!onG$zeb|aMG^1SY<`}||hct?0gt#ZY1 z23Y6v(g&~Wg|ur*5j1^5vn#X1HYV{P+8HocVkwIHaBbu07W8leM}jk&-%xvjg=Vq( zh{f+k*<3ATb(#w0Y^a(n_F!n%ln?je~AJQ`&c?3<-D{sRSH|)VD5j*R%aaUpheBQNG&In z)HK8VsrL-j0UHg@rW!quo&{F*0Ol#tD`|-nyTdeYaH-R@`js%7EUfZ8(SN02b*NX1 zK(*WiMa%DL;O{%#FT}^J^Q#~h4*1?Hy)SI0#a=k4`RgJo6|)X{uKevqJQMpa;>$v0 z_HImty(VDLOAETpx$Csw0Os2^FZjzLNkZQly8Xdid*7TOxlJ?C0i`iC7WST41mcfEln2-pb) z0XuMxY~BQCZCFrUkxlp48QQ?5_yLopO|{tjB*cK0>AyTN=Dr#3c!&z6eB86jfUUY0 zzFQ||A%eLHwuXP(z z%}7n`b=n?4;d7iQGFO*`fcXH~*;RpV%{zaf2t!}yJa^0HX`xuW))%_zIdug6k|>yJ zBv^`4lOe`E)~mN_c+x{#nK6?>eWzaRyq6bEwO%5uEQ?^ZT1yuZI-5W1{1nguj@c?n zWN^gy$6pvd20tB?l22mBz)Dj&)>`mlWC3y??G2n-6V!J~k?_X;8|cN-_2#$XD_@8z zR9W!S-?{&qw?$N+r4f-Qd8Zzj_;a(HO7T0)G^m*+9Fd^eUDws$v*yPzA$;DrP-}Kj z^Y+726>T_-)0%uX6_XcvyI7Pn@p#Ai+vWqyqUU1zr4R0d8~XZOg*|JvJKjfm*TjS zXgl2dXp+JqwG)0qC!j~8SJjtl&E3GT_Z+*QWCXXQha^r@8VzCo zTTzuP2&@}&l^Ob6j!hS-=S^IGk2@hH=$BmGAG}*G16e_U#bk}X(yHbu1PkgWT}nsX z_;pEf{NbVy-xb!#iW$Au#8i>Tx|b@mQ{v~0TTPfI?6H<3G_h{+VBGE?2(>j^1F#C( z>q?W0;s?r2LxSWILVSI;2VjK4^3G%5NC#-S&=fMx0B6;1R|pT=!3{zgQ1%pBtqD_b zTt&Go4}^*pGp#n3PLu4B&j64Ce0w=voI|jv2 z{gIf%MaV^`2g=C~`|~SZo>yd+f4dKSJ0oS>-1H<0bKf18+D#R~j>MBd^{n-~KR|7r z^}zI_{kyhUD@+F2hK%VSwQLIkl6dc$!3;XE2i;?L|IAmh*&a(I#^HCqJbz!PuRzEs zc5Qf9xEpz%ukx8LIrNXXbx4BTwF$$Ski1RQx|84Jhm-f4B3=3<&Zwx^4-k4d?RV>a+F zM`jvAVhEn+7C@Ao*!Qy*(A%Z!^DejrQ)UJ_AZ$HwfJ)02)C~_ol9a=hnBj=b+-G_< zQ0h8yGi~-`VQ*7iLZBg#O{fZQof=lsf_4?$zvv<7C;(qSsr!_)%+i&`nEVNE?$$yb zT+EAx?AYhgVkIxyYC1d|v?VgzGH*C|^-?Go3@Gwcm%b8TZ-Dj3PEjb^@MEDsm+q3_ z-=64B_d+CW28pLzUg*J>*tZ+HpnC~|E~%|&?&MGOpm8)sp*j1P&4^2F_mVoaN-T*7 z&2a5C;AG_DD*BK_ae+gQX?u>%s0Lo8W3>Jvk^FkM4PB&Eb_qCNp~WCutUQt3Pymmm zxIC?Rz#q$x*=vYZv%EkgyW#%xCZ2E8&qQMj3|ulKNDnkf;@&t~t%kRI8L~mL^DL8y!Jr?+%ntSRNYCYJ7j>zB|Z41(^;b!i_5kCAX$QDQXvlkzNh* z`btg1q|~*8G4m8%l$$dBGokU93KttTo6(q(wu9VF_(H2OP`9RQp0cZu3VOr~3V5{- zf}}y~wBrJ?@%p+;wh0>AAO^m}AtG@1$d<;HhxSGdpkp#(@JY3HMK)~s(tUT%u}-4e zNH>B1j_MIh;~fiw#vpN$N9oQ9Uov%kbN%TOhhoBM8msJ=77IuW)98UUP{512aCK>T zA-&QHJPsCKt+zuAUruTioT5P?c~E7ja{T(vZujH$aKG9hgT&1!ujAz=hT^PtN5>29 zMm->F<#HfgT|#{aoO!Y9ibQ=C$H(82xruREQl7Q)S%UJcG|;_uY0od;^Q%D&1s22` zU2BtTCuZZb~}z1MdvH1906Jc&b80mkinOvl~BMMGOuYUtd{ z1b?>eLTT~4i#Vhvbua##bW)L+xTV1lStIG@J)-i<|yCrZ;zX+zB2fDJV zzKTS+*8zAO%q}1#rN@xHUB02l7btCbX7)VYVqf#^p4yc3BimdaS8T&!boKzP)Pvi2 z(~z7@da!iQDoX; zFVJJo*j3`yC%;@#1Sx8+`vnY%0nY}?9B2cI;!Qa~t?mz4;+UaOe4yt}9tWe4U-i_% z#dRW`fF<7NAIw{C@$Cp(4(VRLM!Ls-<-N-UI6z|H2qT&^iJWGUU+Q z`e0&jVVa7rfAcPMN^;m79h=_FZ_N2;P87!uX?2&bZ$$h&hY9S(Km57?KqESUC$jzD zVXV#P|IWt$M{6U%7&we#!lt}(3@YH-7LIN?oa2r(e|P=^I3sX+c6J`-08-A3T zANyqD10OYQXiItWrO2?26TbiMM9zPI2uQYJA_SNiStoj;)p^tkhAw+8js_-q6+h}$ z1E(Yd%kFAu2jv;t{66PcC)_K)qCNaTH9dqAC~1HmW=AHTy;v5Q7DHr(H&Z~xuRSEtpmtMrqK%+c!1>cev9IZFsTqtqI6o6T zc#MSA7hADf4!Qra)*@1bJi~vP=`$yH##zPXr(+F~^f(=TZ$ zj9|m8OJeRh={WfqEk=UV&}(R}>3XFJ+iLlSB72L1bONdEaP6YGTd3Mpm#OlEElQ*5 zH8k3iTIZAdpmwnn!Jm^(_!qBw)S~!Z(s9OcLQPs4WPD}ONFs#}XO()V#vBX`lD!nB zOw}ItjhEEv1l9|aelB4>FuoxP5XH=$P*{e)9|*JW@5jzk&-9z6@&3{SaZ|*dP~Qrn zZgx;dg+*Ug>sZp-xmX5{)25k$gI}lX(79{%qJpj8v!pekN|@RA`;$_fDMYrkfLDOMA=!YsmF95z zxLRxE?PsElQ$|zkwKxZ!(F4G#caXF38$q|H$}&|>$*ml>?#*CgyyoVOmecBK8z%J? z_I#w>73heJe@_}RA=-m9XZ&9~*Y(yIgQj2JjCj%0z_3v0g0-BTZ6B|^S^qxmQxPHZ z-Vba02lBd$!QQ+pr<~VnU0b`O=vr=nWW(5N!UFwt7iH+t@o-R1=B!V`G;7`CYzAr1o%8qukc`)Vo25e`dj$_CvnNtwNO! zHZ~|X_hM6AbRxMeqZ-83^IWwDPf7Tt3JQ}MU=Vj*l^#a#{>@q^%5aKBT&c89b`F&v zQcoYsN)1uPU)wQqh=d{e8ClfY>VfpHgt>((Q1Dh_mojWLmcz<617DkUsoCy<9Y7Ns_LYG6-oJk06w zfB_!LWt-scrt6kJWXaZ(oO38FI@3^%zAQK5kgfs#_kaUnnS%c<<;VXXKvCr+X`9a+ zl~Oo0nQIWI(b}-m?L9c$DdE(9R%eNUP*pfcX-8%Ub$2Cp%s`>Lx!*`#DnEdF@p#!w z2>|-gGG%!Ct2zk>dw;81aN4fytJ(;Secy_sSr0dTcDu%3o1S!QeuSK>s|+$Gt~Nh1 zN~)HW`jjM(+E?8?x1AVPuwbHj0t`&|43O|YCZukJB1Pz+Cli}adHLiT=xgK@^l)!BL5qH(04jXzc%~?plDFIX&=B||HqdPdSHc{v$ntKMQqpK^$Q&O22j$M&3$9NNMjN+7Ih2zur+o2 zB58;lj(j>>>s7rOqI@ zWtNI+>H7DC68iPapuGkI7^ZwCMD@y_HTb~5GJ!L8@xn&#{SQnW?k#LcDO#Hz+7WQ#^;*g}nscmfo z$2|y1&OlKT(2UK=zkk1S0l*#B&_?{@FEeJvg?r_Iz#=-a8#j2r>cZa1&_}IVVDxJJ z@6qd_Ml%Ud7G!ehCBS!1dcLDFrvLA7Fip;~@P1~}8v`!D#F{M>X7Mdmlq?ixQQbVy z4`$)9iyp;%35wx4q4`iS$1bJi4S%7Ii_FvFW=^=X{6U-QEht8weR(ewOyR>FJ&xK0 ziZSu5!!)qhx&WEqf|$ZQ<>gBRjNnfRt#+nv zWBC^^@?ZTPNBrn?NRaKRmWw3*ghihc9ht-v*&9Gc+0!g)>w z!9B=?mF554*!=u}O6SXEJU?Q{%87~A10&mG3%1w~Yn;z>X(-qk4?j8l34_ugILm%! zZb5k3p@CJW<}?v6d1A%iupniVHke%br_8eYPY61}LxD6`ksdDOj)vH{rwxFnzc6R_ zegUa>cv{MYBa%FcT;E0w_2i75q4~O+;Di8dzjP@Y9fs`C)~O^M#VRoR4%SZn`?Vie zn>Su9oFig%wA@L_)kC9KOL_}XT>>=vFs?7yj@?^SHb9S@c(vxHKD@{MjzxPFce5d*7yVPe@j?Ld0 zpDON*k-qA2oIqwcao@2b9>Wld>f8a5%V8sjiIY!e12UrBMJ}h0_Du9#9GXPOuh7X> z%D0-i@=Kr0zRHIokHFlr2c%h$_94&ljzmMZEhS5HA^PXQZmfxGD(I%}AyJIZp?KHX z(R>wg?GcQQLu(KxRf20KuDzpY>re)&c$HNZC#Be5x!Ob+3PObq#JjcdZsZ}Nq*W2> z7JFs(iyJjXPv2E7Zy$=+)-rY)0mqh>5g4h?@<5Rbz+txt&^nLWnPQf{O@`B%<*qsw ztzb9)qr~STQ>b=XzGmb4B*HuNYI6L#nXeMv^aX?Ut-^XZ?(P}<;Kpx};d%nw6lCht zNZTsr!>KUchQ@0~jcKCNvy)t!qtwGw7i^rf^1o?3KMe<;i>YVFTw6ve_vt-WXLl;{ z*dtNPs6cKnH}l>AA6~B27gPF#1tVcf=x-sLZUd|C+V&2LI8iV>nDsJumM~j$a|>Lu zic`lQzzXkmp1?nRLQWULac$j-{ZHxugACEV*^l9*yoS!H{<`7*^;qZsz;U?l+f8%-tq=>+V%}MsCk1X7dCrxh$z*3bkzKc3|?h{?UHz6_8v5Uv`)&a0}>Vdyp*foRia zqI+C43~Q2R2PWU=$+K4|k!8-dkzii_A<=%VVM_3yqX>rUo+FbH>aD9+W-HfMOSk-J zuzc_6)XC;M(w+OFo}v#5^?z$BsP%iw~;_&1K?^dtm4nh zld85-*KDe3aqFT3c*BMWKd#PN#Jr_uZttFzK4K^@#t$}~(SUrvlpka}=-nmsI*4{< z6#>e8M@6WxOq2tRnklnkyJ0eAid>0kgivu=`A$lxn42KaP#C}{(g-|eX3#l&g<)52 z4qu^a8kZ|sxN3FS1Pe!vLe3$9Kw>5h3CP^|ylzR9)<}~;5;a>g-VUJ=dkZg*ZmoHG zRm0h-qMi@cldWE#WMxdle7@le$v+LI02<^I6hyY#>(aA$@cMXYS9O#H>5C%V#`Pw za#f5I4?$-zaeYRBUlmc zh203RpJP3svuZj|HsJYic*Y#Z$xbIstq7epe=@6g9?4b30xTRKKIVJ|2Kua6Y{TrL zHws6+cC$UaA)7cR&xO_ZAdD%Jo=aj^CmDf!Swx^Icc~j&hwR47x$RO(E36Dk)5xjtbpoVE|$ zPKP94ojRo1-yFSesCJvKn~NLFe;^)kQ6;Bgmls``Ja?le*u~A%pFs23Rze>Su)hKJ z9;a2W=J~99u*}6vAUi)n7S=0MB%yN50TT0`;p6X&`_^b7032b8)uin8o*h~+T`CID4zA{LK$zm ztVmDMI16Q)rx{!T3VibC>{ty!cNuc3rms literal 0 HcmV?d00001 diff --git a/Tuneful/DynamicNotchKit/DynamicNotch.swift b/Tuneful/DynamicNotchKit/DynamicNotch.swift index b8aff40..306f0ef 100644 --- a/Tuneful/DynamicNotchKit/DynamicNotch.swift +++ b/Tuneful/DynamicNotchKit/DynamicNotch.swift @@ -11,7 +11,7 @@ import SwiftUI // MARK: - DynamicNotch public class DynamicNotch: ObservableObject where Content: View { - public var windowController: HoverTrackingWindowController? // Make public in case user wants to modify the NSPanel + public var windowController: NSWindowController? // Make public in case user wants to modify the NSPanel // Player manager @Published var playerManager: PlayerManager @@ -124,7 +124,7 @@ public extension DynamicNotch { guard isVisible else { return } guard !isMouseInside else { - DispatchQueue.main.asyncAfter(deadline: .now() + 10) { + DispatchQueue.main.asyncAfter(deadline: .now() + 2) { self.hide() } return diff --git a/Tuneful/DynamicNotchKit/HoverTrackingWindowController.swift b/Tuneful/DynamicNotchKit/HoverTrackingWindowController.swift deleted file mode 100644 index fe21421..0000000 --- a/Tuneful/DynamicNotchKit/HoverTrackingWindowController.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// HoverTrackingWindow.swift -// Tuneful -// -// Created by Martin Fekete on 26/11/2024. -// - -import SwiftUI -import Cocoa - -public class HoverTrackingWindowController: NSWindowController { - public override func windowDidLoad() { - super.windowDidLoad() - - // Add a tracking area to the content view of the window - if let contentView = window?.contentView { - let trackingArea = NSTrackingArea( - rect: contentView.bounds, - options: [.mouseEnteredAndExited, .mouseMoved, .activeInKeyWindow], - owner: self, - userInfo: nil - ) - contentView.addTrackingArea(trackingArea) - } - } - - public override func mouseEntered(with event: NSEvent) { - super.mouseEntered(with: event) - print("Mouse entered") - } - - public override func mouseExited(with event: NSEvent) { - super.mouseExited(with: event) - print("Mouse exited") - } -} diff --git a/Tuneful/DynamicNotchKit/NotchView.swift b/Tuneful/DynamicNotchKit/NotchView.swift index bbccba3..664c46a 100644 --- a/Tuneful/DynamicNotchKit/NotchView.swift +++ b/Tuneful/DynamicNotchKit/NotchView.swift @@ -46,10 +46,8 @@ struct NotchView: View where Content: View { .fixedSize() .frame(minWidth: dynamicNotch.notchWidth) .onHover { hovering in - if !dynamicNotch.isVisible { - return - } withAnimation(dynamicNotch.animation) { + dynamicNotch.isVisible = hovering dynamicNotch.isMouseInside = hovering } } diff --git a/Tuneful/DynamicNotchKit/NotchlessView.swift b/Tuneful/DynamicNotchKit/NotchlessView.swift index bb41ca7..5db63fa 100644 --- a/Tuneful/DynamicNotchKit/NotchlessView.swift +++ b/Tuneful/DynamicNotchKit/NotchlessView.swift @@ -32,16 +32,19 @@ struct NotchlessView: View where Content: View { VStack { PlaybackButtonsView(playButtonSize: 20) .environmentObject(dynamicNotch.playerManager) + PlaybackPositionView(sliderHeight: 6, inline: true) + .environmentObject(dynamicNotch.playerManager) } .frame(width: dynamicNotch.notchWidth * 0.75) .padding(.bottom, 15) } } .onHover { hovering in - if !dynamicNotch.isVisible { - return - } +// if !dynamicNotch.isVisible { +// return +// } withAnimation(dynamicNotch.animation) { + dynamicNotch.isVisible = hovering dynamicNotch.isMouseInside = hovering } } diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index bf7bef1..9f08ca1 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -278,44 +278,41 @@ public class PlayerManager: ObservableObject { getCurrentSeekerPosition() track = musicApp.getTrackInfo() } + showNotchNotification() fetchAlbumArt(retryCount: 5) updateFormattedDuration() } func fetchAlbumArt(retryCount: Int = 5) { musicApp.getAlbumArt { result in - if result.isAlbumArt { - self.updateAlbumArt(newAlbumArt: result.image) + if result != nil { + self.updateAlbumArt(newAlbumArt: result!) self.updateMenuBarText(playerAppIsRunning: self.isRunning) - self.updateNotchInfo(albumArt: result) } else if retryCount > 0 { - self.updateAlbumArt(newAlbumArt: result.image) - self.updateMenuBarText(playerAppIsRunning: self.isRunning) DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) { self.fetchAlbumArt(retryCount: retryCount - 1) } } else { - self.updateAlbumArt(newAlbumArt: self.musicApp.defaultAlbumArt) self.updateMenuBarText(playerAppIsRunning: self.isRunning) Logger.main.log("Failed to fetch album art") } } } - func updateAlbumArt(newAlbumArt: NSImage) { + func updateAlbumArt(newAlbumArt: FetchedAlbumArt) { DispatchQueue.main.async { withAnimation(.none) { - self.track.albumArt = newAlbumArt + self.track.nsAlbumArt = newAlbumArt.nsImage + self.track.albumArt = newAlbumArt.image } } } - func updateNotchInfo(albumArt: FetchedAlbumArt) { + func showNotchNotification() { if !showSongNotification || popoverIsShown { return } - self.notchInfo.refreshContent() self.notchInfo.show(for: notificationDuration) } diff --git a/Tuneful/Managers/Players/AppleMusicManager.swift b/Tuneful/Managers/Players/AppleMusicManager.swift index ae8d451..cd4ddb3 100644 --- a/Tuneful/Managers/Players/AppleMusicManager.swift +++ b/Tuneful/Managers/Players/AppleMusicManager.swift @@ -10,6 +10,7 @@ import Combine import Foundation import AppKit import ScriptingBridge +import SwiftUICore class AppleMusicManager: PlayerProtocol { var app: MusicApplication = SBApplication(bundleIdentifier: Constants.AppleMusic.bundleID)! @@ -41,18 +42,16 @@ class AppleMusicManager: PlayerProtocol { } } - func getAlbumArt(completion: @escaping (FetchedAlbumArt) -> Void) { - let defaultRestult = FetchedAlbumArt(image: defaultAlbumArt, isAlbumArt: false) - + func getAlbumArt(completion: @escaping (FetchedAlbumArt?) -> Void) { guard let art = app.currentTrack?.artworks?()[0] as? MusicArtwork else { - completion(defaultRestult) + completion(nil) return } if let image = art.data, !image.isEmpty() { - completion(FetchedAlbumArt(image: image, isAlbumArt: true)) + completion(FetchedAlbumArt(image: Image(nsImage: image), nsImage: image)) } else { - completion(defaultRestult) + completion(nil) return } } diff --git a/Tuneful/Managers/Players/PlayerProtocol.swift b/Tuneful/Managers/Players/PlayerProtocol.swift index 842709d..3932656 100644 --- a/Tuneful/Managers/Players/PlayerProtocol.swift +++ b/Tuneful/Managers/Players/PlayerProtocol.swift @@ -8,6 +8,7 @@ import Foundation import Combine import AppKit +import SwiftUICore protocol PlayerProtocol { var notificationSubject: PassthroughSubject { get set } @@ -32,7 +33,7 @@ protocol PlayerProtocol { func getTrackInfo() -> Track - func getAlbumArt(completion: @escaping (FetchedAlbumArt) -> Void) + func getAlbumArt(completion: @escaping (FetchedAlbumArt?) -> Void) func playPause() -> Void diff --git a/Tuneful/Managers/Players/SpotifyManager.swift b/Tuneful/Managers/Players/SpotifyManager.swift index c774f75..9d48f31 100644 --- a/Tuneful/Managers/Players/SpotifyManager.swift +++ b/Tuneful/Managers/Players/SpotifyManager.swift @@ -9,6 +9,7 @@ import os import Combine import Foundation import AppKit +import SwiftUI import ScriptingBridge class SpotifyManager: PlayerProtocol { @@ -50,17 +51,16 @@ class SpotifyManager: PlayerProtocol { return track } - func getAlbumArt(completion: @escaping (FetchedAlbumArt) -> Void) { + func getAlbumArt(completion: @escaping (FetchedAlbumArt?) -> Void) { let urlString = app.currentTrack?.artworkUrl - let defaultRestult = FetchedAlbumArt(image: defaultAlbumArt, isAlbumArt: false) guard urlString != nil else { - completion(defaultRestult) + completion(nil) return } guard let url = URL(string: urlString!) else { - completion(defaultRestult) + completion(nil) return } @@ -68,14 +68,14 @@ class SpotifyManager: PlayerProtocol { guard error == nil, let data = data, let image = NSImage(data: data) else { Logger.main.log("Error fetching Spotify album image") DispatchQueue.main.async { - completion(defaultRestult) + completion(nil) } return } DispatchQueue.main.async { Logger.main.log("Spotify album image fetched") - completion(FetchedAlbumArt(image: image, isAlbumArt: true)) + completion(FetchedAlbumArt(image: Image(nsImage: image), nsImage: image)) } }.resume() diff --git a/Tuneful/Managers/Players/SystemPlayerManager.swift b/Tuneful/Managers/Players/SystemPlayerManager.swift index aa92b20..15fbaf1 100644 --- a/Tuneful/Managers/Players/SystemPlayerManager.swift +++ b/Tuneful/Managers/Players/SystemPlayerManager.swift @@ -9,6 +9,7 @@ import os import Combine import Foundation import AppKit +import SwiftUICore class SystemPlayerManager: PlayerProtocol { let MRMediaRemoteGetNowPlayingInfo: @convention(c) (DispatchQueue, @escaping ([String: Any]) -> Void) -> Void @@ -66,19 +67,17 @@ class SystemPlayerManager: PlayerProtocol { } - func getAlbumArt(completion: @escaping (FetchedAlbumArt) -> Void) { - let defaultRestult = FetchedAlbumArt(image: defaultAlbumArt, isAlbumArt: false) - + func getAlbumArt(completion: @escaping (FetchedAlbumArt?) -> Void) { MRMediaRemoteGetNowPlayingInfo(DispatchQueue.main) { information in guard let artworkData = information["kMRMediaRemoteNowPlayingInfoArtworkData"] as? Data else { - completion(defaultRestult) + completion(nil) return } if let image = NSImage(data: artworkData) { - completion(FetchedAlbumArt(image: image, isAlbumArt: true)) + completion(FetchedAlbumArt(image: Image(nsImage: image), nsImage: image)) } else { - completion(defaultRestult) + completion(nil) } } } diff --git a/Tuneful/Managers/StatusBarItemManager.swift b/Tuneful/Managers/StatusBarItemManager.swift index 4235624..b9c45f8 100644 --- a/Tuneful/Managers/StatusBarItemManager.swift +++ b/Tuneful/Managers/StatusBarItemManager.swift @@ -18,7 +18,7 @@ class StatusBarItemManager: ObservableObject { public func getMenuBarView(track: Track, playerAppIsRunning: Bool, isPlaying: Bool) -> NSView { let title = self.getStatusBarTrackInfo(track: track, playerAppIsRunning: playerAppIsRunning, isPlaying: isPlaying) - let image = self.getImage(albumArt: track.albumArt, playerAppIsRunning: playerAppIsRunning, isPlaying: isPlaying) + let image = self.getImage(track: track, playerAppIsRunning: playerAppIsRunning, isPlaying: isPlaying) let titleWidth = title.stringWidth(with: Constants.StatusBar.marqueeFont) var menuBarItemHeigth = 20.0 @@ -104,12 +104,12 @@ class StatusBarItemManager: ObservableObject { return trackInfo } - private func getImage(albumArt: NSImage, playerAppIsRunning: Bool, isPlaying: Bool) -> AnyView { + private func getImage(track: Track, playerAppIsRunning: Bool, isPlaying: Bool) -> AnyView { if isPlaying && showEqWhenPlayingMusic && playerAppIsRunning { if statusBarIcon == .albumArt { return AnyView( Rectangle() - .fill(Color(nsColor: albumArt.averageColor ?? .white).gradient) + .fill(Color(nsColor: track.nsAlbumArt.averageColor ?? .white).gradient) .mask { AudioSpectrumView(isPlaying: isPlaying) } ) } else { @@ -118,8 +118,7 @@ class StatusBarItemManager: ObservableObject { } if statusBarIcon == .albumArt && playerAppIsRunning { - let roundedImage = albumArt.roundImage(withSize: NSSize(width: 18, height: 18), radius: 4.0) - return AnyView(Image(nsImage: roundedImage)) + return AnyView(track.albumArt.resizable().frame(width: 18, height: 18).cornerRadius(4)) } return AnyView(Image(systemName: "music.quarternote.3")) diff --git a/Tuneful/Models/FetchedAlbumArt.swift b/Tuneful/Models/FetchedAlbumArt.swift index cb06ce4..bb6a30b 100644 --- a/Tuneful/Models/FetchedAlbumArt.swift +++ b/Tuneful/Models/FetchedAlbumArt.swift @@ -5,9 +5,9 @@ // Created by Martin Fekete on 13/10/2024. // -import AppKit +import SwiftUI struct FetchedAlbumArt { - var image: NSImage - var isAlbumArt: Bool + var image: Image + var nsImage: NSImage } diff --git a/Tuneful/Models/Track.swift b/Tuneful/Models/Track.swift index 599b4c5..4028d09 100644 --- a/Tuneful/Models/Track.swift +++ b/Tuneful/Models/Track.swift @@ -9,16 +9,17 @@ import Foundation import SwiftUI struct Track: Equatable { - var title = "" - var artist = "" - var album = "" - var albumArt = NSImage() + var title: String = "" + var artist: String = "" + var album: String = "" + var albumArt: Image = Image(.defaultAlbumart) + var nsAlbumArt: NSImage = NSImage() var duration: CGFloat = 0.0 - var isLoved = false + var isLoved: Bool = false var isPodcast: Bool { self.duration > Constants.podcastThresholdDurationSec } - var albumArtImage: Image { - get { return Image(nsImage: albumArt.roundImage(withSize: NSSize(width: 50, height: 50), radius: 10)) } - } +// var albumArtImage: Image { +// get { return Image(nsImage: albumArt.roundImage(withSize: NSSize(width: 50, height: 50), radius: 10)) } +// } static func == (lhs: Track, rhs: Track) -> Bool { if lhs.title == "" && lhs.artist == "" && lhs.album == "" { diff --git a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift index 375d149..40b3646 100644 --- a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift @@ -22,7 +22,7 @@ struct CompactMiniPlayerView: View { var body: some View { ZStack { if miniPlayerBackground == .albumArt && playerManager.isRunning { - Image(nsImage: playerManager.track.albumArt) + playerManager.track.albumArt .resizable() .scaledToFill() VisualEffectView(material: .popover, blendingMode: .withinWindow) diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 6910722..c586d0b 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -19,7 +19,7 @@ struct MiniPlayerView: View { ZStack { if miniPlayerBackground == .albumArt && playerManager.isRunning { - Image(nsImage: playerManager.track.albumArt) + playerManager.track.albumArt .resizable() .scaledToFill() VisualEffectView(material: .popover, blendingMode: .withinWindow) diff --git a/Tuneful/Views/Playback/AlbumArtView.swift b/Tuneful/Views/Playback/AlbumArtView.swift index 10ed505..7ad6927 100644 --- a/Tuneful/Views/Playback/AlbumArtView.swift +++ b/Tuneful/Views/Playback/AlbumArtView.swift @@ -14,7 +14,7 @@ struct AlbumArtView: View { var body: some View { VStack { - Image(nsImage: playerManager.track.albumArt) + playerManager.track.albumArt .resizable() .frame(width: self.imageSize, height: self.imageSize) .cornerRadius(10) diff --git a/Tuneful/Views/Popover/CompactPopoverView.swift b/Tuneful/Views/Popover/CompactPopoverView.swift index e7b49f6..ca27660 100644 --- a/Tuneful/Views/Popover/CompactPopoverView.swift +++ b/Tuneful/Views/Popover/CompactPopoverView.swift @@ -15,7 +15,7 @@ struct CompactPopoverView: View { var body: some View { ZStack { if popoverBackground == .albumArt && playerManager.isRunning { - Image(nsImage: playerManager.track.albumArt) + playerManager.track.albumArt .resizable() VisualEffectView(material: .popover, blendingMode: .withinWindow) } diff --git a/Tuneful/Views/Popover/PopoverView.swift b/Tuneful/Views/Popover/PopoverView.swift index 37fa57f..ad9705c 100644 --- a/Tuneful/Views/Popover/PopoverView.swift +++ b/Tuneful/Views/Popover/PopoverView.swift @@ -15,7 +15,7 @@ struct PopoverView: View { var body: some View { ZStack { if popoverBackground == .albumArt && playerManager.isRunning { - Image(nsImage: playerManager.track.albumArt) + playerManager.track.albumArt .resizable() VisualEffectView(material: .popover, blendingMode: .withinWindow) } From e75aa2d367fae27b947f493107586d2d5d9f4db3 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Wed, 27 Nov 2024 21:23:36 +0100 Subject: [PATCH 06/73] Updated release notes --- release_notes.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/release_notes.md b/release_notes.md index 7b24ebd..39ce203 100644 --- a/release_notes.md +++ b/release_notes.md @@ -1,3 +1,11 @@ +# 1.8.0 - Notch integration, sleeker UI and others + +- New notch integration now allows you to control the music from notch. For non-notch Macs, this is available on hovering over new song notification +- New music slider which now looks and feels native +- Refactored the logic that fetches song information which makes the app feel snappier +- Added more animations to the UI so the app feels more fluid +- Fixed the bug when mini player floating preference was ignored on app restart + # 1.7.1 - Mini player improvement and various bug fixes - Fixed issue when Tuneful was crashing on launch if Spotify is not installed From adc42a1af4fc508e7ca37b59865197d4197b59b7 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Thu, 28 Nov 2024 20:13:25 +0100 Subject: [PATCH 07/73] Fixed Spotify reopening when killed --- Tuneful/DynamicNotchKit/ScrollWheelModifier.swift | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Tuneful/DynamicNotchKit/ScrollWheelModifier.swift diff --git a/Tuneful/DynamicNotchKit/ScrollWheelModifier.swift b/Tuneful/DynamicNotchKit/ScrollWheelModifier.swift new file mode 100644 index 0000000..e69de29 From ef4943083546871373e5fa1a975278750160062d Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Thu, 28 Nov 2024 21:08:00 +0100 Subject: [PATCH 08/73] Fixed opening Spotify when killed + refactor --- Tuneful.xcodeproj/project.pbxproj | 4 ++ Tuneful/DynamicNotchKit/NotchView.swift | 14 ++++- .../DynamicNotchKit/ScrollWheelModifier.swift | 58 +++++++++++++++++++ Tuneful/Managers/PlayerManager.swift | 26 +++++---- .../Managers/Players/AppleMusicManager.swift | 9 ++- Tuneful/Managers/Players/PlayerProtocol.swift | 3 +- Tuneful/Managers/Players/SpotifyManager.swift | 9 ++- .../Players/SystemPlayerManager.swift | 5 +- Tuneful/Models/Track.swift | 3 - Tuneful/Views/Popover/PopoverView.swift | 2 +- 10 files changed, 111 insertions(+), 22 deletions(-) diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index d5c9801..2b556d2 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -29,6 +29,7 @@ FE3189FA2A7C3B8C006B2D59 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189F92A7C3B8C006B2D59 /* OnboardingView.swift */; }; FE3189FD2A7C3D01006B2D59 /* OnboardingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */; }; FE31AED02CF50708002818ED /* PlaybackPositionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */; }; + FE31AEDA2CF7CBAA002818ED /* ScrollWheelModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE31AED92CF7CBA3002818ED /* ScrollWheelModifier.swift */; }; FE37A0332A829623006FBA5B /* MusicControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE37A0322A829623006FBA5B /* MusicControl.swift */; }; FE37A0352A82982B006FBA5B /* PlayPauseButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE37A0342A82982B006FBA5B /* PlayPauseButton.swift */; }; FE3F67FE2AAD02D100CCE841 /* LaunchAtLogin in Frameworks */ = {isa = PBXBuildFile; productRef = FE3F67FD2AAD02D100CCE841 /* LaunchAtLogin */; }; @@ -127,6 +128,7 @@ FE3189F92A7C3B8C006B2D59 /* OnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = ""; }; FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingWindow.swift; sourceTree = ""; }; FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackPositionView.swift; sourceTree = ""; }; + FE31AED92CF7CBA3002818ED /* ScrollWheelModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollWheelModifier.swift; sourceTree = ""; }; FE37A0322A829623006FBA5B /* MusicControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicControl.swift; sourceTree = ""; }; FE37A0342A82982B006FBA5B /* PlayPauseButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayPauseButton.swift; sourceTree = ""; }; FE4414B72AB4999600A73246 /* Notification.Name.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Notification.Name.swift; sourceTree = ""; }; @@ -220,6 +222,7 @@ FE1A62FA2CBC1B09001C13CE /* DynamicNotchKit */ = { isa = PBXGroup; children = ( + FE31AED92CF7CBA3002818ED /* ScrollWheelModifier.swift */, FE1A62F12CBC1B09001C13CE /* BlurModifier.swift */, FE1A62F22CBC1B09001C13CE /* DynamicNotch.swift */, FE1A62F32CBC1B09001C13CE /* DynamicNotchInfo.swift */, @@ -589,6 +592,7 @@ FEE486E72B5D51FB00AB712F /* MiniPlayerSettingsView.swift in Sources */, FEDD311A2CBE4DAD00653956 /* PlayerAppProvider.swift in Sources */, FEFFE5592B4FE00D000887B5 /* NSError+Extension.swift in Sources */, + FE31AEDA2CF7CBAA002818ED /* ScrollWheelModifier.swift in Sources */, FE4414B82AB4999600A73246 /* Notification.Name.swift in Sources */, FE478BFD2CB288430033D272 /* SystemPlayerManager.swift in Sources */, FE8CE1582C1E0B140053FDEA /* PopoverType.swift in Sources */, diff --git a/Tuneful/DynamicNotchKit/NotchView.swift b/Tuneful/DynamicNotchKit/NotchView.swift index 664c46a..5b19b20 100644 --- a/Tuneful/DynamicNotchKit/NotchView.swift +++ b/Tuneful/DynamicNotchKit/NotchView.swift @@ -39,7 +39,7 @@ struct NotchView: View where Content: View { PlaybackPositionView(sliderHeight: 6, inline: true) .environmentObject(dynamicNotch.playerManager) } - .frame(width: dynamicNotch.notchWidth * 0.75) + .frame(width: dynamicNotch.notchWidth * 0.8) .padding(.bottom, 15) } } @@ -51,6 +51,16 @@ struct NotchView: View where Content: View { dynamicNotch.isMouseInside = hovering } } +// .gesture(DragGesture(minimumDistance: 20, coordinateSpace: .global).onEnded { value in +// let horizontalAmount = value.translation.width +// let verticalAmount = value.translation.height +// +// if abs(horizontalAmount) > abs(verticalAmount) { +// print(horizontalAmount < 0 ? "left swipe" : "right swipe") +// } else { +// print(verticalAmount < 0 ? "up swipe" : "down swipe") +// } +// }) .onChange(of: dynamicNotch.isMouseInside) { isMouseInside in if isMouseInside { dynamicNotch.playerManager.startTimer() @@ -76,7 +86,7 @@ struct NotchView: View where Content: View { } } } - .shadow(color: .black.opacity(0.5), radius: dynamicNotch.isVisible ? 10 : 0) + .shadow(color: .black.opacity(0.6), radius: dynamicNotch.isVisible ? 10 : 0) .animation(dynamicNotch.animation, value: dynamicNotch.contentID) Spacer() diff --git a/Tuneful/DynamicNotchKit/ScrollWheelModifier.swift b/Tuneful/DynamicNotchKit/ScrollWheelModifier.swift index e69de29..caf1261 100644 --- a/Tuneful/DynamicNotchKit/ScrollWheelModifier.swift +++ b/Tuneful/DynamicNotchKit/ScrollWheelModifier.swift @@ -0,0 +1,58 @@ +// +// ScrollWheelModifier.swift +// Tuneful +// +// Created by Martin Fekete on 27/11/2024. +// + +import SwiftUI +import Combine + +struct ScrollWheelModifier: ViewModifier { + enum Direction { + case up, down, left, right + } + + @State private var subs = Set() // Cancel onDisappear + + var action: (Direction) -> Void + + func body(content: Content) -> some View { + content + .onAppear { trackScrollWheel() } + } + + func trackScrollWheel() { + NSApp.publisher(for: \.currentEvent) + .filter { event in event?.type == .scrollWheel } + .throttle(for: .milliseconds(200), + scheduler: DispatchQueue.main, + latest: true) + .sink { + if let event = $0 { + if event.deltaX > 0 { + action(.right) + } + + if event.deltaX < 0 { + action(.left) + } + + if event.deltaY > 0 { + action(.down) + } + + if event.deltaY < 0 { + action(.up) + } + } + } + .store(in: &subs) + } +} + +extension View { + func onScrollWheelUp(action: @escaping (ScrollWheelModifier.Direction) -> Void) -> some View { + modifier(ScrollWheelModifier(action: action) ) + } +} diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index 9f08ca1..c67ee64 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -24,7 +24,7 @@ public class PlayerManager: ObservableObject { // private let MRMediaRemoteRegisterForNowPlayingNotifications: @convention(c) (DispatchQueue) -> Void var name: String { musicApp.appName } - var isRunning: Bool { musicApp.isRunning } + var isRunning: Bool { musicApp.isRunning() } var notification: String { musicApp.appNotification } // Notifications @@ -185,7 +185,7 @@ public class PlayerManager: ObservableObject { @objc private func popoverIsOpening(_ notification: NSNotification) { if !showPlayerWindow { - self.timerStartSignal.send() + self.startTimer() } self.audioDevices = AudioDevice.output.filter { $0.transportType != .virtual } self.getVolume() @@ -196,16 +196,12 @@ public class PlayerManager: ObservableObject { @objc private func popoverIsClosing(_ notification: NSNotification) { if !showPlayerWindow { - self.timerStopSignal.send() + self.stopTimer() } popoverIsShown = false } - @objc func test(_ sender: NSNotification?) { - print("rerererere") - } - // MARK: Notification Handlers @objc func playStateOrTrackDidChange(_ sender: NSNotification?) { @@ -213,6 +209,12 @@ public class PlayerManager: ObservableObject { let musicAppKilled = sender?.userInfo?["Player State"] as? String == "Stopped" let isRunningFromNotification = !musicAppKilled && isRunning + + if musicAppKilled || !musicApp.isRunning() { + self.track = Track() + self.updateMenuBarText(playerAppIsRunning: isRunningFromNotification) + return + } self.musicApp.refreshInfo { // Needs to be refreshed for system player to load song info asynchronously self.getPlayState() @@ -300,11 +302,9 @@ public class PlayerManager: ObservableObject { } func updateAlbumArt(newAlbumArt: FetchedAlbumArt) { - DispatchQueue.main.async { - withAnimation(.none) { - self.track.nsAlbumArt = newAlbumArt.nsImage - self.track.albumArt = newAlbumArt.image - } + withAnimation { + self.track.nsAlbumArt = newAlbumArt.nsImage + self.track.albumArt = newAlbumArt.image } } @@ -394,10 +394,12 @@ public class PlayerManager: ObservableObject { // MARK: Timer func startTimer() { + if !musicApp.isRunning() { return } self.timerStartSignal.send() } func stopTimer() { + if !musicApp.isRunning() { return } self.timerStopSignal.send() } diff --git a/Tuneful/Managers/Players/AppleMusicManager.swift b/Tuneful/Managers/Players/AppleMusicManager.swift index cd4ddb3..7c5ce2e 100644 --- a/Tuneful/Managers/Players/AppleMusicManager.swift +++ b/Tuneful/Managers/Players/AppleMusicManager.swift @@ -24,7 +24,6 @@ class AppleMusicManager: PlayerProtocol { public var playerPosition: Double? { app.playerPosition } public var isPlaying: Bool { app.playerState == .playing } - public var isRunning: Bool { app.isRunning } public var volume: CGFloat { CGFloat(app.soundVolume ?? 50) } public var isLikeAuthorized: Bool = true public var shuffleIsOn: Bool { app.shuffleEnabled ?? false } @@ -119,4 +118,12 @@ class AppleMusicManager: PlayerProtocol { func setVolume(volume: Int) { app.setSoundVolume?(volume) } + + func isRunning() -> Bool { + let workspace = NSWorkspace.shared + + return workspace.runningApplications.contains { app in + app.bundleIdentifier == self.bundleId + } + } } diff --git a/Tuneful/Managers/Players/PlayerProtocol.swift b/Tuneful/Managers/Players/PlayerProtocol.swift index 3932656..f6ee382 100644 --- a/Tuneful/Managers/Players/PlayerProtocol.swift +++ b/Tuneful/Managers/Players/PlayerProtocol.swift @@ -21,7 +21,6 @@ protocol PlayerProtocol { var playerPosition: Double? { get } var isPlaying: Bool { get } - var isRunning: Bool { get } var volume: CGFloat { get } var isLikeAuthorized: Bool { get } var shuffleIsOn: Bool { get } @@ -52,6 +51,8 @@ protocol PlayerProtocol { func seekTrack(seekerPosition: CGFloat) -> Void func setVolume(volume: Int) -> Void + + func isRunning() -> Bool } extension PlayerProtocol { diff --git a/Tuneful/Managers/Players/SpotifyManager.swift b/Tuneful/Managers/Players/SpotifyManager.swift index 9d48f31..0413345 100644 --- a/Tuneful/Managers/Players/SpotifyManager.swift +++ b/Tuneful/Managers/Players/SpotifyManager.swift @@ -24,7 +24,6 @@ class SpotifyManager: PlayerProtocol { public var playerPosition: Double? { app.playerPosition } public var isPlaying: Bool { app.playerState == .playing } - public var isRunning: Bool { app.isRunning } public var volume: CGFloat { CGFloat(app.soundVolume ?? 50) } public var isLikeAuthorized: Bool = false public var shuffleIsOn: Bool { app.shuffling ?? false } @@ -120,4 +119,12 @@ class SpotifyManager: PlayerProtocol { func setVolume(volume: Int) { app.setSoundVolume?(volume) } + + func isRunning() -> Bool { + let workspace = NSWorkspace.shared + + return workspace.runningApplications.contains { app in + app.bundleIdentifier == self.bundleId + } + } } diff --git a/Tuneful/Managers/Players/SystemPlayerManager.swift b/Tuneful/Managers/Players/SystemPlayerManager.swift index 15fbaf1..183885f 100644 --- a/Tuneful/Managers/Players/SystemPlayerManager.swift +++ b/Tuneful/Managers/Players/SystemPlayerManager.swift @@ -25,7 +25,6 @@ class SystemPlayerManager: PlayerProtocol { public var playerPosition: Double? { 50 } public var isPlaying: Bool { getIsPlaying() } - public var isRunning: Bool = true public var volume: CGFloat { 50 } public var isLikeAuthorized: Bool { false } public var shuffleIsOn: Bool { false } @@ -123,6 +122,10 @@ class SystemPlayerManager: PlayerProtocol { return // TODO } + func isRunning() -> Bool { + return true + } + // MARK: Private methods private func getIsPlaying() -> Bool { diff --git a/Tuneful/Models/Track.swift b/Tuneful/Models/Track.swift index 4028d09..0f88de0 100644 --- a/Tuneful/Models/Track.swift +++ b/Tuneful/Models/Track.swift @@ -17,9 +17,6 @@ struct Track: Equatable { var duration: CGFloat = 0.0 var isLoved: Bool = false var isPodcast: Bool { self.duration > Constants.podcastThresholdDurationSec } -// var albumArtImage: Image { -// get { return Image(nsImage: albumArt.roundImage(withSize: NSSize(width: 50, height: 50), radius: 10)) } -// } static func == (lhs: Track, rhs: Track) -> Bool { if lhs.title == "" && lhs.artist == "" && lhs.album == "" { diff --git a/Tuneful/Views/Popover/PopoverView.swift b/Tuneful/Views/Popover/PopoverView.swift index ad9705c..d88ee29 100644 --- a/Tuneful/Views/Popover/PopoverView.swift +++ b/Tuneful/Views/Popover/PopoverView.swift @@ -20,7 +20,7 @@ struct PopoverView: View { VisualEffectView(material: .popover, blendingMode: .withinWindow) } - if !playerManager.isRunning || playerManager.track.isEmpty() { + if !playerManager.musicApp.isRunning() || playerManager.track.isEmpty() { Text("Please open \(playerManager.name) to use Tuneful") .foregroundColor(.primary.opacity(Constants.Opacity.secondaryOpacity)) .font(.system(size: 14, weight: .regular)) From 945ac54e2efe52c5e0ece726e16e8cb2287d74ae Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Fri, 29 Nov 2024 08:11:45 +0100 Subject: [PATCH 09/73] Updated label when spotify is not installed. updated release notes --- Tuneful/DynamicNotchKit/NotchView.swift | 2 +- Tuneful/Views/OnboardingView.swift | 5 ++--- Tuneful/Views/Settings/GeneralSettingsView.swift | 4 ++-- release_notes.md | 1 + 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Tuneful/DynamicNotchKit/NotchView.swift b/Tuneful/DynamicNotchKit/NotchView.swift index 5b19b20..7c58ae9 100644 --- a/Tuneful/DynamicNotchKit/NotchView.swift +++ b/Tuneful/DynamicNotchKit/NotchView.swift @@ -47,8 +47,8 @@ struct NotchView: View where Content: View { .frame(minWidth: dynamicNotch.notchWidth) .onHover { hovering in withAnimation(dynamicNotch.animation) { - dynamicNotch.isVisible = hovering dynamicNotch.isMouseInside = hovering + dynamicNotch.isVisible = hovering } } // .gesture(DragGesture(minimumDistance: 20, coordinateSpace: .global).onEnded { value in diff --git a/Tuneful/Views/OnboardingView.swift b/Tuneful/Views/OnboardingView.swift index acb5cc3..f1143b6 100644 --- a/Tuneful/Views/OnboardingView.swift +++ b/Tuneful/Views/OnboardingView.swift @@ -118,7 +118,7 @@ struct AppPicker: View { .pickerStyle(.menu) if !ConnectedApps.spotify.isInstalled { - Text("Apple Music is the only avaiable music app as Spotify was not found") + Text("Apple Music is the only avaiable music app as Spotify was not found. It should be located at the top level of Applications folder.") .font(.caption) .foregroundColor(.secondary) } @@ -128,7 +128,6 @@ struct AppPicker: View { } struct Details: View { - @AppStorage("viewedOnboarding") var viewedOnboarding: Bool = false @AppStorage("connectedApp") private var connectedApp = ConnectedApps.appleMusic @@ -163,7 +162,7 @@ struct Details: View { showAlert = true viewedOnboarding = true case .closed: - alertTitle = Text("\(name) is not open") + alertTitle = Text("\(name) is not opened") alertMessage = Text("Please open \(name) to enable permissions") showAlert = true success = false diff --git a/Tuneful/Views/Settings/GeneralSettingsView.swift b/Tuneful/Views/Settings/GeneralSettingsView.swift index e94d7e4..2256e0c 100644 --- a/Tuneful/Views/Settings/GeneralSettingsView.swift +++ b/Tuneful/Views/Settings/GeneralSettingsView.swift @@ -66,7 +66,7 @@ struct GeneralSettingsView: View { let consent = Helper.promptUserForConsent(for: connectedApp == .spotify ? Constants.Spotify.bundleID : Constants.AppleMusic.bundleID) switch consent { case .closed: - alertTitle = Text("\(Text(connectedApp.localizedName)) is not open") + alertTitle = Text("\(Text(connectedApp.localizedName)) is not opened") alertMessage = Text("Please open \(Text(connectedApp.localizedName)) to enable permissions") case .granted: alertTitle = Text("Permission granted for \(Text(connectedApp.localizedName))") @@ -89,7 +89,7 @@ struct GeneralSettingsView: View { .padding(8) if !ConnectedApps.spotify.isInstalled { - Text("Apple Music is the only avaiable music app as Spotify was not found") + Text("Apple Music is the only avaiable music app as Spotify was not found. It should be located at the top level of Applications folder.") .font(.caption) .foregroundColor(.secondary) .padding(.bottom, 4) diff --git a/release_notes.md b/release_notes.md index 39ce203..a86767e 100644 --- a/release_notes.md +++ b/release_notes.md @@ -4,6 +4,7 @@ - New music slider which now looks and feels native - Refactored the logic that fetches song information which makes the app feel snappier - Added more animations to the UI so the app feels more fluid +- Fixed the bug when Spotify was opened in the background even if killed by the user - Fixed the bug when mini player floating preference was ignored on app restart # 1.7.1 - Mini player improvement and various bug fixes From b31be21cefa84e4a34dc024f38317c2d46ba9b48 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sat, 30 Nov 2024 19:08:13 +0100 Subject: [PATCH 10/73] Notch almost finished, some refactoring and optimisations --- Tuneful/DynamicNotchKit/DynamicNotch.swift | 21 ++- .../DynamicNotchKit/DynamicNotchInfo.swift | 5 +- Tuneful/DynamicNotchKit/NotchView.swift | 116 ++++++++++---- Tuneful/Managers/PlayerManager.swift | 2 + Tuneful/Managers/StatusBarItemManager.swift | 10 +- Tuneful/Models/Track.swift | 1 + Tuneful/Tuneful.swift | 2 +- Tuneful/Views/MenuBar/AudioSpectrumView.swift | 146 ++++++++++++++++-- Tuneful/Views/Playback/AlbumArtView.swift | 9 +- 9 files changed, 254 insertions(+), 58 deletions(-) diff --git a/Tuneful/DynamicNotchKit/DynamicNotch.swift b/Tuneful/DynamicNotchKit/DynamicNotch.swift index 306f0ef..5888d15 100644 --- a/Tuneful/DynamicNotchKit/DynamicNotch.swift +++ b/Tuneful/DynamicNotchKit/DynamicNotch.swift @@ -20,6 +20,7 @@ public class DynamicNotch: ObservableObject where Content: View { @Published var content: () -> Content @Published var contentID: UUID @Published var isVisible: Bool = false // Used to animate the fading in/out of the user's view + @Published var isNotificationVisible: Bool = false // Used to animate the fading in/out of the user's view // Notch Size @Published var notchWidth: CGFloat = 0 @@ -71,6 +72,17 @@ public class DynamicNotch: ObservableObject where Content: View { // MARK: - Public public extension DynamicNotch { + + func updateNotchWidth(isPlaying: Bool) { + withAnimation(self.animation) { + if isPlaying { + self.refreshNotchSize(NSScreen.screens[0]) + self.notchWidth += 90 + } else { + self.refreshNotchSize(NSScreen.screens[0]) + } + } + } /// Set this DynamicNotch's content. /// - Parameter content: A SwiftUI View @@ -110,6 +122,7 @@ public extension DynamicNotch { DispatchQueue.main.async { withAnimation(self.animation) { self.isVisible = true + self.isNotificationVisible = true } } @@ -132,14 +145,8 @@ public extension DynamicNotch { withAnimation(animation) { self.isVisible = false + self.isNotificationVisible = false } - -// timer = Timer.scheduledTimer( -// withTimeInterval: maxAnimationDuration, -// repeats: false -// ) { _ in -// self.deinitializeWindow() -// } } /// Toggle the DynamicNotch's visibility. diff --git a/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift b/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift index a8fe813..817f0d5 100644 --- a/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift +++ b/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift @@ -40,6 +40,10 @@ public class DynamicNotchInfo { } } + public func updateNotchWidth(isPlaying: Bool) { + internalDynamicNotch.updateNotchWidth(isPlaying: isPlaying) + } + public func refreshContent() { internalDynamicNotch.refreshContent() } @@ -59,7 +63,6 @@ public class DynamicNotchInfo { public extension DynamicNotchInfo { struct InfoView: View { - @State private var isTapped: Bool = false @ObservedObject private var playerManager: PlayerManager init(playerManager: PlayerManager) { diff --git a/Tuneful/DynamicNotchKit/NotchView.swift b/Tuneful/DynamicNotchKit/NotchView.swift index 7c58ae9..5193a99 100644 --- a/Tuneful/DynamicNotchKit/NotchView.swift +++ b/Tuneful/DynamicNotchKit/NotchView.swift @@ -9,7 +9,7 @@ import SwiftUI struct NotchView: View where Content: View { @ObservedObject var dynamicNotch: DynamicNotch - + var body: some View { VStack(spacing: 0) { HStack(spacing: 0) { @@ -17,30 +17,30 @@ struct NotchView: View where Content: View { VStack(spacing: 0) { Spacer() - .frame(width: dynamicNotch.notchWidth + 20, height: dynamicNotch.notchHeight) - // We add an extra 20 here because the corner radius of the top increases when shown. - // (the remaining 10 has already been accounted for in refreshNotchSize) - - dynamicNotch.content() - .id(dynamicNotch.contentID) - .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } - .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } - .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } - .blur(radius: dynamicNotch.isVisible ? 0 : 10) - .scaleEffect(dynamicNotch.isVisible ? 1 : 0.8) - .offset(y: dynamicNotch.isVisible ? 0 : 5) - .padding(.horizontal, 15) // Small corner radius of the TOP of the notch - .transition(.blur.animation(.smooth)) + .frame(width: dynamicNotch.notchWidth, height: dynamicNotch.notchHeight) + + if dynamicNotch.isNotificationVisible && !dynamicNotch.isMouseInside { + InfoView(playerManager: dynamicNotch.playerManager) + .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } + .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } + .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } + .blur(radius: dynamicNotch.isVisible ? 0 : 10) + .scaleEffect(dynamicNotch.isVisible ? 1 : 0.8) + .offset(y: dynamicNotch.isVisible ? 0 : 5) + .padding(.horizontal, 15) // Small corner radius of the TOP of the notch + .transition(.blur.animation(.smooth)) + } if dynamicNotch.isMouseInside { - VStack { - PlaybackButtonsView(playButtonSize: 20) - .environmentObject(dynamicNotch.playerManager) - PlaybackPositionView(sliderHeight: 6, inline: true) - .environmentObject(dynamicNotch.playerManager) - } - .frame(width: dynamicNotch.notchWidth * 0.8) - .padding(.bottom, 15) + PlayerView(playerManager: dynamicNotch.playerManager) + .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } + .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } + .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } + .blur(radius: dynamicNotch.isVisible ? 0 : 10) + .scaleEffect(dynamicNotch.isVisible ? 1 : 0.8) + .offset(y: dynamicNotch.isVisible ? 0 : 5) + .padding(.horizontal, 15) // Small corner radius of the TOP of the notch + .transition(.blur.animation(.smooth)) } } .fixedSize() @@ -51,16 +51,6 @@ struct NotchView: View where Content: View { dynamicNotch.isVisible = hovering } } -// .gesture(DragGesture(minimumDistance: 20, coordinateSpace: .global).onEnded { value in -// let horizontalAmount = value.translation.width -// let verticalAmount = value.translation.height -// -// if abs(horizontalAmount) > abs(verticalAmount) { -// print(horizontalAmount < 0 ? "left swipe" : "right swipe") -// } else { -// print(verticalAmount < 0 ? "up swipe" : "down swipe") -// } -// }) .onChange(of: dynamicNotch.isMouseInside) { isMouseInside in if isMouseInside { dynamicNotch.playerManager.startTimer() @@ -88,10 +78,68 @@ struct NotchView: View where Content: View { } .shadow(color: .black.opacity(0.6), radius: dynamicNotch.isVisible ? 10 : 0) .animation(dynamicNotch.animation, value: dynamicNotch.contentID) - + Spacer() } Spacer() } } } + +struct InfoView: View { + @ObservedObject private var playerManager: PlayerManager + + init(playerManager: PlayerManager) { + self.playerManager = playerManager + } + + public var body: some View { + VStack(alignment: .trailing) { + HStack(alignment: .center, spacing: 8) { + playerManager.track.albumArt + .resizable() + .scaledToFit() + .frame(width: 20, height: 20) + .cornerRadius(5) + Text(playerManager.track.title) + .font(.headline) + .lineLimit(1) + Text(playerManager.track.artist) + .foregroundStyle(.secondary) + .font(.headline) + .lineLimit(1) + } + } + } +} + +struct PlayerView: View { + @ObservedObject private var playerManager: PlayerManager + + init(playerManager: PlayerManager) { + self.playerManager = playerManager + } + + public var body: some View { + HStack(spacing: 10) { + AlbumArtView(imageSize: 80) + .environmentObject(playerManager) + .padding(5) + + VStack(alignment: .center) { + Text(playerManager.track.title) + .font(.headline) + .lineLimit(1) + Text(playerManager.track.artist) + .foregroundStyle(.secondary) + .font(.caption2) + .lineLimit(1) + PlaybackButtonsView(playButtonSize: 20) + .environmentObject(playerManager) + PlaybackPositionView(sliderHeight: 6, inline: true) + .environmentObject(playerManager) + } + .frame(width: 250) + } + } +} diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index c67ee64..0b5c199 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -213,6 +213,7 @@ public class PlayerManager: ObservableObject { if musicAppKilled || !musicApp.isRunning() { self.track = Track() self.updateMenuBarText(playerAppIsRunning: isRunningFromNotification) + self.notchInfo.updateNotchWidth(isPlaying: false) return } @@ -303,6 +304,7 @@ public class PlayerManager: ObservableObject { func updateAlbumArt(newAlbumArt: FetchedAlbumArt) { withAnimation { + self.track.avgAlbumColor = Color(nsColor: newAlbumArt.nsImage.averageColor ?? .gray) self.track.nsAlbumArt = newAlbumArt.nsImage self.track.albumArt = newAlbumArt.image } diff --git a/Tuneful/Managers/StatusBarItemManager.swift b/Tuneful/Managers/StatusBarItemManager.swift index b9c45f8..3f12a5f 100644 --- a/Tuneful/Managers/StatusBarItemManager.swift +++ b/Tuneful/Managers/StatusBarItemManager.swift @@ -16,6 +16,12 @@ class StatusBarItemManager: ObservableObject { @AppStorage("scrollingTrackInfo") var scrollingTrackInfo: Bool = false @AppStorage("showEqWhenPlayingMusic") var showEqWhenPlayingMusic: Bool = true + @ObservedObject var playerManager: PlayerManager + + init(playerManager: PlayerManager) { + self.playerManager = playerManager + } + public func getMenuBarView(track: Track, playerAppIsRunning: Bool, isPlaying: Bool) -> NSView { let title = self.getStatusBarTrackInfo(track: track, playerAppIsRunning: playerAppIsRunning, isPlaying: isPlaying) let image = self.getImage(track: track, playerAppIsRunning: playerAppIsRunning, isPlaying: isPlaying) @@ -110,10 +116,10 @@ class StatusBarItemManager: ObservableObject { return AnyView( Rectangle() .fill(Color(nsColor: track.nsAlbumArt.averageColor ?? .white).gradient) - .mask { AudioSpectrumView(isPlaying: isPlaying) } + .mask { AudioSpectrumView().environmentObject(playerManager) } ) } else { - return AnyView(AudioSpectrumView(isPlaying: isPlaying)) + return AnyView(AudioSpectrumView().environmentObject(playerManager)) } } diff --git a/Tuneful/Models/Track.swift b/Tuneful/Models/Track.swift index 0f88de0..f4ac402 100644 --- a/Tuneful/Models/Track.swift +++ b/Tuneful/Models/Track.swift @@ -14,6 +14,7 @@ struct Track: Equatable { var album: String = "" var albumArt: Image = Image(.defaultAlbumart) var nsAlbumArt: NSImage = NSImage() + var avgAlbumColor: Color = .gray var duration: CGFloat = 0.0 var isLoved: Bool = false var isPodcast: Bool { self.duration > Constants.podcastThresholdDurationSec } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 287deec..bd341ff 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -126,7 +126,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // } self.playerManager = PlayerManager() - self.statusBarItemManager = StatusBarItemManager() + self.statusBarItemManager = StatusBarItemManager(playerManager: playerManager) self.statusBarPlaybackManager = StatusBarPlaybackManager(playerManager: playerManager) NotificationCenter.default.addObserver( diff --git a/Tuneful/Views/MenuBar/AudioSpectrumView.swift b/Tuneful/Views/MenuBar/AudioSpectrumView.swift index 932faef..409c3c5 100644 --- a/Tuneful/Views/MenuBar/AudioSpectrumView.swift +++ b/Tuneful/Views/MenuBar/AudioSpectrumView.swift @@ -1,11 +1,123 @@ +//// +//// AudioSpectrumView.swift +//// Tuneful +//// +//// Created by Harsh Vardhan Goswami on 02/08/24: https://github.com/TheBoredTeam/boring.notch +//// Modified by Martin Fekete +//// // -// AudioSpectrumView.swift -// Tuneful +//import AppKit +//import Cocoa +//import SwiftUI // -// Created by Harsh Vardhan Goswami on 02/08/24: https://github.com/TheBoredTeam/boring.notch -// Modified by Martin Fekete +//class AudioSpectrum: NSView { +// private var barLayers: [CAShapeLayer] = [] +// private var isPlaying: Bool = true +// private var animationTimer: Timer? +// +// override init(frame frameRect: NSRect) { +// super.init(frame: frameRect) +// wantsLayer = true +// setupBars() +// } +// +// required init?(coder: NSCoder) { +// super.init(coder: coder) +// wantsLayer = true +// setupBars() +// } +// +// private func setupBars() { +// let barWidth: CGFloat = 2 +// let barCount = 4 +// let spacing: CGFloat = barWidth +// let totalWidth = CGFloat(barCount) * (barWidth + spacing) +// let totalHeight: CGFloat = 15 +// frame.size = CGSize(width: totalWidth, height: totalHeight) +// +// for i in 0 ..< barCount { +// let xPosition = CGFloat(i) * (barWidth + spacing) +// let barLayer = CAShapeLayer() +// barLayer.frame = CGRect(x: xPosition, y: 0, width: barWidth, height: totalHeight) +// barLayer.position = CGPoint(x: xPosition + barWidth / 2, y: totalHeight / 2) +// barLayer.fillColor = NSColor.white.cgColor +// +// let path = NSBezierPath(roundedRect: CGRect(x: 0, y: 0, width: barWidth, height: totalHeight), +// xRadius: barWidth / 2, +// yRadius: barWidth / 2) +// let cgPath = CGMutablePath() +// cgPath.addPath(path.transformToCGPath()) +// barLayer.path = cgPath +// +// barLayers.append(barLayer) +// layer?.addSublayer(barLayer) +// } +// } +// +// private func startAnimating() { +// guard animationTimer == nil else { return } +// animationTimer = Timer.scheduledTimer(withTimeInterval: 0.3, repeats: true) { [weak self] _ in +// self?.updateBars() +// } +// } +// +// private func stopAnimating() { +// animationTimer?.invalidate() +// animationTimer = nil +// resetBars() +// } +// +// private func updateBars() { +// for barLayer in barLayers { +// let animation = CABasicAnimation(keyPath: "transform.scale.y") +// animation.fromValue = barLayer.presentation()?.value(forKeyPath: "transform.scale.y") ?? 0.35 +// animation.toValue = CGFloat.random(in: 0.35 ... 1.0) +// animation.duration = 0.2 +// animation.autoreverses = true +// animation.fillMode = .forwards +// animation.isRemovedOnCompletion = false +// +// barLayer.add(animation, forKey: "scaleY") +// } +// } +// +// private func resetBars() { +// for barLayer in barLayers { +// barLayer.removeAllAnimations() +// barLayer.transform = CATransform3DMakeScale(1, 0.35, 1) +// } +// } +// +// func setPlaying(_ playing: Bool) { +// isPlaying = playing +// if isPlaying { +// startAnimating() +// } else { +// stopAnimating() +// } +// } +//} // +//struct AudioSpectrumView: NSViewRepresentable { +// @State var isPlaying: Bool +// +// func makeNSView(context: Context) -> AudioSpectrum { +// let spectrum = AudioSpectrum() +// spectrum.setPlaying(isPlaying) +// return spectrum +// } +// +// func updateNSView(_ nsView: AudioSpectrum, context: Context) { +// nsView.setPlaying(isPlaying) +// } +//} +// +// MusicVisualizer.swift +// boringNotch +// +// Created by Harsh Vardhan Goswami on 02/08/24. +// import AppKit import Cocoa import SwiftUI @@ -32,7 +144,7 @@ class AudioSpectrum: NSView { let barCount = 4 let spacing: CGFloat = barWidth let totalWidth = CGFloat(barCount) * (barWidth + spacing) - let totalHeight: CGFloat = 15 + let totalHeight: CGFloat = 14 frame.size = CGSize(width: totalWidth, height: totalHeight) for i in 0 ..< barCount { @@ -45,9 +157,13 @@ class AudioSpectrum: NSView { let path = NSBezierPath(roundedRect: CGRect(x: 0, y: 0, width: barWidth, height: totalHeight), xRadius: barWidth / 2, yRadius: barWidth / 2) - let cgPath = CGMutablePath() - cgPath.addPath(path.transformToCGPath()) - barLayer.path = cgPath + if #available(macOS 14.0, *) { + barLayer.path = path.cgPath + } else { + let cgPath = CGMutablePath() + cgPath.addPath(path.transformToCGPath()) + barLayer.path = cgPath + } barLayers.append(barLayer) layer?.addSublayer(barLayer) @@ -72,7 +188,7 @@ class AudioSpectrum: NSView { let animation = CABasicAnimation(keyPath: "transform.scale.y") animation.fromValue = barLayer.presentation()?.value(forKeyPath: "transform.scale.y") ?? 0.35 animation.toValue = CGFloat.random(in: 0.35 ... 1.0) - animation.duration = 0.2 + animation.duration = 0.3 animation.autoreverses = true animation.fillMode = .forwards animation.isRemovedOnCompletion = false @@ -98,8 +214,8 @@ class AudioSpectrum: NSView { } } -struct AudioSpectrumView: NSViewRepresentable { - @State var isPlaying: Bool +struct AudioSpectrumViewRepresentable: NSViewRepresentable { + @Binding var isPlaying: Bool func makeNSView(context: Context) -> AudioSpectrum { let spectrum = AudioSpectrum() @@ -111,3 +227,11 @@ struct AudioSpectrumView: NSViewRepresentable { nsView.setPlaying(isPlaying) } } + +struct AudioSpectrumView: View { + @EnvironmentObject var playerManager: PlayerManager + + var body: some View { + AudioSpectrumViewRepresentable(isPlaying: $playerManager.isPlaying) + } +} diff --git a/Tuneful/Views/Playback/AlbumArtView.swift b/Tuneful/Views/Playback/AlbumArtView.swift index 7ad6927..6b849a1 100644 --- a/Tuneful/Views/Playback/AlbumArtView.swift +++ b/Tuneful/Views/Playback/AlbumArtView.swift @@ -13,12 +13,17 @@ struct AlbumArtView: View { var imageSize: CGFloat = 180 var body: some View { - VStack { + ZStack { +// playerManager.track.albumArt +// .resizable() +// +// VisualEffectView(material: .popover, blendingMode: .withinWindow) + playerManager.track.albumArt .resizable() .frame(width: self.imageSize, height: self.imageSize) .cornerRadius(10) - .shadow(color: .black.opacity(0.2), radius: 4, x: 0, y: 2) +// .shadow(color: .black.opacity(0.2), radius: 4, x: 0, y: 2) .tapAnimation(scale: 1.2, duration: 0.4) { self.playerManager.openMusicApp() } From d5bb41b33491f06cdcfafb71f5ae290e0ae42e2b Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 1 Dec 2024 13:05:58 +0100 Subject: [PATCH 11/73] New settings WIP --- Tuneful.xcodeproj/project.pbxproj | 8 ++ .../DynamicNotchKit/DynamicNotchInfo.swift | 8 +- .../DynamicNotchKit/NSScreen+Extensions.swift | 4 +- Tuneful/DynamicNotchKit/NotchView.swift | 10 +- Tuneful/DynamicNotchKit/NotchlessView.swift | 82 ++++++++--- Tuneful/Managers/PlayerManager.swift | 1 - Tuneful/Tuneful.swift | 24 +++- Tuneful/Views/HoverButton.swift | 32 +++-- .../MiniPlayer/CompactMiniPlayerView.swift | 5 +- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 3 +- Tuneful/Views/OnboardingView.swift | 53 ++++---- Tuneful/Views/Playback/AlbumArtView.swift | 7 +- .../Views/Playback/PlaybackButtonsView.swift | 4 +- .../Views/Popover/CompactPopoverView.swift | 3 +- Tuneful/Views/Popover/PopoverView.swift | 2 +- Tuneful/Views/SettingsView.swift | 128 ++++++++++++++++++ Tuneful/Windows/MiniPlayerWindow.swift | 1 - Tuneful/Windows/OnboardingWindow.swift | 3 +- Tuneful/Windows/SettingsWindow.swift | 41 ++++++ 19 files changed, 326 insertions(+), 93 deletions(-) create mode 100644 Tuneful/Views/SettingsView.swift create mode 100644 Tuneful/Windows/SettingsWindow.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 2b556d2..fef7d08 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + FE08CE132CFC74E200F047CB /* SettingsWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE08CE122CFC74DE00F047CB /* SettingsWindow.swift */; }; FE1A62F02CBBE3F4001C13CE /* FetchedAlbumArt.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE1A62EF2CBBE3ED001C13CE /* FetchedAlbumArt.swift */; }; FE1A62FB2CBC1B09001C13CE /* DynamicNotch.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE1A62F22CBC1B09001C13CE /* DynamicNotch.swift */; }; FE1A62FC2CBC1B09001C13CE /* NSScreen+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE1A62F82CBC1B09001C13CE /* NSScreen+Extensions.swift */; }; @@ -30,6 +31,7 @@ FE3189FD2A7C3D01006B2D59 /* OnboardingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */; }; FE31AED02CF50708002818ED /* PlaybackPositionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */; }; FE31AEDA2CF7CBAA002818ED /* ScrollWheelModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE31AED92CF7CBA3002818ED /* ScrollWheelModifier.swift */; }; + FE31AEDC2CFBCB76002818ED /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE31AEDB2CFBCB71002818ED /* SettingsView.swift */; }; FE37A0332A829623006FBA5B /* MusicControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE37A0322A829623006FBA5B /* MusicControl.swift */; }; FE37A0352A82982B006FBA5B /* PlayPauseButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE37A0342A82982B006FBA5B /* PlayPauseButton.swift */; }; FE3F67FE2AAD02D100CCE841 /* LaunchAtLogin in Frameworks */ = {isa = PBXBuildFile; productRef = FE3F67FD2AAD02D100CCE841 /* LaunchAtLogin */; }; @@ -106,6 +108,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + FE08CE122CFC74DE00F047CB /* SettingsWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsWindow.swift; sourceTree = ""; }; FE1A62EF2CBBE3ED001C13CE /* FetchedAlbumArt.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchedAlbumArt.swift; sourceTree = ""; }; FE1A62F12CBC1B09001C13CE /* BlurModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlurModifier.swift; sourceTree = ""; }; FE1A62F22CBC1B09001C13CE /* DynamicNotch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DynamicNotch.swift; sourceTree = ""; }; @@ -129,6 +132,7 @@ FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingWindow.swift; sourceTree = ""; }; FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackPositionView.swift; sourceTree = ""; }; FE31AED92CF7CBA3002818ED /* ScrollWheelModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollWheelModifier.swift; sourceTree = ""; }; + FE31AEDB2CFBCB71002818ED /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; FE37A0322A829623006FBA5B /* MusicControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicControl.swift; sourceTree = ""; }; FE37A0342A82982B006FBA5B /* PlayPauseButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayPauseButton.swift; sourceTree = ""; }; FE4414B72AB4999600A73246 /* Notification.Name.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Notification.Name.swift; sourceTree = ""; }; @@ -268,6 +272,7 @@ FE3189DB2A7B9D0B006B2D59 /* Views */ = { isa = PBXGroup; children = ( + FE31AEDB2CFBCB71002818ED /* SettingsView.swift */, FE2554A12CA9CA93003DAB77 /* HoverButton.swift */, FE25549E2CA9C488003DAB77 /* MenuBar */, FE25549D2CA9C471003DAB77 /* Playback */, @@ -284,6 +289,7 @@ FE3189FB2A7C3CEC006B2D59 /* Windows */ = { isa = PBXGroup; children = ( + FE08CE122CFC74DE00F047CB /* SettingsWindow.swift */, FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */, FE2AEE2D2A8FBE3200E8D576 /* MiniPlayerWindow.swift */, ); @@ -587,6 +593,7 @@ FE6BFD022A73AB9A00D3321F /* MusicApplication.swift in Sources */, FEBA3D042B58303A00E25A67 /* View+Extension.swift in Sources */, FE6BFD032A73AB9A00D3321F /* SpotifyApplication.swift in Sources */, + FE31AEDC2CFBCB76002818ED /* SettingsView.swift in Sources */, FE3189FD2A7C3D01006B2D59 /* OnboardingWindow.swift in Sources */, FE79554E2CA34BF0002026AA /* Logger+Extension.swift in Sources */, FEE486E72B5D51FB00AB712F /* MiniPlayerSettingsView.swift in Sources */, @@ -604,6 +611,7 @@ FE6BFCE92A72F37800D3321F /* MiniPlayerView.swift in Sources */, FEFFE5492B488951000887B5 /* StatusBarItemManager.swift in Sources */, FE2AEE322A8FE08500E8D576 /* CustomSliderView.swift in Sources */, + FE08CE132CFC74E200F047CB /* SettingsWindow.swift in Sources */, FE2554A22CA9CA93003DAB77 /* HoverButton.swift in Sources */, FE4C92152B6143CC00FF79BE /* MarqueeTextView.swift in Sources */, FE4808F12B51BA400077BDAA /* AboutSettingsView.swift in Sources */, diff --git a/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift b/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift index 817f0d5..19164c6 100644 --- a/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift +++ b/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift @@ -77,19 +77,15 @@ public extension DynamicNotchInfo { VStack(alignment: .leading) { Text(playerManager.track.title) .font(.headline) + .lineLimit(1) Text(playerManager.track.artist) .foregroundStyle(.secondary) .font(.caption2) - .opacity(1) + .lineLimit(1) } - - Spacer(minLength: 0) } .frame(height: 50) .frame(maxWidth: 250) - .tapAnimation { - playerManager.openMusicApp() - } } } } diff --git a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift index 361688c..3e569ad 100644 --- a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift +++ b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift @@ -17,8 +17,8 @@ extension NSScreen { } var hasNotch: Bool { - return true -// auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil +// return true + auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil } var notchSize: NSSize? { diff --git a/Tuneful/DynamicNotchKit/NotchView.swift b/Tuneful/DynamicNotchKit/NotchView.swift index 5193a99..a2c8447 100644 --- a/Tuneful/DynamicNotchKit/NotchView.swift +++ b/Tuneful/DynamicNotchKit/NotchView.swift @@ -19,8 +19,8 @@ struct NotchView: View where Content: View { Spacer() .frame(width: dynamicNotch.notchWidth, height: dynamicNotch.notchHeight) - if dynamicNotch.isNotificationVisible && !dynamicNotch.isMouseInside { - InfoView(playerManager: dynamicNotch.playerManager) + if !dynamicNotch.isMouseInside && dynamicNotch.isNotificationVisible { + NotchInfoView(playerManager: dynamicNotch.playerManager) .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } @@ -32,7 +32,7 @@ struct NotchView: View where Content: View { } if dynamicNotch.isMouseInside { - PlayerView(playerManager: dynamicNotch.playerManager) + NotchPlayerView(playerManager: dynamicNotch.playerManager) .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } @@ -86,7 +86,7 @@ struct NotchView: View where Content: View { } } -struct InfoView: View { +struct NotchInfoView: View { @ObservedObject private var playerManager: PlayerManager init(playerManager: PlayerManager) { @@ -113,7 +113,7 @@ struct InfoView: View { } } -struct PlayerView: View { +struct NotchPlayerView: View { @ObservedObject private var playerManager: PlayerManager init(playerManager: PlayerManager) { diff --git a/Tuneful/DynamicNotchKit/NotchlessView.swift b/Tuneful/DynamicNotchKit/NotchlessView.swift index 5db63fa..4a88a28 100644 --- a/Tuneful/DynamicNotchKit/NotchlessView.swift +++ b/Tuneful/DynamicNotchKit/NotchlessView.swift @@ -10,8 +10,6 @@ import SwiftUI struct NotchlessView: View where Content: View { @ObservedObject var dynamicNotch: DynamicNotch @State var windowHeight: CGFloat = 0 - @State var title: String = "" - @State var artist: String = "" var body: some View { VStack(spacing: 0) { @@ -19,8 +17,9 @@ struct NotchlessView: View where Content: View { Spacer() VStack(spacing: 0) { - dynamicNotch.content() - .id(dynamicNotch.contentID) + Spacer(minLength: 20) + + NotchlessInfoView(playerManager: dynamicNotch.playerManager) .safeAreaInset(edge: .top, spacing: 0) { Color.clear.frame(height: 10) } .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 10) } .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 13) } @@ -29,25 +28,23 @@ struct NotchlessView: View where Content: View { .fixedSize() if dynamicNotch.isMouseInside { - VStack { - PlaybackButtonsView(playButtonSize: 20) - .environmentObject(dynamicNotch.playerManager) - PlaybackPositionView(sliderHeight: 6, inline: true) - .environmentObject(dynamicNotch.playerManager) - } - .frame(width: dynamicNotch.notchWidth * 0.75) - .padding(.bottom, 15) + NotchlessPlayerView(playerManager: dynamicNotch.playerManager) } } + .fixedSize() .onHover { hovering in -// if !dynamicNotch.isVisible { -// return -// } withAnimation(dynamicNotch.animation) { dynamicNotch.isVisible = hovering dynamicNotch.isMouseInside = hovering } } + .onChange(of: dynamicNotch.isMouseInside) { isMouseInside in + if isMouseInside { + dynamicNotch.playerManager.startTimer() + } else { + dynamicNotch.playerManager.stopTimer() + } + } .background { VisualEffectView(material: .popover, blendingMode: .behindWindow) .overlay { @@ -66,12 +63,65 @@ struct NotchlessView: View where Content: View { } } } - .offset(y: dynamicNotch.isVisible ? dynamicNotch.notchHeight : -windowHeight) + .offset(y: dynamicNotch.isVisible ? dynamicNotch.notchHeight - 50 : -windowHeight + 7) .animation(dynamicNotch.animation, value: dynamicNotch.contentID) + .opacity(dynamicNotch.isVisible ? 1 : 0.025) Spacer() } + Spacer() } } } + +struct NotchlessInfoView: View { + @ObservedObject private var playerManager: PlayerManager + + init(playerManager: PlayerManager) { + self.playerManager = playerManager + } + + public var body: some View { + HStack(spacing: 10) { + AlbumArtView(imageSize: 50) + .environmentObject(playerManager) + + VStack(alignment: .leading) { + Text(playerManager.track.title) + .font(.headline) + .lineLimit(1) + Text(playerManager.track.artist) + .foregroundStyle(.secondary) + .font(.caption2) + .lineLimit(1) + } + } + .onTapGesture { + playerManager.openMusicApp() + } + .frame(height: 50) + .frame(maxWidth: 250) + } +} + +struct NotchlessPlayerView: View { + @ObservedObject private var playerManager: PlayerManager + + init(playerManager: PlayerManager) { + self.playerManager = playerManager + } + + public var body: some View { + VStack { + PlaybackButtonsView(playButtonSize: 20, spacing: 20) + .environmentObject(playerManager) + .padding(.bottom, 5) + PlaybackPositionView(sliderHeight: 6, inline: true) + .environmentObject(playerManager) + } + .frame(width: 250) + .padding(.bottom, 15) + .padding(.horizontal, 15) + } +} diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index 0b5c199..2f2a802 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -213,7 +213,6 @@ public class PlayerManager: ObservableObject { if musicAppKilled || !musicApp.isRunning() { self.track = Track() self.updateMenuBarText(playerAppIsRunning: isRunningFromNotification) - self.notchInfo.updateNotchWidth(isPlaying: false) return } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index bd341ff..9c7624a 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -9,6 +9,7 @@ import SwiftUI import Sparkle import KeyboardShortcuts import Settings +import Luminare class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { @AppStorage("popoverType") var popoverType: PopoverType = .full @@ -44,6 +45,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { userDriverDelegate: nil ) + private var settingsWindow = LuminareTrafficLightedWindow(view: { SettingsView() }) + // Settings let GeneralSettingsViewController: () -> SettingsPane = { let paneView = Settings.Pane( @@ -125,6 +128,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // UserDefaults.standard.removePersistentDomain(forName: bundleID) // } + self.settingsWindow.isReleasedWhenClosed = false self.playerManager = PlayerManager() self.statusBarItemManager = StatusBarItemManager(playerManager: playerManager) self.statusBarPlaybackManager = StatusBarPlaybackManager(playerManager: playerManager) @@ -143,6 +147,10 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } } + func windowShouldClose(_ sender: NSWindow) -> Bool { + return true + } + private func mainSetup() { self.setupPopover() self.setupMiniPlayer() @@ -224,7 +232,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { statusBarMenu.addItem( withTitle: "Settings...", - action: #selector(openSettings), + action: #selector(openSettingsWindow), keyEquivalent: "" ) @@ -444,11 +452,19 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } let rootView = view.cornerRadius(15).environmentObject(self.playerManager) - let hostedOnboardingView = NSHostingView(rootView: rootView) - miniPlayerWindow.contentView = hostedOnboardingView + let miniPlayerView = NSHostingView(rootView: rootView) + miniPlayerWindow.contentView = miniPlayerView toggleMiniPlayerWindowLevel() } + // MARK: New settings + + @objc func openSettingsWindow() { + settingsWindow.orderFrontRegardless() + settingsWindow.makeKeyAndOrderFront(nil) + NSApplication.shared.activate(ignoringOtherApps: true) + } + // MARK: Settings @objc func openSettings(_ sender: AnyObject) { @@ -488,7 +504,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { public func showOnboarding() { if onboardingWindow == nil { onboardingWindow = OnboardingWindow() - let rootView = OnboardingView() + let rootView = OnboardingView().cornerRadius(12.5) let hostedOnboardingView = NSHostingView(rootView: rootView) onboardingWindow.contentView = hostedOnboardingView } diff --git a/Tuneful/Views/HoverButton.swift b/Tuneful/Views/HoverButton.swift index a7764b2..1abcfb9 100644 --- a/Tuneful/Views/HoverButton.swift +++ b/Tuneful/Views/HoverButton.swift @@ -20,20 +20,26 @@ struct HoverButton: View { Rectangle() .fill(.clear) .contentShape(Rectangle()) - .frame(width: iconSize * 1.1, height: iconSize * 1.1) + .frame(width: iconSize, height: iconSize) .overlay { - if #available(macOS 14.0, *) { - Image(systemName: icon) - .resizable() - .aspectRatio(contentMode: .fit) - .frame(width: isHovering ? iconSize * 1.1 : iconSize, height: isHovering ? iconSize * 1.1 : iconSize) - .contentTransition(.symbolEffect) - } else { - Image(systemName: icon) - .resizable() - .aspectRatio(contentMode: .fit) - .frame(width: isHovering ? iconSize * 1.1 : iconSize, height: isHovering ? iconSize * 1.1 : iconSize) - } + Capsule() + .fill(isHovering ? Color.gray.opacity(0.3) : .clear) + .frame(width: iconSize * 1.75, height: iconSize * 1.75) + .overlay { + if #available(macOS 14.0, *) { + Image(systemName: icon) + .resizable() + .scaledToFit() + .frame(width: iconSize, height: iconSize) + .contentTransition(.symbolEffect) + } else { + Image(systemName: icon) + .resizable() + .scaledToFit() + .frame(width: iconSize, height: iconSize) + .contentTransition(.opacity) + } + } } } .buttonStyle(.plain) diff --git a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift index 40b3646..299d402 100644 --- a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift @@ -41,9 +41,8 @@ struct CompactMiniPlayerView: View { .shadow(color: .black.opacity(0.2), radius: 4, x: 0, y: 2) .dragWindowWithClick() - PlaybackButtonsView(playButtonSize: 20, hideShuffleAndRepeat: true) - .padding(.horizontal, 15) - .padding(.vertical, 10) + PlaybackButtonsView(playButtonSize: 17.5, hideShuffleAndRepeat: true, spacing: 17.5) + .padding(15) .background( VisualEffectView(material: .popover, blendingMode: .withinWindow) .overlay { diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index c586d0b..61e598e 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -38,7 +38,6 @@ struct MiniPlayerView: View { ZStack { AlbumArtView(imageSize: self.imageSize) .padding(.leading, 7) - .shadow(color: .black.opacity(0.2), radius: 4, x: 0, y: 2) .dragWindowWithClick() AddToFavoritesView() @@ -72,7 +71,7 @@ struct MiniPlayerView: View { PlaybackPositionView() } - PlaybackButtonsView(playButtonSize: 20, spacing: 10) + PlaybackButtonsView(playButtonSize: 17.5, spacing: 12.5) } .padding() .opacity(0.8) diff --git a/Tuneful/Views/OnboardingView.swift b/Tuneful/Views/OnboardingView.swift index f1143b6..c668c3c 100644 --- a/Tuneful/Views/OnboardingView.swift +++ b/Tuneful/Views/OnboardingView.swift @@ -8,11 +8,12 @@ import SwiftUI import ScriptingBridge import KeyboardShortcuts +import Luminare struct OnboardingView: View { private enum Steps { - case onAppPicker, onDetails, onShortcuts + case onAppPicker, onDetails, allDone } @AppStorage("viewedShortcutsSetup") var viewedShortcutsSetup: Bool = false @@ -28,6 +29,7 @@ struct OnboardingView: View { .resizable() .scaledToFit() .frame(width: 60, height: 60) + .padding(.bottom, 10) if step == .onAppPicker { Text("1. Preferred Music App") @@ -37,8 +39,8 @@ struct OnboardingView: View { Text("2. Permissions") .font(.title2) .fontWeight(.semibold) - } else if step == .onShortcuts { - Text("3. Global Keyboard Shortcuts") + } else if step == .allDone { + Text("3. All Done!") .font(.title2) .fontWeight(.semibold) } else { @@ -51,25 +53,25 @@ struct OnboardingView: View { AppPicker() } else if step == .onDetails { Details(finishedAlert: $finishedAlert) - } else if step == .onShortcuts { - Shortcuts() + } else if step == .allDone { + AllDone() } else { EmptyView() } } .frame(width: 400, height: 250) .padding(.horizontal, 30) - .animation(.spring(), value: step) + .animation(Constants.SongTransitionAnimation, value: step) Divider() - .frame(width: 250) + .frame(width: 300) HStack { if step == .onDetails { Button("Back") { step = .onAppPicker } - } else if step == .onShortcuts { + } else if step == .allDone { Button("Back") { step = .onDetails } @@ -87,7 +89,7 @@ struct OnboardingView: View { .keyboardShortcut(.defaultAction) } else if step == .onDetails { Button("Continue") { - step = .onShortcuts + step = .allDone } .keyboardShortcut(.defaultAction) .disabled(!finishedAlert) @@ -101,6 +103,13 @@ struct OnboardingView: View { .frame(width: 150, height: 50) } .frame(width: 600, height: 500) + .background( + VisualEffectView(material: .popover, blendingMode: .behindWindow) + ) + .overlay { + RoundedRectangle(cornerRadius: 10, style: .continuous) + .strokeBorder(.quaternary, lineWidth: 1) + } } } @@ -186,28 +195,14 @@ struct Details: View { } } -struct Shortcuts: View { +struct AllDone: View { var body: some View { VStack { - VStack(alignment: .center, content: { - Form { - KeyboardShortcuts.Recorder("Play/pause:", name: .playPause) - KeyboardShortcuts.Recorder("Next track:", name: .nextTrack) - KeyboardShortcuts.Recorder("Previous track:", name: .previousTrack) - KeyboardShortcuts.Recorder("Show/hide mini player:", name: .showMiniPlayer) - KeyboardShortcuts.Recorder("Switch music player:", name: .changeMusicPlayer) - KeyboardShortcuts.Recorder("Show/hide menu bar player:", name: .toggleMenuBarItemVisibility) - KeyboardShortcuts.Recorder("Show/hide popover:", name: .togglePopover) - } - .frame(maxWidth: .infinity, alignment: .center) - - Text("You can always change these later") - .font(.caption) - .foregroundColor(.secondary) - .padding(.top, 5) - }) - .padding(.horizontal, 50) + Text(""" + To fully customize Tuneful, right-click Tuneful icon in menu bar and go to Settings. + """) + .font(.caption) + .multilineTextAlignment(.center) } - .padding(.bottom, 90) } } diff --git a/Tuneful/Views/Playback/AlbumArtView.swift b/Tuneful/Views/Playback/AlbumArtView.swift index 6b849a1..962e034 100644 --- a/Tuneful/Views/Playback/AlbumArtView.swift +++ b/Tuneful/Views/Playback/AlbumArtView.swift @@ -14,16 +14,11 @@ struct AlbumArtView: View { var body: some View { ZStack { -// playerManager.track.albumArt -// .resizable() -// -// VisualEffectView(material: .popover, blendingMode: .withinWindow) - playerManager.track.albumArt .resizable() .frame(width: self.imageSize, height: self.imageSize) .cornerRadius(10) -// .shadow(color: .black.opacity(0.2), radius: 4, x: 0, y: 2) + .shadow(color: .black.opacity(0.3), radius: 5, x: 0, y: 2) .tapAnimation(scale: 1.2, duration: 0.4) { self.playerManager.openMusicApp() } diff --git a/Tuneful/Views/Playback/PlaybackButtonsView.swift b/Tuneful/Views/Playback/PlaybackButtonsView.swift index ca576f8..f718ebd 100644 --- a/Tuneful/Views/Playback/PlaybackButtonsView.swift +++ b/Tuneful/Views/Playback/PlaybackButtonsView.swift @@ -17,7 +17,7 @@ struct PlaybackButtonsView: View { var body: some View { HStack(spacing: spacing) { if !hideShuffleAndRepeat { - HoverButton(icon: "shuffle", iconSize: playButtonSize * 0.6) { + HoverButton(icon: "shuffle", iconSize: playButtonSize * 0.75) { playerManager.setShuffle() } .font(playerManager.shuffleIsOn ? Font.title.weight(.black) : Font.title.weight(.ultraLight)) @@ -48,7 +48,7 @@ struct PlaybackButtonsView: View { } if !hideShuffleAndRepeat { - HoverButton(icon: "repeat", iconSize: playButtonSize * 0.6) { + HoverButton(icon: "repeat", iconSize: playButtonSize * 0.75) { playerManager.setRepeat() } .font(playerManager.repeatIsOn ? Font.title.weight(.bold) : Font.title.weight(.light)) diff --git a/Tuneful/Views/Popover/CompactPopoverView.swift b/Tuneful/Views/Popover/CompactPopoverView.swift index ca27660..2fc80df 100644 --- a/Tuneful/Views/Popover/CompactPopoverView.swift +++ b/Tuneful/Views/Popover/CompactPopoverView.swift @@ -41,7 +41,8 @@ struct CompactPopoverView: View { .frame(height: playerManager.musicApp.playbackSeekerEnabled ? 90 : 125) VStack(alignment: .center) { - PlaybackButtonsView(playButtonSize: 22.5, spacing: 10) + PlaybackButtonsView(playButtonSize: 20, spacing: 15) + .padding(3) if playerManager.musicApp.playbackSeekerEnabled { PlaybackPositionView() diff --git a/Tuneful/Views/Popover/PopoverView.swift b/Tuneful/Views/Popover/PopoverView.swift index d88ee29..7ee34a0 100644 --- a/Tuneful/Views/Popover/PopoverView.swift +++ b/Tuneful/Views/Popover/PopoverView.swift @@ -66,7 +66,7 @@ struct PopoverView: View { PlaybackPositionView() } - PlaybackButtonsView(playButtonSize: 25) + PlaybackButtonsView(playButtonSize: 22.5, spacing: 17.5) .padding(.vertical, 5) HStack { diff --git a/Tuneful/Views/SettingsView.swift b/Tuneful/Views/SettingsView.swift new file mode 100644 index 0000000..8e79b9b --- /dev/null +++ b/Tuneful/Views/SettingsView.swift @@ -0,0 +1,128 @@ +import SwiftUI +import Luminare + +struct SettingsView: View { + @State private var selectedCategory: SettingsCategory? = .general + + var body: some View { + // NavigationView { + // List(SettingsCategory.allCases, selection: $selectedCategory) { category in + // VStack(alignment: .leading) { + // Button(action: { selectedCategory = category }) { + // HStack { + // Image(systemName: category.iconName) + // Text(category.title) + // } + // .frame(maxWidth: .infinity, alignment: .leading) + // } + // .if(category == selectedCategory) { button in + // button.buttonStyle(LuminareCompactButtonStyle()) + // } + // .if(category != selectedCategory) { button in + // button + // .buttonStyle(PlainButtonStyle()) + // .padding(.horizontal, 12) // Same as LuminareCompactButtonStyle + // } + // } + // .frame(width: 200, height: 40) + // } + // .listStyle(.sidebar) + // .frame(width: 250) + // .background( + // VisualEffectView(material: .underWindowBackground, blendingMode: .behindWindow) + // ) + // .offset(y: 60) + // + // VStack { + // Text(selectedCategory!.title) + // .frame(width: 550, height: 50) + // + // Divider() + // + // selectedCategory!.detailView + // .frame(width: 550, height: 450) + // } + // .background( + // VisualEffectView(material: .underWindowBackground, blendingMode: .behindWindow) + // ) + // } + HStack { + VStack { + Text("Test") + } + .offset(y: -60) + .frame(width: 300, height: 800) + + Divider() + .frame(height: 800) + .offset(y: -60) + + VStack { + Text("Test") + } + .offset(y: -60) + .frame(width: 500, height: 800) + .background( + VisualEffectView(material: .sidebar, blendingMode: .behindWindow) + ) + } + .frame(width: 800, height: 500) +// .background( +// VisualEffectView(material: .sidebar, blendingMode: .behindWindow) +// ) + } +} + +enum SettingsCategory: String, Identifiable, CaseIterable { + case general + case appearance + case privacy + + var id: String { rawValue } + + var title: String { + switch self { + case .general: return "General" + case .appearance: return "Appearance" + case .privacy: return "Privacy" + } + } + + var iconName: String { + switch self { + case .general: return "gear" + case .appearance: return "paintbrush" + case .privacy: return "lock.shield" + } + } + + @ViewBuilder + var detailView: some View { + switch self { + case .general: GeneralSettingsView().border(Color.green) + case .appearance: AppearanceSettingsView() + case .privacy: PrivacySettingsView() + } + } +} + +struct GeneralSettingsView2: View { + var body: some View { + Text("General Settings") + .font(.title) + } +} + +struct AppearanceSettingsView: View { + var body: some View { + Text("Appearance Settings") + .font(.title) + } +} + +struct PrivacySettingsView: View { + var body: some View { + Text("Privacy Settings") + .font(.title) + } +} diff --git a/Tuneful/Windows/MiniPlayerWindow.swift b/Tuneful/Windows/MiniPlayerWindow.swift index 4b4a386..8146da8 100644 --- a/Tuneful/Windows/MiniPlayerWindow.swift +++ b/Tuneful/Windows/MiniPlayerWindow.swift @@ -9,7 +9,6 @@ import SwiftUI import AppKit class MiniPlayerWindow: NSWindow { - @AppStorage("miniPlayerType") var miniPlayerType: MiniPlayerType = .minimal @AppStorage("windowPosition") var savedPosition: String = "10,0" diff --git a/Tuneful/Windows/OnboardingWindow.swift b/Tuneful/Windows/OnboardingWindow.swift index dee1b36..ea91db1 100644 --- a/Tuneful/Windows/OnboardingWindow.swift +++ b/Tuneful/Windows/OnboardingWindow.swift @@ -11,7 +11,7 @@ class OnboardingWindow: NSWindow { init() { super.init( contentRect: NSRect(x: 0, y: 0, width: 500, height: 200), - styleMask: [.titled, .fullSizeContentView], + styleMask: [.borderless], backing: .buffered, defer: false ) @@ -20,5 +20,6 @@ class OnboardingWindow: NSWindow { self.isMovableByWindowBackground = true self.isReleasedWhenClosed = true self.level = .floating + self.backgroundColor = NSColor.clear } } diff --git a/Tuneful/Windows/SettingsWindow.swift b/Tuneful/Windows/SettingsWindow.swift new file mode 100644 index 0000000..7110651 --- /dev/null +++ b/Tuneful/Windows/SettingsWindow.swift @@ -0,0 +1,41 @@ +// +// SettingsWindow.swift +// Tuneful +// +// Created by Martin Fekete on 01/12/2024. +// + +import SwiftUI + +public class SettingsWindow: NSWindow, ObservableObject { + public init() { + super.init( + contentRect: .zero, + styleMask: [.titled, .closable, .fullSizeContentView], + backing: .buffered, + defer: true + ) + + let hostingView = NSHostingView( + rootView: SettingsView() + ) + + backgroundColor = .clear + contentView = hostingView + contentView?.wantsLayer = true + ignoresMouseEvents = false + isOpaque = false + hasShadow = true + titleVisibility = .hidden + + toolbarStyle = .unified + titlebarAppearsTransparent = true + titleVisibility = .hidden + + let customToolbar = NSToolbar() + customToolbar.showsBaselineSeparator = false + toolbar = customToolbar + + center() + } +} From 1479cf060ea84f11280d59f5d4003a802a035066 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 1 Dec 2024 16:31:13 +0100 Subject: [PATCH 12/73] New settings WIP --- Tuneful.xcodeproj/project.pbxproj | 4 + .../Views/Settings/GeneralSettingsView.swift | 5 +- .../Views/Settings/MenuBarSettingsView.swift | 4 +- Tuneful/Views/Settings/SettingsProtocol.swift | 11 ++ Tuneful/Views/SettingsView.swift | 124 +++++++----------- 5 files changed, 67 insertions(+), 81 deletions(-) create mode 100644 Tuneful/Views/Settings/SettingsProtocol.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index fef7d08..4c65d81 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ FE08CE132CFC74E200F047CB /* SettingsWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE08CE122CFC74DE00F047CB /* SettingsWindow.swift */; }; + FE08CE152CFCB2D100F047CB /* SettingsProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE08CE142CFCB2C800F047CB /* SettingsProtocol.swift */; }; FE1A62F02CBBE3F4001C13CE /* FetchedAlbumArt.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE1A62EF2CBBE3ED001C13CE /* FetchedAlbumArt.swift */; }; FE1A62FB2CBC1B09001C13CE /* DynamicNotch.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE1A62F22CBC1B09001C13CE /* DynamicNotch.swift */; }; FE1A62FC2CBC1B09001C13CE /* NSScreen+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE1A62F82CBC1B09001C13CE /* NSScreen+Extensions.swift */; }; @@ -109,6 +110,7 @@ /* Begin PBXFileReference section */ FE08CE122CFC74DE00F047CB /* SettingsWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsWindow.swift; sourceTree = ""; }; + FE08CE142CFCB2C800F047CB /* SettingsProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsProtocol.swift; sourceTree = ""; }; FE1A62EF2CBBE3ED001C13CE /* FetchedAlbumArt.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchedAlbumArt.swift; sourceTree = ""; }; FE1A62F12CBC1B09001C13CE /* BlurModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlurModifier.swift; sourceTree = ""; }; FE1A62F22CBC1B09001C13CE /* DynamicNotch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DynamicNotch.swift; sourceTree = ""; }; @@ -438,6 +440,7 @@ FEF0660A2B51905200A514F2 /* Settings */ = { isa = PBXGroup; children = ( + FE08CE142CFCB2C800F047CB /* SettingsProtocol.swift */, FEFFE54C2B49EF97000887B5 /* MenuBarSettingsView.swift */, FEF0660B2B51907200A514F2 /* KeyboardShortcutSettingsView.swift */, FE4808F02B51BA400077BDAA /* AboutSettingsView.swift */, @@ -574,6 +577,7 @@ FEF066112B51914900A514F2 /* KeyboardShortcuts+Extension.swift in Sources */, FE1A62F02CBBE3F4001C13CE /* FetchedAlbumArt.swift in Sources */, FE445FE42A977D0E001CA55A /* Double+Extension.swift in Sources */, + FE08CE152CFCB2D100F047CB /* SettingsProtocol.swift in Sources */, FE37A0332A829623006FBA5B /* MusicControl.swift in Sources */, FEF53A6E2AEFF42300CE4981 /* AlertItem.swift in Sources */, FE1A62FB2CBC1B09001C13CE /* DynamicNotch.swift in Sources */, diff --git a/Tuneful/Views/Settings/GeneralSettingsView.swift b/Tuneful/Views/Settings/GeneralSettingsView.swift index 2256e0c..6ca20e2 100644 --- a/Tuneful/Views/Settings/GeneralSettingsView.swift +++ b/Tuneful/Views/Settings/GeneralSettingsView.swift @@ -10,7 +10,10 @@ import Settings import LaunchAtLogin import Luminare -struct GeneralSettingsView: View { +struct GeneralSettingsView: View, SettingsProtocol { + var title: String = "General" + var systemImage: String = "switch.2" + @AppStorage("connectedApp") private var connectedAppAppStorage = ConnectedApps.appleMusic @AppStorage("showSongNotification") private var showSongNotificationAppStorage = true @AppStorage("notificationDuration") private var notificationDurationAppStorage = 2.0 diff --git a/Tuneful/Views/Settings/MenuBarSettingsView.swift b/Tuneful/Views/Settings/MenuBarSettingsView.swift index 8af0002..961a1de 100644 --- a/Tuneful/Views/Settings/MenuBarSettingsView.swift +++ b/Tuneful/Views/Settings/MenuBarSettingsView.swift @@ -9,7 +9,9 @@ import SwiftUI import Settings import Luminare -struct MenuBarSettingsView: View { +struct MenuBarSettingsView: View, SettingsProtocol { + var title: String = "Menu bar" + var systemImage: String = "menubar.rectangle" @AppStorage("menuBarItemWidth") var menuBarItemWidthAppStorage: Double = 150 @AppStorage("statusBarIcon") var statusBarIconAppStorage: StatusBarIcon = .albumArt diff --git a/Tuneful/Views/Settings/SettingsProtocol.swift b/Tuneful/Views/Settings/SettingsProtocol.swift new file mode 100644 index 0000000..6e44b53 --- /dev/null +++ b/Tuneful/Views/Settings/SettingsProtocol.swift @@ -0,0 +1,11 @@ +// +// SettingsProtocol.swift +// Tuneful +// +// Created by Martin Fekete on 01/12/2024. +// + +protocol SettingsProtocol { + var title: String { get } + var systemImage: String { get } +} diff --git a/Tuneful/Views/SettingsView.swift b/Tuneful/Views/SettingsView.swift index 8e79b9b..8515228 100644 --- a/Tuneful/Views/SettingsView.swift +++ b/Tuneful/Views/SettingsView.swift @@ -2,106 +2,72 @@ import SwiftUI import Luminare struct SettingsView: View { - @State private var selectedCategory: SettingsCategory? = .general + @State private var selectedCategory: SettingsCategory = .general var body: some View { - // NavigationView { - // List(SettingsCategory.allCases, selection: $selectedCategory) { category in - // VStack(alignment: .leading) { - // Button(action: { selectedCategory = category }) { - // HStack { - // Image(systemName: category.iconName) - // Text(category.title) - // } - // .frame(maxWidth: .infinity, alignment: .leading) - // } - // .if(category == selectedCategory) { button in - // button.buttonStyle(LuminareCompactButtonStyle()) - // } - // .if(category != selectedCategory) { button in - // button - // .buttonStyle(PlainButtonStyle()) - // .padding(.horizontal, 12) // Same as LuminareCompactButtonStyle - // } - // } - // .frame(width: 200, height: 40) - // } - // .listStyle(.sidebar) - // .frame(width: 250) - // .background( - // VisualEffectView(material: .underWindowBackground, blendingMode: .behindWindow) - // ) - // .offset(y: 60) - // - // VStack { - // Text(selectedCategory!.title) - // .frame(width: 550, height: 50) - // - // Divider() - // - // selectedCategory!.detailView - // .frame(width: 550, height: 450) - // } - // .background( - // VisualEffectView(material: .underWindowBackground, blendingMode: .behindWindow) - // ) - // } - HStack { - VStack { - Text("Test") + HStack(alignment: .top, spacing: 0) { + VStack(alignment: .leading, spacing: 0) { + ForEach(SettingsCategory.allCases) { category in + Button(action: { selectedCategory = category }) { + HStack { + Image(systemName: category.iconName) + Text(category.title) + Spacer() + } + .contentShape(Rectangle()) + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + .frame(width: 230, height: 40) + .if(category == selectedCategory) { button in + button.buttonStyle(LuminareCompactButtonStyle()) + } + .if(category != selectedCategory) { button in + button + .buttonStyle(PlainButtonStyle()) + .padding(.horizontal, 12) // Same as LuminareCompactButtonStyle + } + } } - .offset(y: -60) - .frame(width: 300, height: 800) + .padding() - Divider() - .frame(height: 800) - .offset(y: -60) - - VStack { - Text("Test") + VStack(alignment: .leading, spacing: 0) { + Text(selectedCategory.title) + .font(.title3) + .fontWeight(.bold) + .padding() + + selectedCategory.detailView } - .offset(y: -60) - .frame(width: 500, height: 800) - .background( - VisualEffectView(material: .sidebar, blendingMode: .behindWindow) - ) + .offset(y: -35) } - .frame(width: 800, height: 500) -// .background( -// VisualEffectView(material: .sidebar, blendingMode: .behindWindow) -// ) } } enum SettingsCategory: String, Identifiable, CaseIterable { case general - case appearance - case privacy + case menuBar var id: String { rawValue } - var title: String { + @ViewBuilder + var detailView: some View { switch self { - case .general: return "General" - case .appearance: return "Appearance" - case .privacy: return "Privacy" + case .general: GeneralSettingsView() + case .menuBar: MenuBarSettingsView() } } - - var iconName: String { + + var title: String { switch self { - case .general: return "gear" - case .appearance: return "paintbrush" - case .privacy: return "lock.shield" + case .general: GeneralSettingsView().title + case .menuBar: MenuBarSettingsView().title } } - - @ViewBuilder - var detailView: some View { + + var iconName: String { switch self { - case .general: GeneralSettingsView().border(Color.green) - case .appearance: AppearanceSettingsView() - case .privacy: PrivacySettingsView() + case .general: GeneralSettingsView().systemImage + case .menuBar: MenuBarSettingsView().systemImage } } } From 05071cd3d05f97e665f85f941aee174fc2876d7c Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 1 Dec 2024 17:51:49 +0100 Subject: [PATCH 13/73] Added notch settings --- Tuneful.xcodeproj/project.pbxproj | 12 +- Tuneful/Extensions/Settings+Extension.swift | 5 +- Tuneful/Tuneful.swift | 48 ++--- .../Settings/AppearanceSettingsView.swift | 171 ++++++++++++++++++ .../Views/Settings/GeneralSettingsView.swift | 2 +- .../Views/Settings/MenuBarSettingsView.swift | 2 +- .../Views/Settings/NotchSettingsView.swift | 41 +++++ Tuneful/Views/Settings/SettingsProtocol.swift | 11 -- Tuneful/Views/SettingsView.swift | 21 --- 9 files changed, 241 insertions(+), 72 deletions(-) create mode 100644 Tuneful/Views/Settings/AppearanceSettingsView.swift create mode 100644 Tuneful/Views/Settings/NotchSettingsView.swift delete mode 100644 Tuneful/Views/Settings/SettingsProtocol.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 4c65d81..56d1033 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -8,7 +8,8 @@ /* Begin PBXBuildFile section */ FE08CE132CFC74E200F047CB /* SettingsWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE08CE122CFC74DE00F047CB /* SettingsWindow.swift */; }; - FE08CE152CFCB2D100F047CB /* SettingsProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE08CE142CFCB2C800F047CB /* SettingsProtocol.swift */; }; + FE08CE172CFCC53500F047CB /* NotchSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE08CE162CFCC51900F047CB /* NotchSettingsView.swift */; }; + FE08CE192CFCC76E00F047CB /* AppearanceSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE08CE182CFCC76700F047CB /* AppearanceSettingsView.swift */; }; FE1A62F02CBBE3F4001C13CE /* FetchedAlbumArt.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE1A62EF2CBBE3ED001C13CE /* FetchedAlbumArt.swift */; }; FE1A62FB2CBC1B09001C13CE /* DynamicNotch.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE1A62F22CBC1B09001C13CE /* DynamicNotch.swift */; }; FE1A62FC2CBC1B09001C13CE /* NSScreen+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE1A62F82CBC1B09001C13CE /* NSScreen+Extensions.swift */; }; @@ -110,7 +111,8 @@ /* Begin PBXFileReference section */ FE08CE122CFC74DE00F047CB /* SettingsWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsWindow.swift; sourceTree = ""; }; - FE08CE142CFCB2C800F047CB /* SettingsProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsProtocol.swift; sourceTree = ""; }; + FE08CE162CFCC51900F047CB /* NotchSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotchSettingsView.swift; sourceTree = ""; }; + FE08CE182CFCC76700F047CB /* AppearanceSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppearanceSettingsView.swift; sourceTree = ""; }; FE1A62EF2CBBE3ED001C13CE /* FetchedAlbumArt.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchedAlbumArt.swift; sourceTree = ""; }; FE1A62F12CBC1B09001C13CE /* BlurModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlurModifier.swift; sourceTree = ""; }; FE1A62F22CBC1B09001C13CE /* DynamicNotch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DynamicNotch.swift; sourceTree = ""; }; @@ -440,7 +442,8 @@ FEF0660A2B51905200A514F2 /* Settings */ = { isa = PBXGroup; children = ( - FE08CE142CFCB2C800F047CB /* SettingsProtocol.swift */, + FE08CE182CFCC76700F047CB /* AppearanceSettingsView.swift */, + FE08CE162CFCC51900F047CB /* NotchSettingsView.swift */, FEFFE54C2B49EF97000887B5 /* MenuBarSettingsView.swift */, FEF0660B2B51907200A514F2 /* KeyboardShortcutSettingsView.swift */, FE4808F02B51BA400077BDAA /* AboutSettingsView.swift */, @@ -568,6 +571,7 @@ FE7B09D22CB997F600FBB6F8 /* AppIcons.swift in Sources */, FEF0660C2B51907200A514F2 /* KeyboardShortcutSettingsView.swift in Sources */, FEA6FB232B04169B00DACC43 /* AudioDevice.swift in Sources */, + FE08CE192CFCC76E00F047CB /* AppearanceSettingsView.swift in Sources */, FE3189F82A7C3B1A006B2D59 /* Helper.swift in Sources */, FE2368A02B62EB7400B43D8B /* ShowStatusBarTrackInfo.swift in Sources */, FE2AEE392A93A50900E8D576 /* PressButtonStyle.swift in Sources */, @@ -577,7 +581,6 @@ FEF066112B51914900A514F2 /* KeyboardShortcuts+Extension.swift in Sources */, FE1A62F02CBBE3F4001C13CE /* FetchedAlbumArt.swift in Sources */, FE445FE42A977D0E001CA55A /* Double+Extension.swift in Sources */, - FE08CE152CFCB2D100F047CB /* SettingsProtocol.swift in Sources */, FE37A0332A829623006FBA5B /* MusicControl.swift in Sources */, FEF53A6E2AEFF42300CE4981 /* AlertItem.swift in Sources */, FE1A62FB2CBC1B09001C13CE /* DynamicNotch.swift in Sources */, @@ -636,6 +639,7 @@ FE1F7E952B89E92A00B702AD /* StatusBarPlaybackManager.swift in Sources */, FE6BFCFB2A73A7CA00D3321F /* SupportedApps.swift in Sources */, FE6BFCE72A72F37800D3321F /* Tuneful.swift in Sources */, + FE08CE172CFCC53500F047CB /* NotchSettingsView.swift in Sources */, FEF53A6C2AEFF3D600CE4981 /* NotificationView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Tuneful/Extensions/Settings+Extension.swift b/Tuneful/Extensions/Settings+Extension.swift index a72e713..1988669 100644 --- a/Tuneful/Extensions/Settings+Extension.swift +++ b/Tuneful/Extensions/Settings+Extension.swift @@ -11,9 +11,8 @@ import enum Settings.Settings extension Settings.PaneIdentifier { static let general = Self("general") - static let popover = Self("popover") - static let menuBar = Self("menuBar") - static let miniPlayer = Self("miniPlayer") + static let appearance = Self("appearance") + static let notch = Self("notch") static let keyboard = Self("keyboard") static let about = Self("about") } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 9c7624a..62acc20 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -61,37 +61,25 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { return Settings.PaneHostingController(pane: paneView) } - let PopoverSettingsViewController: () -> SettingsPane = { + let AppearanceSettingsViewController: () -> SettingsPane = { let paneView = Settings.Pane( - identifier: .popover, - title: "Popover", - toolbarIcon: NSImage(systemSymbolName: "rectangle.portrait", accessibilityDescription: "Popover settings")! + identifier: .appearance, + title: "Appearance", + toolbarIcon: NSImage(systemSymbolName: "paintbrush", accessibilityDescription: "Appearance settings")! ) { - PopoverSettingsView() + AppearanceSettingsView() } return Settings.PaneHostingController(pane: paneView) } - let MenuBarSettingsViewController: () -> SettingsPane = { + let NotchSettingsViewController: () -> SettingsPane = { let paneView = Settings.Pane( - identifier: .menuBar, - title: "Menu bar", - toolbarIcon: NSImage(systemSymbolName: "menubar.rectangle", accessibilityDescription: "Menu bar settings")! + identifier: .notch, + title: "Notch", + toolbarIcon: NSImage(systemSymbolName: "button.roundedbottom.horizontal", accessibilityDescription: "Notch settings")! ) { - MenuBarSettingsView() - } - - return Settings.PaneHostingController(pane: paneView) - } - - let MiniPlayerSettingsViewController: () -> SettingsPane = { - let paneView = Settings.Pane( - identifier: .miniPlayer, - title: "Mini player", - toolbarIcon: NSImage(systemSymbolName: "play.rectangle.on.rectangle.fill", accessibilityDescription: "Mini player settings")! - ) { - MiniPlayerSettingsView() + NotchSettingsView() } return Settings.PaneHostingController(pane: paneView) @@ -232,7 +220,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { statusBarMenu.addItem( withTitle: "Settings...", - action: #selector(openSettingsWindow), + action: #selector(openSettings), keyEquivalent: "" ) @@ -459,7 +447,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // MARK: New settings - @objc func openSettingsWindow() { + @objc func openNewSettings() { settingsWindow.orderFrontRegardless() settingsWindow.makeKeyAndOrderFront(nil) NSApplication.shared.activate(ignoringOtherApps: true) @@ -471,9 +459,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { SettingsWindowController( panes: [ GeneralSettingsViewController(), - MenuBarSettingsViewController(), - PopoverSettingsViewController(), - MiniPlayerSettingsViewController(), + AppearanceSettingsViewController(), + NotchSettingsViewController(), KeyboardShortcutsSettingsViewController(), AboutSettingsViewController() ], @@ -487,16 +474,15 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { SettingsWindowController( panes: [ GeneralSettingsViewController(), - MenuBarSettingsViewController(), - PopoverSettingsViewController(), - MiniPlayerSettingsViewController(), + AppearanceSettingsViewController(), + NotchSettingsViewController(), KeyboardShortcutsSettingsViewController(), AboutSettingsViewController() ], style: .toolbarItems, animated: true, hidesToolbarForSingleItem: true - ).show(pane: .miniPlayer) + ).show(pane: .appearance) } // MARK: Setup diff --git a/Tuneful/Views/Settings/AppearanceSettingsView.swift b/Tuneful/Views/Settings/AppearanceSettingsView.swift new file mode 100644 index 0000000..40168a6 --- /dev/null +++ b/Tuneful/Views/Settings/AppearanceSettingsView.swift @@ -0,0 +1,171 @@ +// +// AppearanceSettingsView.swift +// Tuneful +// +// Created by Martin Fekete on 01/12/2024. +// + +import SwiftUI +import Settings +import Luminare + +struct AppearanceSettingsView: View { + @AppStorage("popoverType") var popoverTypeAppStorage: PopoverType = .full + @AppStorage("popoverBackground") var popoverBackgroundAppStorage: BackgroundType = .albumArt + @AppStorage("popoverIsEnabled") var popoverIsEnabledAppStorage: Bool = true + + // A bit of a hack, binded AppStorage variable doesn't refresh UI, first we read the app storage this way + // and @AppStorage variable is updated whenever the state changes using .onChange() + @State var popoverType: PopoverType + @State var popoverBackground: BackgroundType + @State var popoverIsEnabled: Bool + + @AppStorage("miniPlayerBackground") var miniPlayerBackgroundAppStorage: BackgroundType = .albumArt + @AppStorage("showPlayerWindow") var showPlayerWindowAppStorage: Bool = true + @AppStorage("miniPlayerType") var miniPlayerTypeAppStorage: MiniPlayerType = .minimal + @AppStorage("miniPlayerWindowOnTop") var miniPlayerWindowOnTopAppStorage: Bool = true + + // A bit of a hack, binded AppStorage variable doesn't refresh UI, first we read the app storage this way + // and @AppStorage variable is updated whenever the state changes using .onChange() + @State var miniPlayerBackground: BackgroundType + @State var showPlayerWindow: Bool + @State var miniPlayerType: MiniPlayerType + @State var miniPlayerWindowOnTop: Bool + + init() { + @AppStorage("popoverType") var popoverTypeAppStorage: PopoverType = .full + @AppStorage("popoverBackground") var popoverBackgroundAppStorage: BackgroundType = .albumArt + @AppStorage("popoverIsEnabled") var popoverIsEnabledAppStorage: Bool = true + + self.popoverType = popoverTypeAppStorage + self.popoverBackground = popoverBackgroundAppStorage + self.popoverIsEnabled = popoverIsEnabledAppStorage + + @AppStorage("miniPlayerBackground") var miniPlayerBackgroundAppStorage: BackgroundType = .albumArt + @AppStorage("showPlayerWindow") var showPlayerWindowAppStorage: Bool = true + @AppStorage("miniPlayerType") var miniPlayerTypeAppStorage: MiniPlayerType = .minimal + @AppStorage("miniPlayerWindowOnTop") var miniPlayerWindowOnTopAppStorage: Bool = true + + self.miniPlayerBackground = miniPlayerBackgroundAppStorage + self.showPlayerWindow = showPlayerWindowAppStorage + self.miniPlayerType = miniPlayerTypeAppStorage + self.miniPlayerWindowOnTop = miniPlayerWindowOnTopAppStorage + } + + var body: some View { + Settings.Container(contentWidth: 400) { + Settings.Section(title: "") { + LuminareSection("Popover") { + LuminareToggle( + "Enable popover", + isOn: $popoverIsEnabled + ) + .onChange(of: popoverIsEnabled) { _ in + self.popoverIsEnabledAppStorage = popoverIsEnabled + } + + HStack { + Text("Popover style") + .foregroundStyle(self.popoverIsEnabledAppStorage ? .primary : .tertiary) + + Spacer() + + Picker("", selection: $popoverType) { + ForEach(PopoverType.allCases, id: \.self) { value in + Text(value.localizedName).tag(value) + } + } + .pickerStyle(.segmented) + .frame(width: 150) + .onChange(of: popoverType) { _ in + self.popoverTypeAppStorage = popoverType + NSApplication.shared.sendAction(#selector(AppDelegate.setupPopover), to: nil, from: nil) + } + .disabled(!popoverIsEnabledAppStorage) + } + .padding(8) + + HStack { + Text("Popover background") + .foregroundStyle(self.popoverIsEnabledAppStorage ? .primary : .tertiary) + + Spacer() + + Picker("", selection: $popoverBackground) { + ForEach(BackgroundType.allCases, id: \.self) { value in + Text(value.localizedName).tag(value) + } + } + .onChange(of: popoverBackground) { _ in + self.popoverBackgroundAppStorage = popoverBackground + } + .pickerStyle(.segmented) + .frame(width: 150) + .disabled(!popoverIsEnabledAppStorage) + } + .padding(8) + } + + LuminareSection("Mini player") { + LuminareToggle( + "Show mini player", + isOn: $showPlayerWindow + ) + .onChange(of: showPlayerWindow) { _ in + self.showPlayerWindowAppStorage = showPlayerWindow + NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayer), to: nil, from: nil) + } + + LuminareToggle( + "Mini player window always on top of other apps", + isOn: $miniPlayerWindowOnTopAppStorage + ) + .onChange(of: miniPlayerWindowOnTopAppStorage) { _ in + NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayerWindowLevel), to: nil, from: nil) + } + + HStack { + Text("Background") + .foregroundStyle(self.showPlayerWindowAppStorage ? .primary : .tertiary) + + Spacer() + + Picker("", selection: $miniPlayerBackground) { + ForEach(BackgroundType.allCases, id: \.self) { value in + Text(value.localizedName).tag(value) + } + } + .pickerStyle(.segmented) + .frame(width: 150) + .onChange(of: miniPlayerBackground) { newValue in + self.miniPlayerBackgroundAppStorage = miniPlayerBackground + } + .disabled(!showPlayerWindowAppStorage) + } + .padding(8) + + HStack { + Text("Window style") + .foregroundStyle(self.showPlayerWindowAppStorage ? .primary : .tertiary) + + Spacer() + + Picker(selection: $miniPlayerType, label: Text("")) { + ForEach(MiniPlayerType.allCases, id: \.self) { value in + Text(value.localizedName).tag(value) + } + } + .pickerStyle(.segmented) + .frame(width: 150) + .onChange(of: miniPlayerType) { _ in + self.miniPlayerTypeAppStorage = miniPlayerType + NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) + } + .disabled(!showPlayerWindowAppStorage) + } + .padding(8) + } + } + } + } +} diff --git a/Tuneful/Views/Settings/GeneralSettingsView.swift b/Tuneful/Views/Settings/GeneralSettingsView.swift index 6ca20e2..b559ab5 100644 --- a/Tuneful/Views/Settings/GeneralSettingsView.swift +++ b/Tuneful/Views/Settings/GeneralSettingsView.swift @@ -10,7 +10,7 @@ import Settings import LaunchAtLogin import Luminare -struct GeneralSettingsView: View, SettingsProtocol { +struct GeneralSettingsView: View { var title: String = "General" var systemImage: String = "switch.2" diff --git a/Tuneful/Views/Settings/MenuBarSettingsView.swift b/Tuneful/Views/Settings/MenuBarSettingsView.swift index 961a1de..486fdf7 100644 --- a/Tuneful/Views/Settings/MenuBarSettingsView.swift +++ b/Tuneful/Views/Settings/MenuBarSettingsView.swift @@ -9,7 +9,7 @@ import SwiftUI import Settings import Luminare -struct MenuBarSettingsView: View, SettingsProtocol { +struct MenuBarSettingsView: View { var title: String = "Menu bar" var systemImage: String = "menubar.rectangle" diff --git a/Tuneful/Views/Settings/NotchSettingsView.swift b/Tuneful/Views/Settings/NotchSettingsView.swift new file mode 100644 index 0000000..bc987c8 --- /dev/null +++ b/Tuneful/Views/Settings/NotchSettingsView.swift @@ -0,0 +1,41 @@ +// +// NotchSettingsView.swift +// Tuneful +// +// Created by Martin Fekete on 01/12/2024. +// + +import SwiftUI +import Settings +import Luminare + +struct NotchSettingsView: View { + @AppStorage("showSongNotification") private var showSongNotification = true + @AppStorage("notificationDuration") private var notificationDuration = 2.0 + @AppStorage("notchPlayerEnabled") private var notchPlayerEnabled = true + @AppStorage("notchPlayerOnClick") private var notchPlayerOnClick = false + + var body: some View { + Settings.Container(contentWidth: 400) { + Settings.Section(title: "") { + LuminareSection("Notifications") { + LuminareToggle("Show notification on song change", isOn: $showSongNotification) + + LuminareSliderPicker( + "Notification duration", + Array(stride(from: 0.5, through: 5.0, by: 0.5)), + selection: $notificationDuration + ) { value in + LocalizedStringKey("\(value, specifier: "%.1f") s") + } + .disabled(!self.showSongNotification) + } + + LuminareSection("Notch player") { + LuminareToggle("Enable notch player", isOn: $notchPlayerEnabled) + LuminareToggle("Only show notch player on notch click", isOn: $notchPlayerOnClick) + } + } + } + } +} diff --git a/Tuneful/Views/Settings/SettingsProtocol.swift b/Tuneful/Views/Settings/SettingsProtocol.swift deleted file mode 100644 index 6e44b53..0000000 --- a/Tuneful/Views/Settings/SettingsProtocol.swift +++ /dev/null @@ -1,11 +0,0 @@ -// -// SettingsProtocol.swift -// Tuneful -// -// Created by Martin Fekete on 01/12/2024. -// - -protocol SettingsProtocol { - var title: String { get } - var systemImage: String { get } -} diff --git a/Tuneful/Views/SettingsView.swift b/Tuneful/Views/SettingsView.swift index 8515228..8c22146 100644 --- a/Tuneful/Views/SettingsView.swift +++ b/Tuneful/Views/SettingsView.swift @@ -71,24 +71,3 @@ enum SettingsCategory: String, Identifiable, CaseIterable { } } } - -struct GeneralSettingsView2: View { - var body: some View { - Text("General Settings") - .font(.title) - } -} - -struct AppearanceSettingsView: View { - var body: some View { - Text("Appearance Settings") - .font(.title) - } -} - -struct PrivacySettingsView: View { - var body: some View { - Text("Privacy Settings") - .font(.title) - } -} From 49c6567f385f08c9779fe717b9d332e82659943e Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 1 Dec 2024 18:25:33 +0100 Subject: [PATCH 14/73] Settings continued --- Tuneful.xcodeproj/project.pbxproj | 8 -- .../DynamicNotchKit/NSScreen+Extensions.swift | 4 +- .../MiniPlayer/CompactMiniPlayerView.swift | 2 +- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 2 +- .../Views/Popover/CompactPopoverView.swift | 2 +- Tuneful/Views/Popover/PopoverView.swift | 2 +- .../Settings/AppearanceSettingsView.swift | 88 ++++---------- .../Views/Settings/GeneralSettingsView.swift | 45 ++------ .../Settings/MiniPlayerSettingsView.swift | 109 ------------------ .../Views/Settings/NotchSettingsView.swift | 8 +- .../Views/Settings/PopoverSettingsView.swift | 94 --------------- 11 files changed, 43 insertions(+), 321 deletions(-) delete mode 100644 Tuneful/Views/Settings/MiniPlayerSettingsView.swift delete mode 100644 Tuneful/Views/Settings/PopoverSettingsView.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 56d1033..2e8e242 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -63,7 +63,6 @@ FE7B09D22CB997F600FBB6F8 /* AppIcons.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE7B09D12CB997F300FBB6F8 /* AppIcons.swift */; }; FE7C5BDA2AC050E000D1C253 /* AlbumArtView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE7C5BD92AC050E000D1C253 /* AlbumArtView.swift */; }; FE8CE1542C1E03F30053FDEA /* CompactPopoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8CE1532C1E03F30053FDEA /* CompactPopoverView.swift */; }; - FE8CE1562C1E09C00053FDEA /* PopoverSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8CE1552C1E09C00053FDEA /* PopoverSettingsView.swift */; }; FE8CE1582C1E0B140053FDEA /* PopoverType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8CE1572C1E0B140053FDEA /* PopoverType.swift */; }; FE9FCF212CAEC0290015DF4D /* PlayerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF202CAEC0260015DF4D /* PlayerProtocol.swift */; }; FE9FCF232CAEC0C90015DF4D /* SpotifyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF222CAEC0C50015DF4D /* SpotifyManager.swift */; }; @@ -73,7 +72,6 @@ FEBA3D042B58303A00E25A67 /* View+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA3D032B58303A00E25A67 /* View+Extension.swift */; }; FEDD311A2CBE4DAD00653956 /* PlayerAppProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEDD31192CBE4DA500653956 /* PlayerAppProvider.swift */; }; FEE486E52B5D174F00AB712F /* CompactMiniPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEE486E42B5D174F00AB712F /* CompactMiniPlayerView.swift */; }; - FEE486E72B5D51FB00AB712F /* MiniPlayerSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEE486E62B5D51FB00AB712F /* MiniPlayerSettingsView.swift */; }; FEE486E92B5D677400AB712F /* MiniPlayerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEE486E82B5D677400AB712F /* MiniPlayerType.swift */; }; FEF0660C2B51907200A514F2 /* KeyboardShortcutSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEF0660B2B51907200A514F2 /* KeyboardShortcutSettingsView.swift */; }; FEF0660F2B51910700A514F2 /* KeyboardShortcuts in Frameworks */ = {isa = PBXBuildFile; productRef = FEF0660E2B51910700A514F2 /* KeyboardShortcuts */; }; @@ -168,7 +166,6 @@ FE7B09D12CB997F300FBB6F8 /* AppIcons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppIcons.swift; sourceTree = ""; }; FE7C5BD92AC050E000D1C253 /* AlbumArtView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlbumArtView.swift; sourceTree = ""; }; FE8CE1532C1E03F30053FDEA /* CompactPopoverView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactPopoverView.swift; sourceTree = ""; }; - FE8CE1552C1E09C00053FDEA /* PopoverSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverSettingsView.swift; sourceTree = ""; }; FE8CE1572C1E0B140053FDEA /* PopoverType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverType.swift; sourceTree = ""; }; FE9781822C0CC1A0007217A1 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; FE9781842C0CC1A0007217A1 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; @@ -180,7 +177,6 @@ FEBA3D032B58303A00E25A67 /* View+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Extension.swift"; sourceTree = ""; }; FEDD31192CBE4DA500653956 /* PlayerAppProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerAppProvider.swift; sourceTree = ""; }; FEE486E42B5D174F00AB712F /* CompactMiniPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactMiniPlayerView.swift; sourceTree = ""; }; - FEE486E62B5D51FB00AB712F /* MiniPlayerSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerSettingsView.swift; sourceTree = ""; }; FEE486E82B5D677400AB712F /* MiniPlayerType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerType.swift; sourceTree = ""; }; FEF0660B2B51907200A514F2 /* KeyboardShortcutSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardShortcutSettingsView.swift; sourceTree = ""; }; FEF066102B51914900A514F2 /* KeyboardShortcuts+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "KeyboardShortcuts+Extension.swift"; sourceTree = ""; }; @@ -448,8 +444,6 @@ FEF0660B2B51907200A514F2 /* KeyboardShortcutSettingsView.swift */, FE4808F02B51BA400077BDAA /* AboutSettingsView.swift */, FE4808F32B51C3870077BDAA /* GeneralSettingsView.swift */, - FEE486E62B5D51FB00AB712F /* MiniPlayerSettingsView.swift */, - FE8CE1552C1E09C00053FDEA /* PopoverSettingsView.swift */, ); path = Settings; sourceTree = ""; @@ -593,7 +587,6 @@ FE1A63022CBC1B09001C13CE /* BlurModifier.swift in Sources */, FE1A63032CBC1B09001C13CE /* NotchlessView.swift in Sources */, FE7955492CA2C9E8002026AA /* NSBezierPath+Extension.swift in Sources */, - FE8CE1562C1E09C00053FDEA /* PopoverSettingsView.swift in Sources */, FE9FCF252CAEC2780015DF4D /* AppleMusicManager.swift in Sources */, FE5B3CA22AB0AC700038B6E4 /* PopoverView.swift in Sources */, FE6BFD0C2A73B2D400D3321F /* NSImage+Extension.swift in Sources */, @@ -603,7 +596,6 @@ FE31AEDC2CFBCB76002818ED /* SettingsView.swift in Sources */, FE3189FD2A7C3D01006B2D59 /* OnboardingWindow.swift in Sources */, FE79554E2CA34BF0002026AA /* Logger+Extension.swift in Sources */, - FEE486E72B5D51FB00AB712F /* MiniPlayerSettingsView.swift in Sources */, FEDD311A2CBE4DAD00653956 /* PlayerAppProvider.swift in Sources */, FEFFE5592B4FE00D000887B5 /* NSError+Extension.swift in Sources */, FE31AEDA2CF7CBAA002818ED /* ScrollWheelModifier.swift in Sources */, diff --git a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift index 3e569ad..361688c 100644 --- a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift +++ b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift @@ -17,8 +17,8 @@ extension NSScreen { } var hasNotch: Bool { -// return true - auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil + return true +// auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil } var notchSize: NSSize? { diff --git a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift index 299d402..b291b01 100644 --- a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift @@ -11,7 +11,7 @@ import MediaPlayer struct CompactMiniPlayerView: View { @EnvironmentObject var playerManager: PlayerManager - @AppStorage("miniPlayerBackground") var miniPlayerBackground: BackgroundType = .albumArt + @AppStorage("miniPlayerBackground") var miniPlayerBackground: BackgroundType = .transparent @State private var isShowingPlaybackControls = false private var imageSize: CGFloat = 140.0 diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 61e598e..815a4d0 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -9,7 +9,7 @@ import SwiftUI import MediaPlayer struct MiniPlayerView: View { - @AppStorage("miniPlayerBackground") var miniPlayerBackground: BackgroundType = .albumArt + @AppStorage("miniPlayerBackground") var miniPlayerBackground: BackgroundType = .transparent @EnvironmentObject var playerManager: PlayerManager @State private var isShowingPlaybackControls = false diff --git a/Tuneful/Views/Popover/CompactPopoverView.swift b/Tuneful/Views/Popover/CompactPopoverView.swift index 2fc80df..c3dd88a 100644 --- a/Tuneful/Views/Popover/CompactPopoverView.swift +++ b/Tuneful/Views/Popover/CompactPopoverView.swift @@ -9,7 +9,7 @@ import SwiftUI struct CompactPopoverView: View { @EnvironmentObject var playerManager: PlayerManager - @AppStorage("popoverBackground") var popoverBackground: BackgroundType = .albumArt + @AppStorage("popoverBackground") var popoverBackground: BackgroundType = .transparent @State private var isShowingPlaybackControls = false var body: some View { diff --git a/Tuneful/Views/Popover/PopoverView.swift b/Tuneful/Views/Popover/PopoverView.swift index 7ee34a0..e05cbe3 100644 --- a/Tuneful/Views/Popover/PopoverView.swift +++ b/Tuneful/Views/Popover/PopoverView.swift @@ -9,7 +9,7 @@ import SwiftUI struct PopoverView: View { @EnvironmentObject var playerManager: PlayerManager - @AppStorage("popoverBackground") var popoverBackground: BackgroundType = .albumArt + @AppStorage("popoverBackground") var popoverBackground: BackgroundType = .transparent @State private var isShowingPlaybackControls = false var body: some View { diff --git a/Tuneful/Views/Settings/AppearanceSettingsView.swift b/Tuneful/Views/Settings/AppearanceSettingsView.swift index 40168a6..c2bbb57 100644 --- a/Tuneful/Views/Settings/AppearanceSettingsView.swift +++ b/Tuneful/Views/Settings/AppearanceSettingsView.swift @@ -10,47 +10,14 @@ import Settings import Luminare struct AppearanceSettingsView: View { - @AppStorage("popoverType") var popoverTypeAppStorage: PopoverType = .full - @AppStorage("popoverBackground") var popoverBackgroundAppStorage: BackgroundType = .albumArt - @AppStorage("popoverIsEnabled") var popoverIsEnabledAppStorage: Bool = true + @AppStorage("popoverType") var popoverType: PopoverType = .full + @AppStorage("popoverBackground") var popoverBackground: BackgroundType = .transparent + @AppStorage("popoverIsEnabled") var popoverIsEnabled: Bool = true - // A bit of a hack, binded AppStorage variable doesn't refresh UI, first we read the app storage this way - // and @AppStorage variable is updated whenever the state changes using .onChange() - @State var popoverType: PopoverType - @State var popoverBackground: BackgroundType - @State var popoverIsEnabled: Bool - - @AppStorage("miniPlayerBackground") var miniPlayerBackgroundAppStorage: BackgroundType = .albumArt - @AppStorage("showPlayerWindow") var showPlayerWindowAppStorage: Bool = true - @AppStorage("miniPlayerType") var miniPlayerTypeAppStorage: MiniPlayerType = .minimal - @AppStorage("miniPlayerWindowOnTop") var miniPlayerWindowOnTopAppStorage: Bool = true - - // A bit of a hack, binded AppStorage variable doesn't refresh UI, first we read the app storage this way - // and @AppStorage variable is updated whenever the state changes using .onChange() - @State var miniPlayerBackground: BackgroundType - @State var showPlayerWindow: Bool - @State var miniPlayerType: MiniPlayerType - @State var miniPlayerWindowOnTop: Bool - - init() { - @AppStorage("popoverType") var popoverTypeAppStorage: PopoverType = .full - @AppStorage("popoverBackground") var popoverBackgroundAppStorage: BackgroundType = .albumArt - @AppStorage("popoverIsEnabled") var popoverIsEnabledAppStorage: Bool = true - - self.popoverType = popoverTypeAppStorage - self.popoverBackground = popoverBackgroundAppStorage - self.popoverIsEnabled = popoverIsEnabledAppStorage - - @AppStorage("miniPlayerBackground") var miniPlayerBackgroundAppStorage: BackgroundType = .albumArt - @AppStorage("showPlayerWindow") var showPlayerWindowAppStorage: Bool = true - @AppStorage("miniPlayerType") var miniPlayerTypeAppStorage: MiniPlayerType = .minimal - @AppStorage("miniPlayerWindowOnTop") var miniPlayerWindowOnTopAppStorage: Bool = true - - self.miniPlayerBackground = miniPlayerBackgroundAppStorage - self.showPlayerWindow = showPlayerWindowAppStorage - self.miniPlayerType = miniPlayerTypeAppStorage - self.miniPlayerWindowOnTop = miniPlayerWindowOnTopAppStorage - } + @AppStorage("miniPlayerBackground") var miniPlayerBackground: BackgroundType = .transparent + @AppStorage("showPlayerWindow") var showPlayerWindow: Bool = true + @AppStorage("miniPlayerType") var miniPlayerType: MiniPlayerType = .minimal + @AppStorage("miniPlayerWindowOnTop") var miniPlayerWindowOnTop: Bool = true var body: some View { Settings.Container(contentWidth: 400) { @@ -60,13 +27,10 @@ struct AppearanceSettingsView: View { "Enable popover", isOn: $popoverIsEnabled ) - .onChange(of: popoverIsEnabled) { _ in - self.popoverIsEnabledAppStorage = popoverIsEnabled - } HStack { Text("Popover style") - .foregroundStyle(self.popoverIsEnabledAppStorage ? .primary : .tertiary) + .foregroundStyle(self.popoverIsEnabled ? .primary : .tertiary) Spacer() @@ -76,18 +40,17 @@ struct AppearanceSettingsView: View { } } .pickerStyle(.segmented) - .frame(width: 150) + .frame(width: 200) .onChange(of: popoverType) { _ in - self.popoverTypeAppStorage = popoverType NSApplication.shared.sendAction(#selector(AppDelegate.setupPopover), to: nil, from: nil) } - .disabled(!popoverIsEnabledAppStorage) + .disabled(!popoverIsEnabled) } .padding(8) HStack { Text("Popover background") - .foregroundStyle(self.popoverIsEnabledAppStorage ? .primary : .tertiary) + .foregroundStyle(self.popoverIsEnabled ? .primary : .tertiary) Spacer() @@ -96,15 +59,13 @@ struct AppearanceSettingsView: View { Text(value.localizedName).tag(value) } } - .onChange(of: popoverBackground) { _ in - self.popoverBackgroundAppStorage = popoverBackground - } .pickerStyle(.segmented) - .frame(width: 150) - .disabled(!popoverIsEnabledAppStorage) + .frame(width: 200) + .disabled(!popoverIsEnabled) } .padding(8) } + .padding(.bottom, 10) LuminareSection("Mini player") { LuminareToggle( @@ -112,21 +73,20 @@ struct AppearanceSettingsView: View { isOn: $showPlayerWindow ) .onChange(of: showPlayerWindow) { _ in - self.showPlayerWindowAppStorage = showPlayerWindow NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayer), to: nil, from: nil) } LuminareToggle( "Mini player window always on top of other apps", - isOn: $miniPlayerWindowOnTopAppStorage + isOn: $miniPlayerWindowOnTop ) - .onChange(of: miniPlayerWindowOnTopAppStorage) { _ in + .onChange(of: miniPlayerWindowOnTop) { _ in NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayerWindowLevel), to: nil, from: nil) } HStack { Text("Background") - .foregroundStyle(self.showPlayerWindowAppStorage ? .primary : .tertiary) + .foregroundStyle(self.showPlayerWindow ? .primary : .tertiary) Spacer() @@ -136,17 +96,14 @@ struct AppearanceSettingsView: View { } } .pickerStyle(.segmented) - .frame(width: 150) - .onChange(of: miniPlayerBackground) { newValue in - self.miniPlayerBackgroundAppStorage = miniPlayerBackground - } - .disabled(!showPlayerWindowAppStorage) + .frame(width: 200) + .disabled(!showPlayerWindow) } .padding(8) HStack { Text("Window style") - .foregroundStyle(self.showPlayerWindowAppStorage ? .primary : .tertiary) + .foregroundStyle(self.showPlayerWindow ? .primary : .tertiary) Spacer() @@ -156,12 +113,11 @@ struct AppearanceSettingsView: View { } } .pickerStyle(.segmented) - .frame(width: 150) + .frame(width: 200) .onChange(of: miniPlayerType) { _ in - self.miniPlayerTypeAppStorage = miniPlayerType NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) } - .disabled(!showPlayerWindowAppStorage) + .disabled(!showPlayerWindow) } .padding(8) } diff --git a/Tuneful/Views/Settings/GeneralSettingsView.swift b/Tuneful/Views/Settings/GeneralSettingsView.swift index b559ab5..4da0b32 100644 --- a/Tuneful/Views/Settings/GeneralSettingsView.swift +++ b/Tuneful/Views/Settings/GeneralSettingsView.swift @@ -21,19 +21,6 @@ struct GeneralSettingsView: View { @State private var alertTitle = Text("Title") @State private var alertMessage = Text("Message") @State private var showingAlert = false - @State private var connectedApp: ConnectedApps - @State private var showSongNotification: Bool - @State private var notificationDuration: Double - - init() { - @AppStorage("connectedApp") var connectedAppAppStorage = ConnectedApps.appleMusic - @AppStorage("showSongNotification") var showSongNotificationAppStorage = true - @AppStorage("notificationDuration") var notificationDurationAppStorage = 2.0 - - self.connectedApp = connectedAppAppStorage - self.showSongNotification = showSongNotificationAppStorage - self.notificationDuration = notificationDurationAppStorage - } var body: some View { Settings.Container(contentWidth: 400) { @@ -53,32 +40,32 @@ struct GeneralSettingsView: View { Spacer() - Picker("", selection: $connectedApp) { + Picker("", selection: $connectedAppAppStorage) { ForEach(ConnectedApps.allCases.filter { $0.isInstalled }, id: \.self) { value in Text(value.localizedName) .tag(value) } } .frame(width: 150) - .onChange(of: connectedApp) { _ in - self.connectedAppAppStorage = connectedApp - } +// .onChange(of: connectedApp) { _ in +// self.connectedAppAppStorage = connectedApp +// } .pickerStyle(.menu) Button { - let consent = Helper.promptUserForConsent(for: connectedApp == .spotify ? Constants.Spotify.bundleID : Constants.AppleMusic.bundleID) + let consent = Helper.promptUserForConsent(for: connectedAppAppStorage == .spotify ? Constants.Spotify.bundleID : Constants.AppleMusic.bundleID) switch consent { case .closed: - alertTitle = Text("\(Text(connectedApp.localizedName)) is not opened") - alertMessage = Text("Please open \(Text(connectedApp.localizedName)) to enable permissions") + alertTitle = Text("\(Text(connectedAppAppStorage.localizedName)) is not opened") + alertMessage = Text("Please open \(Text(connectedAppAppStorage.localizedName)) to enable permissions") case .granted: - alertTitle = Text("Permission granted for \(Text(connectedApp.localizedName))") + alertTitle = Text("Permission granted for \(Text(connectedAppAppStorage.localizedName))") alertMessage = Text("Start playing a song!") case .notPrompted: return case .denied: alertTitle = Text("Permission denied") - alertMessage = Text("Please go to System Settings > Privacy & Security > Automation, and check \(Text(connectedApp.localizedName)) under Tuneful") + alertMessage = Text("Please go to System Settings > Privacy & Security > Automation, and check \(Text(connectedAppAppStorage.localizedName)) under Tuneful") } showingAlert = true } label: { @@ -99,20 +86,6 @@ struct GeneralSettingsView: View { } } } - - LuminareSection("Notifications") { - LuminareToggle("Show notification on song change", isOn: $showSongNotificationAppStorage) - - LuminareSliderPicker( - "Notification duration", - Array(stride(from: 0.5, through: 5.0, by: 0.5)), - selection: $notificationDurationAppStorage - ) { value in - LocalizedStringKey("\(value, specifier: "%.1f") s") - } - .disabled(!self.showSongNotificationAppStorage) - } - .padding(.top, 10) } } } diff --git a/Tuneful/Views/Settings/MiniPlayerSettingsView.swift b/Tuneful/Views/Settings/MiniPlayerSettingsView.swift deleted file mode 100644 index 2371d9a..0000000 --- a/Tuneful/Views/Settings/MiniPlayerSettingsView.swift +++ /dev/null @@ -1,109 +0,0 @@ -// -// MiniPlayerSettingsView.swift -// Tuneful -// -// Created by Martin Fekete on 21/01/2024. -// - -import SwiftUI -import Settings -import Luminare - -struct MiniPlayerSettingsView: View { - - @AppStorage("miniPlayerBackground") var miniPlayerBackgroundAppStorage: BackgroundType = .albumArt - @AppStorage("showPlayerWindow") var showPlayerWindowAppStorage: Bool = true - @AppStorage("miniPlayerType") var miniPlayerTypeAppStorage: MiniPlayerType = .minimal - @AppStorage("miniPlayerWindowOnTop") var miniPlayerWindowOnTopAppStorage: Bool = true - - // A bit of a hack, binded AppStorage variable doesn't refresh UI, first we read the app storage this way - // and @AppStorage variable is updated whenever the state changes using .onChange() - @State var miniPlayerBackground: BackgroundType - @State var showPlayerWindow: Bool - @State var miniPlayerType: MiniPlayerType - @State var miniPlayerWindowOnTop: Bool - - init() { - @AppStorage("miniPlayerBackground") var miniPlayerBackgroundAppStorage: BackgroundType = .albumArt - @AppStorage("showPlayerWindow") var showPlayerWindowAppStorage: Bool = true - @AppStorage("miniPlayerType") var miniPlayerTypeAppStorage: MiniPlayerType = .minimal - @AppStorage("miniPlayerWindowOnTop") var miniPlayerWindowOnTopAppStorage: Bool = true - - self.miniPlayerBackground = miniPlayerBackgroundAppStorage - self.showPlayerWindow = showPlayerWindowAppStorage - self.miniPlayerType = miniPlayerTypeAppStorage - self.miniPlayerWindowOnTop = miniPlayerWindowOnTopAppStorage - } - - var body: some View { - VStack { - Settings.Container(contentWidth: 400) { - Settings.Section(title: "") { - LuminareSection { - LuminareToggle( - "Show mini player", - isOn: $showPlayerWindow - ) - .onChange(of: showPlayerWindow) { _ in - self.showPlayerWindowAppStorage = showPlayerWindow - NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayer), to: nil, from: nil) - } - - LuminareToggle( - "Mini player window always on top of other apps", - isOn: $miniPlayerWindowOnTopAppStorage - ) - .onChange(of: miniPlayerWindowOnTopAppStorage) { _ in - NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayerWindowLevel), to: nil, from: nil) - } - - HStack { - Text("Background") - .foregroundStyle(self.showPlayerWindowAppStorage ? .primary : .tertiary) - - Spacer() - - Picker("", selection: $miniPlayerBackground) { - ForEach(BackgroundType.allCases, id: \.self) { value in - Text(value.localizedName).tag(value) - } - } - .pickerStyle(.segmented) - .frame(width: 150) - .onChange(of: miniPlayerBackground) { newValue in - self.miniPlayerBackgroundAppStorage = miniPlayerBackground - } - .disabled(!showPlayerWindowAppStorage) - } - .padding(8) - - HStack { - Text("Window style") - .foregroundStyle(self.showPlayerWindowAppStorage ? .primary : .tertiary) - - Spacer() - - Picker(selection: $miniPlayerType, label: Text("")) { - ForEach(MiniPlayerType.allCases, id: \.self) { value in - Text(value.localizedName).tag(value) - } - } - .pickerStyle(.segmented) - .frame(width: 150) - .onChange(of: miniPlayerType) { _ in - self.miniPlayerTypeAppStorage = miniPlayerType - NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) - } - .disabled(!showPlayerWindowAppStorage) - } - .padding(8) - } - } - } - } - } -} - -#Preview { - MiniPlayerSettingsView() -} diff --git a/Tuneful/Views/Settings/NotchSettingsView.swift b/Tuneful/Views/Settings/NotchSettingsView.swift index bc987c8..b240e15 100644 --- a/Tuneful/Views/Settings/NotchSettingsView.swift +++ b/Tuneful/Views/Settings/NotchSettingsView.swift @@ -13,7 +13,6 @@ struct NotchSettingsView: View { @AppStorage("showSongNotification") private var showSongNotification = true @AppStorage("notificationDuration") private var notificationDuration = 2.0 @AppStorage("notchPlayerEnabled") private var notchPlayerEnabled = true - @AppStorage("notchPlayerOnClick") private var notchPlayerOnClick = false var body: some View { Settings.Container(contentWidth: 400) { @@ -30,11 +29,16 @@ struct NotchSettingsView: View { } .disabled(!self.showSongNotification) } + .padding(.bottom, 10) LuminareSection("Notch player") { LuminareToggle("Enable notch player", isOn: $notchPlayerEnabled) - LuminareToggle("Only show notch player on notch click", isOn: $notchPlayerOnClick) } + + Text("For Macs without notch, this will be displayed as floating window on top of the screen. You can hover over the middle of the screen top to show it.") + .font(.footnote) + .foregroundColor(.secondary) + .padding(7) } } } diff --git a/Tuneful/Views/Settings/PopoverSettingsView.swift b/Tuneful/Views/Settings/PopoverSettingsView.swift deleted file mode 100644 index dfb79e5..0000000 --- a/Tuneful/Views/Settings/PopoverSettingsView.swift +++ /dev/null @@ -1,94 +0,0 @@ -// -// PopoverSettingsView.swift -// Tuneful -// -// Created by Martin Fekete on 15/06/2024. -// - -import SwiftUI -import Settings -import Luminare - -struct PopoverSettingsView: View { - - @AppStorage("popoverType") var popoverTypeAppStorage: PopoverType = .full - @AppStorage("popoverBackground") var popoverBackgroundAppStorage: BackgroundType = .albumArt - @AppStorage("popoverIsEnabled") var popoverIsEnabledAppStorage: Bool = true - - // A bit of a hack, binded AppStorage variable doesn't refresh UI, first we read the app storage this way - // and @AppStorage variable is updated whenever the state changes using .onChange() - @State var popoverType: PopoverType - @State var popoverBackground: BackgroundType - @State var popoverIsEnabled: Bool - - init() { - @AppStorage("popoverType") var popoverTypeAppStorage: PopoverType = .full - @AppStorage("popoverBackground") var popoverBackgroundAppStorage: BackgroundType = .albumArt - @AppStorage("popoverIsEnabled") var popoverIsEnabledAppStorage: Bool = true - - self.popoverType = popoverTypeAppStorage - self.popoverBackground = popoverBackgroundAppStorage - self.popoverIsEnabled = popoverIsEnabledAppStorage - } - - var body: some View { - Settings.Container(contentWidth: 400) { - Settings.Section(title: "") { - LuminareSection { - LuminareToggle( - "Enable popover", - isOn: $popoverIsEnabled - ) - .onChange(of: popoverIsEnabled) { _ in - self.popoverIsEnabledAppStorage = popoverIsEnabled - } - - HStack { - Text("Popover style") - .foregroundStyle(self.popoverIsEnabledAppStorage ? .primary : .tertiary) - - Spacer() - - Picker("", selection: $popoverType) { - ForEach(PopoverType.allCases, id: \.self) { value in - Text(value.localizedName).tag(value) - } - } - .pickerStyle(.segmented) - .frame(width: 150) - .onChange(of: popoverType) { _ in - self.popoverTypeAppStorage = popoverType - NSApplication.shared.sendAction(#selector(AppDelegate.setupPopover), to: nil, from: nil) - } - .disabled(!popoverIsEnabledAppStorage) - } - .padding(8) - - HStack { - Text("Popover background") - .foregroundStyle(self.popoverIsEnabledAppStorage ? .primary : .tertiary) - - Spacer() - - Picker("", selection: $popoverBackground) { - ForEach(BackgroundType.allCases, id: \.self) { value in - Text(value.localizedName).tag(value) - } - } - .onChange(of: popoverBackground) { _ in - self.popoverBackgroundAppStorage = popoverBackground - } - .pickerStyle(.segmented) - .frame(width: 150) - .disabled(!popoverIsEnabledAppStorage) - } - .padding(8) - } - } - } - } -} - -#Preview { - PopoverSettingsView() -} From 12d91e04c1e052ce62a6ff2f2d3004547c8ef38a Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Mon, 2 Dec 2024 16:12:10 +0100 Subject: [PATCH 15/73] Added min notch width --- .../DynamicNotchKit/NSScreen+Extensions.swift | 4 ++-- Tuneful/DynamicNotchKit/NotchView.swift | 17 +++++++++++++---- Tuneful/DynamicNotchKit/NotchlessView.swift | 6 ++++++ .../Views/Settings/AboutSettingsView.swift | 2 -- .../Settings/AppearanceSettingsView.swift | 19 +++++++++++++++---- 5 files changed, 36 insertions(+), 12 deletions(-) diff --git a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift index 361688c..3e569ad 100644 --- a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift +++ b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift @@ -17,8 +17,8 @@ extension NSScreen { } var hasNotch: Bool { - return true -// auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil +// return true + auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil } var notchSize: NSSize? { diff --git a/Tuneful/DynamicNotchKit/NotchView.swift b/Tuneful/DynamicNotchKit/NotchView.swift index a2c8447..c3adf5d 100644 --- a/Tuneful/DynamicNotchKit/NotchView.swift +++ b/Tuneful/DynamicNotchKit/NotchView.swift @@ -20,7 +20,7 @@ struct NotchView: View where Content: View { .frame(width: dynamicNotch.notchWidth, height: dynamicNotch.notchHeight) if !dynamicNotch.isMouseInside && dynamicNotch.isNotificationVisible { - NotchInfoView(playerManager: dynamicNotch.playerManager) + NotchInfoView(playerManager: dynamicNotch.playerManager, minimumNotchWidth: dynamicNotch.notchWidth) .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } @@ -63,6 +63,12 @@ struct NotchView: View where Content: View { .foregroundStyle(.black) .padding(-50) // The opening/closing animation can overshoot, so this makes sure that it's still black } + .contextMenu { + Button( + action: { NSApplication.shared.sendAction(#selector(AppDelegate.openSettings), to: nil, from: nil) }, + label: { Text("Settings...") } + ) + } .mask { GeometryReader { _ in // This helps with positioning everything HStack { @@ -88,9 +94,11 @@ struct NotchView: View where Content: View { struct NotchInfoView: View { @ObservedObject private var playerManager: PlayerManager + var minimumNotchWidth: Double - init(playerManager: PlayerManager) { + init(playerManager: PlayerManager, minimumNotchWidth: Double) { self.playerManager = playerManager + self.minimumNotchWidth = minimumNotchWidth } public var body: some View { @@ -110,6 +118,7 @@ struct NotchInfoView: View { .lineLimit(1) } } + .frame(minWidth: minimumNotchWidth) } } @@ -121,7 +130,7 @@ struct NotchPlayerView: View { } public var body: some View { - HStack(spacing: 10) { + HStack(alignment: .top, spacing: 10) { AlbumArtView(imageSize: 80) .environmentObject(playerManager) .padding(5) @@ -139,7 +148,7 @@ struct NotchPlayerView: View { PlaybackPositionView(sliderHeight: 6, inline: true) .environmentObject(playerManager) } - .frame(width: 250) } + .frame(width: 350) } } diff --git a/Tuneful/DynamicNotchKit/NotchlessView.swift b/Tuneful/DynamicNotchKit/NotchlessView.swift index 4a88a28..dbf75a9 100644 --- a/Tuneful/DynamicNotchKit/NotchlessView.swift +++ b/Tuneful/DynamicNotchKit/NotchlessView.swift @@ -52,6 +52,12 @@ struct NotchlessView: View where Content: View { .strokeBorder(.quaternary, lineWidth: 1) } } + .contextMenu { + Button( + action: { NSApplication.shared.sendAction(#selector(AppDelegate.openSettings), to: nil, from: nil) }, + label: { Text("Settings...") } + ) + } .clipShape(.rect(cornerRadius: 20)) .shadow(color: .black.opacity(0.5), radius: dynamicNotch.isVisible ? 10 : 0) .padding(5) diff --git a/Tuneful/Views/Settings/AboutSettingsView.swift b/Tuneful/Views/Settings/AboutSettingsView.swift index 8ecd38d..158658f 100644 --- a/Tuneful/Views/Settings/AboutSettingsView.swift +++ b/Tuneful/Views/Settings/AboutSettingsView.swift @@ -42,8 +42,6 @@ struct AboutSettingsView: View { } .frame(maxWidth: .infinity, alignment: .center) - Divider() - HStack { Link("♡ Support", destination: URL(string: "https://ko-fi.com/martinfekete")!) .buttonStyle(LuminareCompactButtonStyle()) diff --git a/Tuneful/Views/Settings/AppearanceSettingsView.swift b/Tuneful/Views/Settings/AppearanceSettingsView.swift index c2bbb57..3fcdb72 100644 --- a/Tuneful/Views/Settings/AppearanceSettingsView.swift +++ b/Tuneful/Views/Settings/AppearanceSettingsView.swift @@ -10,14 +10,25 @@ import Settings import Luminare struct AppearanceSettingsView: View { + @AppStorage("popoverIsEnabled") var popoverIsEnabledAppStorage: Bool = true @AppStorage("popoverType") var popoverType: PopoverType = .full @AppStorage("popoverBackground") var popoverBackground: BackgroundType = .transparent - @AppStorage("popoverIsEnabled") var popoverIsEnabled: Bool = true - @AppStorage("miniPlayerBackground") var miniPlayerBackground: BackgroundType = .transparent - @AppStorage("showPlayerWindow") var showPlayerWindow: Bool = true - @AppStorage("miniPlayerType") var miniPlayerType: MiniPlayerType = .minimal + @AppStorage("showPlayerWindow") var showPlayerWindowAppStorage: Bool = true @AppStorage("miniPlayerWindowOnTop") var miniPlayerWindowOnTop: Bool = true + @AppStorage("miniPlayerType") var miniPlayerType: MiniPlayerType = .minimal + @AppStorage("miniPlayerBackground") var miniPlayerBackground: BackgroundType = .transparent + + @State var popoverIsEnabled: Bool + @State var showPlayerWindow: Bool + + init() { + @AppStorage("popoverIsEnabled") var popoverIsEnabledAppStorage: Bool = true + @AppStorage("showPlayerWindow") var showPlayerWindowAppStorage: Bool = true + + self.popoverIsEnabled = popoverIsEnabledAppStorage + self.showPlayerWindow = showPlayerWindowAppStorage + } var body: some View { Settings.Container(contentWidth: 400) { From 2ea7b801d7ba612fe33289142e051cf33720623f Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 3 Dec 2024 18:08:37 +0100 Subject: [PATCH 16/73] Fixed bugs for apple music, notch UI improvements --- Tuneful/DynamicNotchKit/DynamicNotch.swift | 11 ----- .../DynamicNotchKit/NSScreen+Extensions.swift | 3 +- Tuneful/DynamicNotchKit/NotchView.swift | 3 +- Tuneful/DynamicNotchKit/NotchlessView.swift | 2 +- .../Managers/Players/AppleMusicManager.swift | 13 +++++- .../Players/SystemPlayerManager.swift | 1 - Tuneful/Tuneful.swift | 1 + Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 2 +- .../Settings/AppearanceSettingsView.swift | 43 +++++++++++++++---- .../Views/Settings/GeneralSettingsView.swift | 18 +++++--- release_notes.md | 2 + 11 files changed, 66 insertions(+), 33 deletions(-) diff --git a/Tuneful/DynamicNotchKit/DynamicNotch.swift b/Tuneful/DynamicNotchKit/DynamicNotch.swift index 5888d15..43f04ed 100644 --- a/Tuneful/DynamicNotchKit/DynamicNotch.swift +++ b/Tuneful/DynamicNotchKit/DynamicNotch.swift @@ -234,15 +234,4 @@ extension DynamicNotch { windowController.close() self.windowController = nil } - - // Handle mouse events - private func handleMouseEntered() { - print("Perform action on mouse hover") - // Add your method execution here - } - - private func handleMouseExited() { - print("Perform action on mouse exit") - // Optional: Add exit handling here - } } diff --git a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift index 3e569ad..3d19bf9 100644 --- a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift +++ b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift @@ -17,8 +17,9 @@ extension NSScreen { } var hasNotch: Bool { + return false // return true - auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil +// auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil } var notchSize: NSSize? { diff --git a/Tuneful/DynamicNotchKit/NotchView.swift b/Tuneful/DynamicNotchKit/NotchView.swift index c3adf5d..fbd5498 100644 --- a/Tuneful/DynamicNotchKit/NotchView.swift +++ b/Tuneful/DynamicNotchKit/NotchView.swift @@ -133,7 +133,6 @@ struct NotchPlayerView: View { HStack(alignment: .top, spacing: 10) { AlbumArtView(imageSize: 80) .environmentObject(playerManager) - .padding(5) VStack(alignment: .center) { Text(playerManager.track.title) @@ -141,7 +140,7 @@ struct NotchPlayerView: View { .lineLimit(1) Text(playerManager.track.artist) .foregroundStyle(.secondary) - .font(.caption2) + .font(.headline) .lineLimit(1) PlaybackButtonsView(playButtonSize: 20) .environmentObject(playerManager) diff --git a/Tuneful/DynamicNotchKit/NotchlessView.swift b/Tuneful/DynamicNotchKit/NotchlessView.swift index dbf75a9..a07e23b 100644 --- a/Tuneful/DynamicNotchKit/NotchlessView.swift +++ b/Tuneful/DynamicNotchKit/NotchlessView.swift @@ -99,7 +99,7 @@ struct NotchlessInfoView: View { .lineLimit(1) Text(playerManager.track.artist) .foregroundStyle(.secondary) - .font(.caption2) + .font(.headline) .lineLimit(1) } } diff --git a/Tuneful/Managers/Players/AppleMusicManager.swift b/Tuneful/Managers/Players/AppleMusicManager.swift index 7c5ce2e..103bfd1 100644 --- a/Tuneful/Managers/Players/AppleMusicManager.swift +++ b/Tuneful/Managers/Players/AppleMusicManager.swift @@ -60,6 +60,7 @@ class AppleMusicManager: PlayerProtocol { track.title = app.currentTrack?.name ?? "Unknown Title" track.artist = app.currentTrack?.artist ?? "Unknown Artist" track.album = app.currentTrack?.album ?? "Unknown Album" + track.isLoved = getIsLoved() track.duration = CGFloat(app.currentTrack?.duration ?? 0) return track } @@ -69,7 +70,7 @@ class AppleMusicManager: PlayerProtocol { } func previousTrack() { - app.previousTrack?() + app.backTrack?() } func nextTrack() { @@ -126,4 +127,14 @@ class AppleMusicManager: PlayerProtocol { app.bundleIdentifier == self.bundleId } } + + private func getIsLoved() -> Bool { + if let isLovedTrack = app.currentTrack?.loved { + return isLovedTrack + } else if let isLovedTrack = app.currentTrack?.favorited { + return isLovedTrack + } else { + return false + } + } } diff --git a/Tuneful/Managers/Players/SystemPlayerManager.swift b/Tuneful/Managers/Players/SystemPlayerManager.swift index 183885f..80ff478 100644 --- a/Tuneful/Managers/Players/SystemPlayerManager.swift +++ b/Tuneful/Managers/Players/SystemPlayerManager.swift @@ -130,7 +130,6 @@ class SystemPlayerManager: PlayerProtocol { private func getIsPlaying() -> Bool { let state = info?["kMRMediaRemoteNowPlayingInfoPlaybackRate"] as? Int ?? 0 - print("Is playing: \(state)") return state != 0 } } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 62acc20..023f3d1 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -5,6 +5,7 @@ // Created by Martin Fekete on 27/07/2023. // +import os import SwiftUI import Sparkle import KeyboardShortcuts diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 815a4d0..1ac78ca 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -37,7 +37,6 @@ struct MiniPlayerView: View { HStack(spacing: 0) { ZStack { AlbumArtView(imageSize: self.imageSize) - .padding(.leading, 7) .dragWindowWithClick() AddToFavoritesView() @@ -76,6 +75,7 @@ struct MiniPlayerView: View { .padding() .opacity(0.8) } + .padding(.leading, 8) } } .frame(width: 310, height: 155) diff --git a/Tuneful/Views/Settings/AppearanceSettingsView.swift b/Tuneful/Views/Settings/AppearanceSettingsView.swift index 3fcdb72..5594cd7 100644 --- a/Tuneful/Views/Settings/AppearanceSettingsView.swift +++ b/Tuneful/Views/Settings/AppearanceSettingsView.swift @@ -11,23 +11,39 @@ import Luminare struct AppearanceSettingsView: View { @AppStorage("popoverIsEnabled") var popoverIsEnabledAppStorage: Bool = true - @AppStorage("popoverType") var popoverType: PopoverType = .full - @AppStorage("popoverBackground") var popoverBackground: BackgroundType = .transparent + @AppStorage("popoverType") var popoverTypeAppStorage: PopoverType = .full + @AppStorage("popoverBackground") var popoverBackgroundAppStorage: BackgroundType = .transparent @AppStorage("showPlayerWindow") var showPlayerWindowAppStorage: Bool = true - @AppStorage("miniPlayerWindowOnTop") var miniPlayerWindowOnTop: Bool = true - @AppStorage("miniPlayerType") var miniPlayerType: MiniPlayerType = .minimal - @AppStorage("miniPlayerBackground") var miniPlayerBackground: BackgroundType = .transparent + @AppStorage("miniPlayerWindowOnTop") var miniPlayerWindowOnTopAppStorage: Bool = true + @AppStorage("miniPlayerType") var miniPlayerTypeAppStorage: MiniPlayerType = .minimal + @AppStorage("miniPlayerBackground") var miniPlayerBackgroundAppStorage: BackgroundType = .transparent - @State var popoverIsEnabled: Bool @State var showPlayerWindow: Bool + @State var miniPlayerWindowOnTop: Bool + @State var miniPlayerType: MiniPlayerType = .minimal + @State var miniPlayerBackground: BackgroundType = .transparent + + @State var popoverIsEnabled: Bool + @State var popoverType: PopoverType = .full + @State var popoverBackground: BackgroundType = .transparent init() { - @AppStorage("popoverIsEnabled") var popoverIsEnabledAppStorage: Bool = true @AppStorage("showPlayerWindow") var showPlayerWindowAppStorage: Bool = true + @AppStorage("miniPlayerWindowOnTop") var miniPlayerWindowOnTopAppStorage: Bool = true + @AppStorage("miniPlayerType") var miniPlayerTypeAppStorage: MiniPlayerType = .minimal + @AppStorage("miniPlayerBackground") var miniPlayerBackgroundAppStorage: BackgroundType = .transparent + self.showPlayerWindow = showPlayerWindowAppStorage + self.miniPlayerWindowOnTop = miniPlayerWindowOnTopAppStorage + self.miniPlayerType = miniPlayerTypeAppStorage + self.miniPlayerBackground = miniPlayerBackgroundAppStorage + @AppStorage("popoverIsEnabled") var popoverIsEnabledAppStorage: Bool = true + @AppStorage("popoverType") var popoverTypeAppStorage: PopoverType = .full + @AppStorage("popoverBackground") var popoverBackgroundAppStorage: BackgroundType = .transparent self.popoverIsEnabled = popoverIsEnabledAppStorage - self.showPlayerWindow = showPlayerWindowAppStorage + self.popoverType = popoverTypeAppStorage + self.popoverBackground = popoverBackgroundAppStorage } var body: some View { @@ -53,6 +69,7 @@ struct AppearanceSettingsView: View { .pickerStyle(.segmented) .frame(width: 200) .onChange(of: popoverType) { _ in + self.popoverTypeAppStorage = popoverType NSApplication.shared.sendAction(#selector(AppDelegate.setupPopover), to: nil, from: nil) } .disabled(!popoverIsEnabled) @@ -70,6 +87,9 @@ struct AppearanceSettingsView: View { Text(value.localizedName).tag(value) } } + .onChange(of: popoverBackground) { _ in + self.popoverBackgroundAppStorage = popoverBackground + } .pickerStyle(.segmented) .frame(width: 200) .disabled(!popoverIsEnabled) @@ -84,6 +104,7 @@ struct AppearanceSettingsView: View { isOn: $showPlayerWindow ) .onChange(of: showPlayerWindow) { _ in + self.showPlayerWindowAppStorage = showPlayerWindow NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayer), to: nil, from: nil) } @@ -92,6 +113,7 @@ struct AppearanceSettingsView: View { isOn: $miniPlayerWindowOnTop ) .onChange(of: miniPlayerWindowOnTop) { _ in + self.miniPlayerWindowOnTopAppStorage = miniPlayerWindowOnTop NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayerWindowLevel), to: nil, from: nil) } @@ -108,6 +130,10 @@ struct AppearanceSettingsView: View { } .pickerStyle(.segmented) .frame(width: 200) + .onChange(of: miniPlayerBackground) { _ in + self.miniPlayerBackgroundAppStorage = miniPlayerBackground + NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) + } .disabled(!showPlayerWindow) } .padding(8) @@ -126,6 +152,7 @@ struct AppearanceSettingsView: View { .pickerStyle(.segmented) .frame(width: 200) .onChange(of: miniPlayerType) { _ in + self.miniPlayerTypeAppStorage = miniPlayerType NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) } .disabled(!showPlayerWindow) diff --git a/Tuneful/Views/Settings/GeneralSettingsView.swift b/Tuneful/Views/Settings/GeneralSettingsView.swift index 4da0b32..9f7c234 100644 --- a/Tuneful/Views/Settings/GeneralSettingsView.swift +++ b/Tuneful/Views/Settings/GeneralSettingsView.swift @@ -15,17 +15,21 @@ struct GeneralSettingsView: View { var systemImage: String = "switch.2" @AppStorage("connectedApp") private var connectedAppAppStorage = ConnectedApps.appleMusic - @AppStorage("showSongNotification") private var showSongNotificationAppStorage = true - @AppStorage("notificationDuration") private var notificationDurationAppStorage = 2.0 + @State private var connectedApp: ConnectedApps @State private var alertTitle = Text("Title") @State private var alertMessage = Text("Message") @State private var showingAlert = false + init() { + @AppStorage("connectedApp") var connectedAppAppStorage = ConnectedApps.appleMusic + self.connectedApp = connectedAppAppStorage + } + var body: some View { Settings.Container(contentWidth: 400) { Settings.Section(title: "") { - LuminareSection("General") { + LuminareSection("") { LuminareToggle( "Launch at login", isOn: Binding( @@ -40,16 +44,16 @@ struct GeneralSettingsView: View { Spacer() - Picker("", selection: $connectedAppAppStorage) { + Picker("", selection: $connectedApp) { ForEach(ConnectedApps.allCases.filter { $0.isInstalled }, id: \.self) { value in Text(value.localizedName) .tag(value) } } .frame(width: 150) -// .onChange(of: connectedApp) { _ in -// self.connectedAppAppStorage = connectedApp -// } + .onChange(of: connectedApp) { _ in + self.connectedAppAppStorage = connectedApp + } .pickerStyle(.menu) Button { diff --git a/release_notes.md b/release_notes.md index a86767e..eea4430 100644 --- a/release_notes.md +++ b/release_notes.md @@ -6,6 +6,8 @@ - Added more animations to the UI so the app feels more fluid - Fixed the bug when Spotify was opened in the background even if killed by the user - Fixed the bug when mini player floating preference was ignored on app restart +- Fixed the bug when Tuneful wasn't fetching Apple Music song favorite info correctly when changing songs +- Fixed the bug when previous song button didn't rewind the song to the beginning if some part already played for Apple Music # 1.7.1 - Mini player improvement and various bug fixes From 96a6b32355c85ab12eee400187b18ef0b262ee97 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 3 Dec 2024 21:14:10 +0100 Subject: [PATCH 17/73] New music player selector --- .../AppleMusicIcon 1.png | Bin 0 -> 10351 bytes .../AppleMusicIcon 2.png | Bin 0 -> 10351 bytes .../AppleMusicIcon.png | Bin 0 -> 10351 bytes .../AppleMusicIcon.imageset/Contents.json | 23 +++++++++ .../SpotifyIcon.imageset/Contents.json | 23 +++++++++ .../SpotifyIcon.imageset/SpotifyIcon 1.png | Bin 0 -> 80086 bytes .../SpotifyIcon.imageset/SpotifyIcon 2.png | Bin 0 -> 80086 bytes .../SpotifyIcon.imageset/SpotifyIcon.png | Bin 0 -> 80086 bytes Tuneful/Models/SupportedApps.swift | 17 +++++-- Tuneful/Tuneful.swift | 8 ++-- Tuneful/Views/OnboardingView.swift | 44 +++++++++++++----- .../Views/Settings/GeneralSettingsView.swift | 4 +- 12 files changed, 97 insertions(+), 22 deletions(-) create mode 100644 Tuneful/Assets.xcassets/AppleMusicIcon.imageset/AppleMusicIcon 1.png create mode 100644 Tuneful/Assets.xcassets/AppleMusicIcon.imageset/AppleMusicIcon 2.png create mode 100644 Tuneful/Assets.xcassets/AppleMusicIcon.imageset/AppleMusicIcon.png create mode 100644 Tuneful/Assets.xcassets/AppleMusicIcon.imageset/Contents.json create mode 100644 Tuneful/Assets.xcassets/SpotifyIcon.imageset/Contents.json create mode 100644 Tuneful/Assets.xcassets/SpotifyIcon.imageset/SpotifyIcon 1.png create mode 100644 Tuneful/Assets.xcassets/SpotifyIcon.imageset/SpotifyIcon 2.png create mode 100644 Tuneful/Assets.xcassets/SpotifyIcon.imageset/SpotifyIcon.png diff --git a/Tuneful/Assets.xcassets/AppleMusicIcon.imageset/AppleMusicIcon 1.png b/Tuneful/Assets.xcassets/AppleMusicIcon.imageset/AppleMusicIcon 1.png new file mode 100644 index 0000000000000000000000000000000000000000..9891fe3369f7c6d0ca5e52d8fae86e96d6123f75 GIT binary patch literal 10351 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%0D@E3>d)2e+(YqfP}OJ@en8pBh_I} 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%0D@E3>d)2e+(YqfP}OJ@en8pBh_I} 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%0D@E3>d)2e+(YqfP}OJ@en8pBh_I} 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 iqeB8@d|muy0>C1^fRZAejV~`)0_?Jhex Date: Tue, 3 Dec 2024 23:01:57 +0100 Subject: [PATCH 18/73] Updated settings and onboarding --- Tuneful/Extensions/Settings+Extension.swift | 1 + Tuneful/Models/SupportedApps.swift | 2 +- Tuneful/Tuneful.swift | 24 +++++- Tuneful/Views/OnboardingView.swift | 82 +++++++++---------- .../Views/Settings/GeneralSettingsView.swift | 42 ++++++++-- 5 files changed, 94 insertions(+), 57 deletions(-) diff --git a/Tuneful/Extensions/Settings+Extension.swift b/Tuneful/Extensions/Settings+Extension.swift index 1988669..2940dc9 100644 --- a/Tuneful/Extensions/Settings+Extension.swift +++ b/Tuneful/Extensions/Settings+Extension.swift @@ -11,6 +11,7 @@ import enum Settings.Settings extension Settings.PaneIdentifier { static let general = Self("general") + static let menuBar = Self("menuBar") static let appearance = Self("appearance") static let notch = Self("notch") static let keyboard = Self("keyboard") diff --git a/Tuneful/Models/SupportedApps.swift b/Tuneful/Models/SupportedApps.swift index 27197a9..bbf1302 100644 --- a/Tuneful/Models/SupportedApps.swift +++ b/Tuneful/Models/SupportedApps.swift @@ -10,8 +10,8 @@ import SwiftUI import Luminare enum ConnectedApps: String, Equatable, CaseIterable, LuminarePickerData { - case spotify = "Spotify" case appleMusic = "Apple Music" + case spotify = "Spotify" var localizedName: LocalizedStringKey { LocalizedStringKey(rawValue) } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index b08d70a..2bb575c 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -11,6 +11,7 @@ import Sparkle import KeyboardShortcuts import Settings import Luminare +typealias SettingsPaneIdentifier = AppSettings.PaneIdentifier class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { @AppStorage("popoverType") var popoverType: PopoverType = .full @@ -48,7 +49,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { private var settingsWindow = LuminareTrafficLightedWindow(view: { SettingsView() }) - // Settings + // MARK: Settings + let GeneralSettingsViewController: () -> SettingsPane = { let paneView = Settings.Pane( identifier: .general, @@ -62,6 +64,18 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { return Settings.PaneHostingController(pane: paneView) } + let MenuBarSettingsViewController: () -> SettingsPane = { + let paneView = Settings.Pane( + identifier: .menuBar, + title: "Menu bar", + toolbarIcon: NSImage(systemSymbolName: "menubar.rectangle", accessibilityDescription: "Menu bar settings")! + ) { + MenuBarSettingsView() + } + + return Settings.PaneHostingController(pane: paneView) + } + let AppearanceSettingsViewController: () -> SettingsPane = { let paneView = Settings.Pane( identifier: .appearance, @@ -113,9 +127,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { func applicationDidFinishLaunching(_ notification: Notification) { NSApp.setActivationPolicy(.accessory) - if let bundleID = Bundle.main.bundleIdentifier { - UserDefaults.standard.removePersistentDomain(forName: bundleID) - } +// if let bundleID = Bundle.main.bundleIdentifier { +// UserDefaults.standard.removePersistentDomain(forName: bundleID) +// } self.settingsWindow.isReleasedWhenClosed = false self.playerManager = PlayerManager() @@ -461,6 +475,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { panes: [ GeneralSettingsViewController(), AppearanceSettingsViewController(), + MenuBarSettingsViewController(), NotchSettingsViewController(), KeyboardShortcutsSettingsViewController(), AboutSettingsViewController() @@ -476,6 +491,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { panes: [ GeneralSettingsViewController(), AppearanceSettingsViewController(), + MenuBarSettingsViewController(), NotchSettingsViewController(), KeyboardShortcutsSettingsViewController(), AboutSettingsViewController() diff --git a/Tuneful/Views/OnboardingView.swift b/Tuneful/Views/OnboardingView.swift index 50c5c62..9742a0d 100644 --- a/Tuneful/Views/OnboardingView.swift +++ b/Tuneful/Views/OnboardingView.swift @@ -11,7 +11,6 @@ import KeyboardShortcuts import Luminare struct OnboardingView: View { - private enum Steps { case onAppPicker, onDetails, allDone } @@ -25,47 +24,47 @@ struct OnboardingView: View { VStack(alignment: .center) { VStack { VStack { - Image(nsImage: NSImage(named: "AppIcon") ?? NSImage()) - .resizable() - .scaledToFit() - .frame(width: 60, height: 60) - .padding(.bottom, 10) - + HStack { + Image(nsImage: NSImage(named: "AppIcon") ?? NSImage()) + .resizable() + .scaledToFit() + .frame(width: 50, height: 50) + + if step == .onAppPicker { + Text("Preferred Music App") + .font(.largeTitle) + .fontWeight(.semibold) + } else if step == .onDetails { + Text("Permissions") + .font(.largeTitle) + .fontWeight(.semibold) + } else if step == .allDone { + Text("All Done!") + .font(.largeTitle) + .fontWeight(.semibold) + } else { + EmptyView() + } + } + .padding(.bottom, 10) + } + + HStack { if step == .onAppPicker { - Text("1. Preferred Music App") - .font(.title2) - .fontWeight(.semibold) + AppPicker() } else if step == .onDetails { - Text("2. Permissions") - .font(.title2) - .fontWeight(.semibold) + Details(finishedAlert: $finishedAlert) } else if step == .allDone { - Text("3. All Done!") - .font(.title2) - .fontWeight(.semibold) + AllDone() } else { EmptyView() } } - .padding(.bottom, 10) - - if step == .onAppPicker { - AppPicker() - } else if step == .onDetails { - Details(finishedAlert: $finishedAlert) - } else if step == .allDone { - AllDone() - } else { - EmptyView() - } + .frame(width: 300, height: 150) } .frame(width: 400, height: 250) - .padding(.horizontal, 30) .animation(Constants.SongTransitionAnimation, value: step) - Divider() - .frame(width: 300) - HStack { if step == .onDetails { Button("Back") { @@ -90,13 +89,11 @@ struct OnboardingView: View { step = .onDetails } .buttonStyle(LuminareCompactButtonStyle()) - .keyboardShortcut(.defaultAction) } else if step == .onDetails { Button("Continue") { step = .allDone } .buttonStyle(LuminareCompactButtonStyle()) - .keyboardShortcut(.defaultAction) .disabled(!finishedAlert) } else { Button("Finish") { @@ -106,7 +103,7 @@ struct OnboardingView: View { .buttonStyle(LuminareCompactButtonStyle()) } } - .frame(width: 150, height: 50) + .frame(width: 300, height: 40) } .frame(width: 600, height: 500) .background( @@ -145,16 +142,15 @@ struct AppPicker: View { .stroke(.secondary, lineWidth: 2) ) } - - if !ConnectedApps.spotify.selectable { - Text("Apple Music is the only avaiable music app as Spotify was not found. It should be located at the top level of Applications folder.") - .font(.caption) - .foregroundColor(.secondary) - } } } + + if !ConnectedApps.spotify.selectable { + Text("Apple Music is the only avaiable music app as Spotify was not found. It should be located at the top level of Applications folder.") + .font(.caption) + .foregroundColor(.secondary) + } } - .frame(width: 250) } } @@ -174,13 +170,12 @@ struct Details: View { } var body: some View { - VStack { + VStack(spacing: 20) { Text(""" Tuneful requires permission to control \(name) and display music data. Open \(name) and click 'Enable permissions' below and select OK in the alert that is presented. """) - .font(.caption) .multilineTextAlignment(.center) Button("Enable permissions") { @@ -223,7 +218,6 @@ struct AllDone: View { Text(""" To fully customize Tuneful, right-click Tuneful icon in menu bar and go to Settings. """) - .font(.caption) .multilineTextAlignment(.center) } } diff --git a/Tuneful/Views/Settings/GeneralSettingsView.swift b/Tuneful/Views/Settings/GeneralSettingsView.swift index 2f08736..116b402 100644 --- a/Tuneful/Views/Settings/GeneralSettingsView.swift +++ b/Tuneful/Views/Settings/GeneralSettingsView.swift @@ -44,17 +44,43 @@ struct GeneralSettingsView: View { Spacer() - Picker("", selection: $connectedApp) { - ForEach(ConnectedApps.allCases.filter { $0.selectable }, id: \.self) { value in - Text(value.localizedName) - .tag(value) +// Picker("", selection: $connectedApp) { +// ForEach(ConnectedApps.allCases.filter { $0.selectable }, id: \.self) { value in +// Text(value.localizedName) +// .tag(value) +// } +// } +// .frame(width: 150) +// .onChange(of: connectedApp) { _ in +// self.connectedAppAppStorage = connectedApp +// } +// .pickerStyle(.menu) + + HStack { + ForEach(ConnectedApps.allCases, id: \.rawValue) { app in + LuminareSection() { + Button(action: { + connectedApp = app + connectedAppAppStorage = app + }) { + app.getIcon + .resizable() + .frame(width: 40, height: 40) + .aspectRatio(1, contentMode: .fit) + } + .disabled(!app.selectable) + .buttonStyle(PlainButtonStyle()) + .frame(width: 50, height: 50) + } + .if(connectedApp == app) { button in + button.overlay( + RoundedRectangle(cornerRadius: 15) + .stroke(.secondary, lineWidth: 2) + ) + } } } .frame(width: 150) - .onChange(of: connectedApp) { _ in - self.connectedAppAppStorage = connectedApp - } - .pickerStyle(.menu) Button { let consent = Helper.promptUserForConsent(for: connectedAppAppStorage == .spotify ? Constants.Spotify.bundleID : Constants.AppleMusic.bundleID) From 3f7a7de452443f4fa6e0ea68df3903d51866893c Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Wed, 4 Dec 2024 17:34:24 +0100 Subject: [PATCH 19/73] Hiding notch setting WIP --- .../DynamicNotchKit/NSScreen+Extensions.swift | 4 +- Tuneful/DynamicNotchKit/NotchView.swift | 141 ++++++++++-------- Tuneful/Models/SupportedApps.swift | 2 +- .../Views/Settings/GeneralSettingsView.swift | 18 +-- .../Views/Settings/NotchSettingsView.swift | 10 +- 5 files changed, 85 insertions(+), 90 deletions(-) diff --git a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift index 3d19bf9..11f2e49 100644 --- a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift +++ b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift @@ -17,9 +17,9 @@ extension NSScreen { } var hasNotch: Bool { - return false +// return false // return true -// auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil + auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil } var notchSize: NSSize? { diff --git a/Tuneful/DynamicNotchKit/NotchView.swift b/Tuneful/DynamicNotchKit/NotchView.swift index fbd5498..c5e129f 100644 --- a/Tuneful/DynamicNotchKit/NotchView.swift +++ b/Tuneful/DynamicNotchKit/NotchView.swift @@ -9,85 +9,94 @@ import SwiftUI struct NotchView: View where Content: View { @ObservedObject var dynamicNotch: DynamicNotch + @AppStorage("notchEnabled") private var notchEnabled = true { + didSet { + print("set") + stateNotchEnabled = notchEnabled + } + } + @State private var stateNotchEnabled = true var body: some View { - VStack(spacing: 0) { - HStack(spacing: 0) { - Spacer() - - VStack(spacing: 0) { + if stateNotchEnabled { + VStack(spacing: 0) { + HStack(spacing: 0) { Spacer() - .frame(width: dynamicNotch.notchWidth, height: dynamicNotch.notchHeight) - if !dynamicNotch.isMouseInside && dynamicNotch.isNotificationVisible { - NotchInfoView(playerManager: dynamicNotch.playerManager, minimumNotchWidth: dynamicNotch.notchWidth) - .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } - .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } - .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } - .blur(radius: dynamicNotch.isVisible ? 0 : 10) - .scaleEffect(dynamicNotch.isVisible ? 1 : 0.8) - .offset(y: dynamicNotch.isVisible ? 0 : 5) - .padding(.horizontal, 15) // Small corner radius of the TOP of the notch - .transition(.blur.animation(.smooth)) + VStack(spacing: 0) { + Spacer() + .frame(width: dynamicNotch.notchWidth, height: dynamicNotch.notchHeight) + + if !dynamicNotch.isMouseInside && dynamicNotch.isNotificationVisible { + NotchInfoView(playerManager: dynamicNotch.playerManager, minimumNotchWidth: dynamicNotch.notchWidth) + .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } + .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } + .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } + .blur(radius: dynamicNotch.isVisible ? 0 : 10) + .scaleEffect(dynamicNotch.isVisible ? 1 : 0.8) + .offset(y: dynamicNotch.isVisible ? 0 : 5) + .padding(.horizontal, 15) // Small corner radius of the TOP of the notch + .transition(.blur.animation(.smooth)) + } + + if dynamicNotch.isMouseInside { + NotchPlayerView(playerManager: dynamicNotch.playerManager) + .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } + .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } + .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } + .blur(radius: dynamicNotch.isVisible ? 0 : 10) + .scaleEffect(dynamicNotch.isVisible ? 1 : 0.8) + .offset(y: dynamicNotch.isVisible ? 0 : 5) + .padding(.horizontal, 15) // Small corner radius of the TOP of the notch + .transition(.blur.animation(.smooth)) + } } - - if dynamicNotch.isMouseInside { - NotchPlayerView(playerManager: dynamicNotch.playerManager) - .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } - .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } - .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } - .blur(radius: dynamicNotch.isVisible ? 0 : 10) - .scaleEffect(dynamicNotch.isVisible ? 1 : 0.8) - .offset(y: dynamicNotch.isVisible ? 0 : 5) - .padding(.horizontal, 15) // Small corner radius of the TOP of the notch - .transition(.blur.animation(.smooth)) + .fixedSize() + .frame(minWidth: dynamicNotch.notchWidth) + .onHover { hovering in + withAnimation(dynamicNotch.animation) { + dynamicNotch.isMouseInside = hovering + dynamicNotch.isVisible = hovering + } } - } - .fixedSize() - .frame(minWidth: dynamicNotch.notchWidth) - .onHover { hovering in - withAnimation(dynamicNotch.animation) { - dynamicNotch.isMouseInside = hovering - dynamicNotch.isVisible = hovering + .onChange(of: dynamicNotch.isMouseInside) { isMouseInside in + if isMouseInside { + dynamicNotch.playerManager.startTimer() + } else { + dynamicNotch.playerManager.stopTimer() + } } - } - .onChange(of: dynamicNotch.isMouseInside) { isMouseInside in - if isMouseInside { - dynamicNotch.playerManager.startTimer() - } else { - dynamicNotch.playerManager.stopTimer() + .background { + Rectangle() + .foregroundStyle(.black) + .padding(-50) // The opening/closing animation can overshoot, so this makes sure that it's still black } - } - .background { - Rectangle() - .foregroundStyle(.black) - .padding(-50) // The opening/closing animation can overshoot, so this makes sure that it's still black - } - .contextMenu { - Button( - action: { NSApplication.shared.sendAction(#selector(AppDelegate.openSettings), to: nil, from: nil) }, - label: { Text("Settings...") } - ) - } - .mask { - GeometryReader { _ in // This helps with positioning everything - HStack { - Spacer(minLength: 0) - NotchShape(cornerRadius: dynamicNotch.isVisible ? 20 : nil) - .frame( - width: dynamicNotch.isVisible ? nil : dynamicNotch.notchWidth, - height: dynamicNotch.isVisible ? nil : dynamicNotch.notchHeight - ) - Spacer(minLength: 0) + .contextMenu { + Button( + action: { NSApplication.shared.sendAction(#selector(AppDelegate.openSettings), to: nil, from: nil) }, + label: { Text("Settings...") } + ) + } + .mask { + GeometryReader { _ in // This helps with positioning everything + HStack { + Spacer(minLength: 0) + NotchShape(cornerRadius: dynamicNotch.isVisible ? 20 : nil) + .frame( + width: dynamicNotch.isVisible ? nil : dynamicNotch.notchWidth, + height: dynamicNotch.isVisible ? nil : dynamicNotch.notchHeight + ) + Spacer(minLength: 0) + } } } + .shadow(color: .black.opacity(0.6), radius: dynamicNotch.isVisible ? 10 : 0) + .animation(dynamicNotch.animation, value: dynamicNotch.contentID) + + Spacer() } - .shadow(color: .black.opacity(0.6), radius: dynamicNotch.isVisible ? 10 : 0) - .animation(dynamicNotch.animation, value: dynamicNotch.contentID) - Spacer() } - Spacer() } } } diff --git a/Tuneful/Models/SupportedApps.swift b/Tuneful/Models/SupportedApps.swift index bbf1302..e884e80 100644 --- a/Tuneful/Models/SupportedApps.swift +++ b/Tuneful/Models/SupportedApps.swift @@ -27,7 +27,7 @@ enum ConnectedApps: String, Equatable, CaseIterable, LuminarePickerData { var getIcon: Image { switch self { case .spotify: - return Image(.spotifyIcon) + return Image(.spotifyIcon) case .appleMusic: return Image(.appleMusicIcon) } diff --git a/Tuneful/Views/Settings/GeneralSettingsView.swift b/Tuneful/Views/Settings/GeneralSettingsView.swift index 116b402..2b4d96e 100644 --- a/Tuneful/Views/Settings/GeneralSettingsView.swift +++ b/Tuneful/Views/Settings/GeneralSettingsView.swift @@ -29,7 +29,7 @@ struct GeneralSettingsView: View { var body: some View { Settings.Container(contentWidth: 400) { Settings.Section(title: "") { - LuminareSection("") { + LuminareSection { LuminareToggle( "Launch at login", isOn: Binding( @@ -44,18 +44,6 @@ struct GeneralSettingsView: View { Spacer() -// Picker("", selection: $connectedApp) { -// ForEach(ConnectedApps.allCases.filter { $0.selectable }, id: \.self) { value in -// Text(value.localizedName) -// .tag(value) -// } -// } -// .frame(width: 150) -// .onChange(of: connectedApp) { _ in -// self.connectedAppAppStorage = connectedApp -// } -// .pickerStyle(.menu) - HStack { ForEach(ConnectedApps.allCases, id: \.rawValue) { app in LuminareSection() { @@ -65,8 +53,8 @@ struct GeneralSettingsView: View { }) { app.getIcon .resizable() - .frame(width: 40, height: 40) - .aspectRatio(1, contentMode: .fit) + .scaledToFit() + .frame(width: 50, height: 50) } .disabled(!app.selectable) .buttonStyle(PlainButtonStyle()) diff --git a/Tuneful/Views/Settings/NotchSettingsView.swift b/Tuneful/Views/Settings/NotchSettingsView.swift index b240e15..4568ac7 100644 --- a/Tuneful/Views/Settings/NotchSettingsView.swift +++ b/Tuneful/Views/Settings/NotchSettingsView.swift @@ -10,14 +10,16 @@ import Settings import Luminare struct NotchSettingsView: View { + @AppStorage("notchEnabled") private var notchEnabled = true @AppStorage("showSongNotification") private var showSongNotification = true @AppStorage("notificationDuration") private var notificationDuration = 2.0 - @AppStorage("notchPlayerEnabled") private var notchPlayerEnabled = true var body: some View { Settings.Container(contentWidth: 400) { Settings.Section(title: "") { - LuminareSection("Notifications") { + LuminareToggle("Enable notch player", isOn: $notchEnabled) + + LuminareSection("") { LuminareToggle("Show notification on song change", isOn: $showSongNotification) LuminareSliderPicker( @@ -31,10 +33,6 @@ struct NotchSettingsView: View { } .padding(.bottom, 10) - LuminareSection("Notch player") { - LuminareToggle("Enable notch player", isOn: $notchPlayerEnabled) - } - Text("For Macs without notch, this will be displayed as floating window on top of the screen. You can hover over the middle of the screen top to show it.") .font(.footnote) .foregroundColor(.secondary) From a43717d50979eedc8e94f56c0060e030f6cc9aeb Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Fri, 6 Dec 2024 17:42:25 +0100 Subject: [PATCH 20/73] Enable/disable notch in settings --- Tuneful/Defaults/Defaults+Extensions.swift | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Tuneful/Defaults/Defaults+Extensions.swift diff --git a/Tuneful/Defaults/Defaults+Extensions.swift b/Tuneful/Defaults/Defaults+Extensions.swift new file mode 100644 index 0000000..e69de29 From ca7c6c2d2dd6e544814da05603972181c2953d42 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Fri, 6 Dec 2024 19:48:13 +0100 Subject: [PATCH 21/73] Disabling notch --- Tuneful/Defaults/Defaults+Extensions.swift | 12 ++ .../DynamicNotchKit/DynamicNotchInfo.swift | 8 + Tuneful/DynamicNotchKit/NotchView.swift | 142 +++++++++--------- Tuneful/Managers/PlayerManager.swift | 14 +- Tuneful/Tuneful.swift | 21 ++- .../Views/Popover/CompactPopoverView.swift | 11 +- Tuneful/Views/Popover/PopoverView.swift | 11 +- .../Views/Settings/NotchSettingsView.swift | 21 ++- 8 files changed, 153 insertions(+), 87 deletions(-) diff --git a/Tuneful/Defaults/Defaults+Extensions.swift b/Tuneful/Defaults/Defaults+Extensions.swift index e69de29..adc8d1c 100644 --- a/Tuneful/Defaults/Defaults+Extensions.swift +++ b/Tuneful/Defaults/Defaults+Extensions.swift @@ -0,0 +1,12 @@ +// +// Defaults+Extensions.swift +// Tuneful +// +// Created by Martin Fekete on 12/6/24. +// + +import Defaults + +extension Defaults.Keys { + static let notchEnabled = Key("notchEnabled", default: true) +} diff --git a/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift b/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift index 19164c6..b6f3b16 100644 --- a/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift +++ b/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift @@ -59,6 +59,14 @@ public class DynamicNotchInfo { public func toggle() { internalDynamicNotch.toggle() } + + public func deinitializeNotchWindow() { + internalDynamicNotch.deinitializeWindow() + } + + public func initializeNotchWindow() { + internalDynamicNotch.initializeWindow(screen: NSScreen.screens[0]) + } } public extension DynamicNotchInfo { diff --git a/Tuneful/DynamicNotchKit/NotchView.swift b/Tuneful/DynamicNotchKit/NotchView.swift index c5e129f..c7d87da 100644 --- a/Tuneful/DynamicNotchKit/NotchView.swift +++ b/Tuneful/DynamicNotchKit/NotchView.swift @@ -6,97 +6,89 @@ // import SwiftUI +import Defaults struct NotchView: View where Content: View { @ObservedObject var dynamicNotch: DynamicNotch - @AppStorage("notchEnabled") private var notchEnabled = true { - didSet { - print("set") - stateNotchEnabled = notchEnabled - } - } - @State private var stateNotchEnabled = true var body: some View { - if stateNotchEnabled { - VStack(spacing: 0) { - HStack(spacing: 0) { + VStack(spacing: 0) { + HStack(spacing: 0) { + Spacer() + + VStack(spacing: 0) { Spacer() + .frame(width: dynamicNotch.notchWidth, height: dynamicNotch.notchHeight) - VStack(spacing: 0) { - Spacer() - .frame(width: dynamicNotch.notchWidth, height: dynamicNotch.notchHeight) - - if !dynamicNotch.isMouseInside && dynamicNotch.isNotificationVisible { - NotchInfoView(playerManager: dynamicNotch.playerManager, minimumNotchWidth: dynamicNotch.notchWidth) - .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } - .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } - .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } - .blur(radius: dynamicNotch.isVisible ? 0 : 10) - .scaleEffect(dynamicNotch.isVisible ? 1 : 0.8) - .offset(y: dynamicNotch.isVisible ? 0 : 5) - .padding(.horizontal, 15) // Small corner radius of the TOP of the notch - .transition(.blur.animation(.smooth)) - } - - if dynamicNotch.isMouseInside { - NotchPlayerView(playerManager: dynamicNotch.playerManager) - .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } - .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } - .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } - .blur(radius: dynamicNotch.isVisible ? 0 : 10) - .scaleEffect(dynamicNotch.isVisible ? 1 : 0.8) - .offset(y: dynamicNotch.isVisible ? 0 : 5) - .padding(.horizontal, 15) // Small corner radius of the TOP of the notch - .transition(.blur.animation(.smooth)) - } - } - .fixedSize() - .frame(minWidth: dynamicNotch.notchWidth) - .onHover { hovering in - withAnimation(dynamicNotch.animation) { - dynamicNotch.isMouseInside = hovering - dynamicNotch.isVisible = hovering - } + if !dynamicNotch.isMouseInside && dynamicNotch.isNotificationVisible { + NotchInfoView(playerManager: dynamicNotch.playerManager, minimumNotchWidth: dynamicNotch.notchWidth) + .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } + .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } + .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } + .blur(radius: dynamicNotch.isVisible ? 0 : 10) + .scaleEffect(dynamicNotch.isVisible ? 1 : 0.8) + .offset(y: dynamicNotch.isVisible ? 0 : 5) + .padding(.horizontal, 15) // Small corner radius of the TOP of the notch + .transition(.blur.animation(.smooth)) } - .onChange(of: dynamicNotch.isMouseInside) { isMouseInside in - if isMouseInside { - dynamicNotch.playerManager.startTimer() - } else { - dynamicNotch.playerManager.stopTimer() - } + + if dynamicNotch.isMouseInside { + NotchPlayerView(playerManager: dynamicNotch.playerManager) + .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } + .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } + .safeAreaInset(edge: .trailing, spacing: 0) { Color.clear.frame(width: 15) } + .blur(radius: dynamicNotch.isVisible ? 0 : 10) + .scaleEffect(dynamicNotch.isVisible ? 1 : 0.8) + .offset(y: dynamicNotch.isVisible ? 0 : 5) + .padding(.horizontal, 15) // Small corner radius of the TOP of the notch + .transition(.blur.animation(.smooth)) } - .background { - Rectangle() - .foregroundStyle(.black) - .padding(-50) // The opening/closing animation can overshoot, so this makes sure that it's still black + } + .fixedSize() + .frame(minWidth: dynamicNotch.notchWidth) + .onHover { hovering in + withAnimation(dynamicNotch.animation) { + dynamicNotch.isMouseInside = hovering + dynamicNotch.isVisible = hovering } - .contextMenu { - Button( - action: { NSApplication.shared.sendAction(#selector(AppDelegate.openSettings), to: nil, from: nil) }, - label: { Text("Settings...") } - ) + } + .onChange(of: dynamicNotch.isMouseInside) { isMouseInside in + if isMouseInside { + dynamicNotch.playerManager.startTimer() + } else { + dynamicNotch.playerManager.stopTimer() } - .mask { - GeometryReader { _ in // This helps with positioning everything - HStack { - Spacer(minLength: 0) - NotchShape(cornerRadius: dynamicNotch.isVisible ? 20 : nil) - .frame( - width: dynamicNotch.isVisible ? nil : dynamicNotch.notchWidth, - height: dynamicNotch.isVisible ? nil : dynamicNotch.notchHeight - ) - Spacer(minLength: 0) - } + } + .background { + Rectangle() + .foregroundStyle(.black) + .padding(-50) // The opening/closing animation can overshoot, so this makes sure that it's still black + } + .contextMenu { + Button( + action: { NSApplication.shared.sendAction(#selector(AppDelegate.openSettings), to: nil, from: nil) }, + label: { Text("Settings...") } + ) + } + .mask { + GeometryReader { _ in // This helps with positioning everything + HStack { + Spacer(minLength: 0) + NotchShape(cornerRadius: dynamicNotch.isVisible ? 20 : nil) + .frame( + width: dynamicNotch.isVisible ? nil : dynamicNotch.notchWidth, + height: dynamicNotch.isVisible ? nil : dynamicNotch.notchHeight + ) + Spacer(minLength: 0) } } - .shadow(color: .black.opacity(0.6), radius: dynamicNotch.isVisible ? 10 : 0) - .animation(dynamicNotch.animation, value: dynamicNotch.contentID) - - Spacer() } + .shadow(color: .black.opacity(0.6), radius: dynamicNotch.isVisible ? 10 : 0) + .animation(dynamicNotch.animation, value: dynamicNotch.contentID) + Spacer() } + Spacer() } } } diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index 2f2a802..7176680 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -10,6 +10,7 @@ import SwiftUI import Combine import ISSoundAdditions import ScriptingBridge +import Defaults public class PlayerManager: ObservableObject { @AppStorage("connectedApp") private var connectedApp = ConnectedApps.appleMusic @@ -310,7 +311,8 @@ public class PlayerManager: ObservableObject { } func showNotchNotification() { - if !showSongNotification || popoverIsShown { + let notchEnabled = Defaults[.notchEnabled] + if !notchEnabled || !showSongNotification || popoverIsShown { return } @@ -465,4 +467,14 @@ public class PlayerManager: ObservableObject { func isLikeAuthorized() -> Bool { return musicApp.isLikeAuthorized } + + // MARK: Notch + + func deinitializeNotch() { + notchInfo.deinitializeNotchWindow() + } + + func initializeNotch() { + notchInfo.initializeNotchWindow() + } } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 2bb575c..489d8f3 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -11,7 +11,8 @@ import Sparkle import KeyboardShortcuts import Settings import Luminare -typealias SettingsPaneIdentifier = AppSettings.PaneIdentifier +import Combine +import Defaults class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { @AppStorage("popoverType") var popoverType: PopoverType = .full @@ -160,6 +161,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { self.setupMenuBar() self.updateStatusBarItem(nil) self.setupKeyboardShortcuts() + self.setupNotch() } // MARK: Music player @@ -521,6 +523,23 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { onboardingWindow.close() self.mainSetup() } + + // MARK: Notch + + private func setupNotch() { + let notchEnabled = Defaults[.notchEnabled] + if !notchEnabled { + hideNotch() + } + } + + @objc func showNotch() { + playerManager.initializeNotch() + } + + @objc func hideNotch() { + playerManager.deinitializeNotch() + } } @main diff --git a/Tuneful/Views/Popover/CompactPopoverView.swift b/Tuneful/Views/Popover/CompactPopoverView.swift index c3dd88a..f526caa 100644 --- a/Tuneful/Views/Popover/CompactPopoverView.swift +++ b/Tuneful/Views/Popover/CompactPopoverView.swift @@ -14,11 +14,16 @@ struct CompactPopoverView: View { var body: some View { ZStack { - if popoverBackground == .albumArt && playerManager.isRunning { +// if popoverBackground == .albumArt && playerManager.isRunning { playerManager.track.albumArt .resizable() - VisualEffectView(material: .popover, blendingMode: .withinWindow) - } + .frame(width: 190, height: 190) + .offset(y: -30) + VisualEffectView(material: .popover, blendingMode: .withinWindow) + + VisualEffectView(material: .popover, blendingMode: .withinWindow) + .opacity(0.7) +// } if !playerManager.isRunning || playerManager.track.isEmpty() { Text("Please open \(playerManager.name) to use Tuneful") diff --git a/Tuneful/Views/Popover/PopoverView.swift b/Tuneful/Views/Popover/PopoverView.swift index e05cbe3..870fe85 100644 --- a/Tuneful/Views/Popover/PopoverView.swift +++ b/Tuneful/Views/Popover/PopoverView.swift @@ -14,11 +14,16 @@ struct PopoverView: View { var body: some View { ZStack { - if popoverBackground == .albumArt && playerManager.isRunning { +// if popoverBackground == .albumArt && playerManager.isRunning { playerManager.track.albumArt .resizable() - VisualEffectView(material: .popover, blendingMode: .withinWindow) - } + .frame(width: 190, height: 190) + .offset(y: -80) + VisualEffectView(material: .popover, blendingMode: .withinWindow) + + VisualEffectView(material: .popover, blendingMode: .withinWindow) + .opacity(0.7) +// } if !playerManager.musicApp.isRunning() || playerManager.track.isEmpty() { Text("Please open \(playerManager.name) to use Tuneful") diff --git a/Tuneful/Views/Settings/NotchSettingsView.swift b/Tuneful/Views/Settings/NotchSettingsView.swift index 4568ac7..8b46c22 100644 --- a/Tuneful/Views/Settings/NotchSettingsView.swift +++ b/Tuneful/Views/Settings/NotchSettingsView.swift @@ -8,19 +8,31 @@ import SwiftUI import Settings import Luminare +import Defaults struct NotchSettingsView: View { - @AppStorage("notchEnabled") private var notchEnabled = true @AppStorage("showSongNotification") private var showSongNotification = true @AppStorage("notificationDuration") private var notificationDuration = 2.0 + @Default(.notchEnabled) var notchEnabled + var body: some View { Settings.Container(contentWidth: 400) { Settings.Section(title: "") { - LuminareToggle("Enable notch player", isOn: $notchEnabled) - LuminareSection("") { + LuminareToggle("Enable notch integration", isOn: $notchEnabled) + .onChange(of: notchEnabled) { enabled in + print(enabled) + if enabled { + NSApplication.shared.sendAction(#selector(AppDelegate.showNotch), to: nil, from: nil) + } else { + NSApplication.shared.sendAction(#selector(AppDelegate.hideNotch), to: nil, from: nil) + } + } + LuminareToggle("Show notification on song change", isOn: $showSongNotification) + .disabled(!notchEnabled) + .opacity(notchEnabled ? 1 : 0.7) LuminareSliderPicker( "Notification duration", @@ -29,7 +41,8 @@ struct NotchSettingsView: View { ) { value in LocalizedStringKey("\(value, specifier: "%.1f") s") } - .disabled(!self.showSongNotification) + .disabled(!notchEnabled) + .opacity(notchEnabled ? 1 : 0.7) } .padding(.bottom, 10) From 2de1146dd60b9d58e253f4867ef210e5963eeb82 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sat, 7 Dec 2024 09:30:57 +0100 Subject: [PATCH 22/73] Moved away from AppStorage to Defaults --- Tuneful.xcodeproj/project.pbxproj | 37 ++++++++ .../xcshareddata/swiftpm/Package.resolved | 20 +++- Tuneful/Defaults/Defaults+Extensions.swift | 19 ++++ Tuneful/Managers/PlayerManager.swift | 16 +--- .../Managers/Players/PlayerAppProvider.swift | 5 +- Tuneful/Managers/StatusBarItemManager.swift | 35 +++---- .../Managers/StatusBarPlaybackManager.swift | 7 +- Tuneful/Models/BackgroundType.swift | 5 +- Tuneful/Models/MiniPlayerType.swift | 3 +- Tuneful/Models/PopoverType.swift | 3 +- Tuneful/Models/ShowStatusBarTrackInfo.swift | 3 +- Tuneful/Models/StatusBarIcon.swift | 3 +- Tuneful/Models/StatusBarTrackDetails.swift | 3 +- Tuneful/Models/SupportedApps.swift | 3 +- Tuneful/Tuneful.swift | 38 +++----- .../MiniPlayer/CompactMiniPlayerView.swift | 14 +-- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 14 +-- Tuneful/Views/NotificationView.swift | 3 - Tuneful/Views/OnboardingView.swift | 13 ++- .../Views/Playback/VolumeControlView.swift | 2 - .../Views/Popover/CompactPopoverView.swift | 2 +- Tuneful/Views/Popover/PopoverView.swift | 5 +- .../Settings/AppearanceSettingsView.swift | 90 ++---------------- .../Views/Settings/GeneralSettingsView.swift | 27 ++---- .../Views/Settings/MenuBarSettingsView.swift | 95 +++++-------------- .../Views/Settings/NotchSettingsView.swift | 5 +- Tuneful/Views/SettingsView.swift | 8 +- Tuneful/Windows/MiniPlayerWindow.swift | 19 ++-- 28 files changed, 208 insertions(+), 289 deletions(-) diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 2e8e242..47a282e 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -45,6 +45,9 @@ FE4C92152B6143CC00FF79BE /* MarqueeTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4C92142B6143CC00FF79BE /* MarqueeTextView.swift */; }; FE4C92172B61459F00FF79BE /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4C92162B61459F00FF79BE /* String+Extension.swift */; }; FE5B3CA22AB0AC700038B6E4 /* PopoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE5B3CA12AB0AC700038B6E4 /* PopoverView.swift */; }; + FE5B56E62D037EEF0077527C /* Defaults in Frameworks */ = {isa = PBXBuildFile; productRef = FE5B56E52D037EEF0077527C /* Defaults */; }; + FE5B56E82D037EEF0077527C /* DefaultsMacros in Frameworks */ = {isa = PBXBuildFile; productRef = FE5B56E72D037EEF0077527C /* DefaultsMacros */; }; + FE5B56EC2D0386EC0077527C /* Defaults+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE5B56EA2D0386EC0077527C /* Defaults+Extensions.swift */; }; FE6BFCE72A72F37800D3321F /* Tuneful.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE6BFCE62A72F37800D3321F /* Tuneful.swift */; }; FE6BFCE92A72F37800D3321F /* MiniPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE6BFCE82A72F37800D3321F /* MiniPlayerView.swift */; }; FE6BFCEB2A72F37900D3321F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FE6BFCEA2A72F37900D3321F /* Assets.xcassets */; }; @@ -146,6 +149,7 @@ FE4C92142B6143CC00FF79BE /* MarqueeTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarqueeTextView.swift; sourceTree = ""; }; FE4C92162B61459F00FF79BE /* String+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extension.swift"; sourceTree = ""; }; FE5B3CA12AB0AC700038B6E4 /* PopoverView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverView.swift; sourceTree = ""; }; + FE5B56EA2D0386EC0077527C /* Defaults+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Defaults+Extensions.swift"; sourceTree = ""; }; FE6BFCE32A72F37800D3321F /* Tuneful.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Tuneful.app; sourceTree = BUILT_PRODUCTS_DIR; }; FE6BFCE62A72F37800D3321F /* Tuneful.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tuneful.swift; sourceTree = ""; }; FE6BFCE82A72F37800D3321F /* MiniPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerView.swift; sourceTree = ""; }; @@ -202,9 +206,11 @@ FEF53A752AF8010300CE4981 /* Sparkle in Frameworks */, FEF32F9E2CBD49610084BDAD /* Luminare in Frameworks */, FEFFE5502B4AA04B000887B5 /* Settings in Frameworks */, + FE5B56E82D037EEF0077527C /* DefaultsMacros in Frameworks */, FEF0660F2B51910700A514F2 /* KeyboardShortcuts in Frameworks */, FE3F67FE2AAD02D100CCE841 /* LaunchAtLogin in Frameworks */, FEF53A6A2AEEAC0D00CE4981 /* ISSoundAdditions in Frameworks */, + FE5B56E62D037EEF0077527C /* Defaults in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -305,6 +311,14 @@ path = Buttons; sourceTree = ""; }; + FE5B56EB2D0386EC0077527C /* Defaults */ = { + isa = PBXGroup; + children = ( + FE5B56EA2D0386EC0077527C /* Defaults+Extensions.swift */, + ); + path = Defaults; + sourceTree = ""; + }; FE6BFCDA2A72F37800D3321F = { isa = PBXGroup; children = ( @@ -325,6 +339,7 @@ FE6BFCE52A72F37800D3321F /* Tuneful */ = { isa = PBXGroup; children = ( + FE5B56EB2D0386EC0077527C /* Defaults */, FEFFE5532B4FDDEA000887B5 /* Extensions */, FEA6FB212B04168000DACC43 /* AudioDevices */, FE6BFCE62A72F37800D3321F /* Tuneful.swift */, @@ -493,6 +508,8 @@ FEFFE54F2B4AA04B000887B5 /* Settings */, FEF0660E2B51910700A514F2 /* KeyboardShortcuts */, FEF32F9D2CBD49610084BDAD /* Luminare */, + FE5B56E52D037EEF0077527C /* Defaults */, + FE5B56E72D037EEF0077527C /* DefaultsMacros */, ); productName = Tuneful; productReference = FE6BFCE32A72F37800D3321F /* Tuneful.app */; @@ -529,6 +546,7 @@ FEFFE54E2B4AA04B000887B5 /* XCRemoteSwiftPackageReference "Settings" */, FEF0660D2B51910700A514F2 /* XCRemoteSwiftPackageReference "KeyboardShortcuts" */, FEF32F9C2CBD49610084BDAD /* XCRemoteSwiftPackageReference "Luminare" */, + FE5B56E42D037EEF0077527C /* XCRemoteSwiftPackageReference "Defaults" */, ); productRefGroup = FE6BFCE42A72F37800D3321F /* Products */; projectDirPath = ""; @@ -577,6 +595,7 @@ FE445FE42A977D0E001CA55A /* Double+Extension.swift in Sources */, FE37A0332A829623006FBA5B /* MusicControl.swift in Sources */, FEF53A6E2AEFF42300CE4981 /* AlertItem.swift in Sources */, + FE5B56EC2D0386EC0077527C /* Defaults+Extensions.swift in Sources */, FE1A62FB2CBC1B09001C13CE /* DynamicNotch.swift in Sources */, FE1A62FC2CBC1B09001C13CE /* NSScreen+Extensions.swift in Sources */, FE1A62FD2CBC1B09001C13CE /* DynamicNotchInfo.swift in Sources */, @@ -864,6 +883,14 @@ kind = branch; }; }; + FE5B56E42D037EEF0077527C /* XCRemoteSwiftPackageReference "Defaults" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/sindresorhus/Defaults"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 9.0.0; + }; + }; FEF0660D2B51910700A514F2 /* XCRemoteSwiftPackageReference "KeyboardShortcuts" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/sindresorhus/KeyboardShortcuts"; @@ -912,6 +939,16 @@ package = FE3F67FC2AAD02D100CCE841 /* XCRemoteSwiftPackageReference "LaunchAtLogin" */; productName = LaunchAtLogin; }; + FE5B56E52D037EEF0077527C /* Defaults */ = { + isa = XCSwiftPackageProductDependency; + package = FE5B56E42D037EEF0077527C /* XCRemoteSwiftPackageReference "Defaults" */; + productName = Defaults; + }; + FE5B56E72D037EEF0077527C /* DefaultsMacros */ = { + isa = XCSwiftPackageProductDependency; + package = FE5B56E42D037EEF0077527C /* XCRemoteSwiftPackageReference "Defaults" */; + productName = DefaultsMacros; + }; FEF0660E2B51910700A514F2 /* KeyboardShortcuts */ = { isa = XCSwiftPackageProductDependency; package = FEF0660D2B51910700A514F2 /* XCRemoteSwiftPackageReference "KeyboardShortcuts" */; diff --git a/Tuneful.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Tuneful.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index e49c6ab..acc979c 100644 --- a/Tuneful.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Tuneful.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,6 +1,15 @@ { - "originHash" : "98946b2d21c745a3204168b35d3b08adbb56968e101874e3d329784ab3132005", + "originHash" : "65163de07630725f7d7a408243fd7c343eee3adeef75f7df73a63ca64834ec28", "pins" : [ + { + "identity" : "defaults", + "kind" : "remoteSourceControl", + "location" : "https://github.com/sindresorhus/Defaults", + "state" : { + "revision" : "ef1b2318fb549002bb533bec3a8ad98ae09f2cb6", + "version" : "9.0.0" + } + }, { "identity" : "issoundadditions", "kind" : "remoteSourceControl", @@ -54,6 +63,15 @@ "revision" : "1f07f4096e52f19b5e7abaa697b7fc592b7ff57c", "version" : "2.5.1" } + }, + { + "identity" : "swift-syntax", + "kind" : "remoteSourceControl", + "location" : "https://github.com/swiftlang/swift-syntax", + "state" : { + "revision" : "0687f71944021d616d34d922343dcef086855920", + "version" : "600.0.1" + } } ], "version" : 3 diff --git a/Tuneful/Defaults/Defaults+Extensions.swift b/Tuneful/Defaults/Defaults+Extensions.swift index adc8d1c..205a95f 100644 --- a/Tuneful/Defaults/Defaults+Extensions.swift +++ b/Tuneful/Defaults/Defaults+Extensions.swift @@ -9,4 +9,23 @@ import Defaults extension Defaults.Keys { static let notchEnabled = Key("notchEnabled", default: true) + static let showPlayerWindow = Key("showPlayerWindow", default: true) + static let viewedOnboarding = Key("viewedOnboarding", default: false) + static let popoverIsEnabled = Key("popoverIsEnabled", default: true) + static let miniPlayerWindowOnTop = Key("miniPlayerWindowOnTop", default: true) + static let hideMenuBarItemWhenNotPlaying = Key("hideMenuBarItemWhenNotPlaying", default: false) + static let connectedApp = Key("connectedApp", default: .appleMusic) + static let popoverType = Key("popoverType", default: .full) + static let miniPlayerType = Key("miniPlayerType", default: .minimal) + static let menuBarItemWidth = Key("menuBarItemWidth", default: 150) + static let statusBarIcon = Key("statusBarIcon", default: .albumArt) + static let trackInfoDetails = Key("trackInfoDetails", default: .artistAndSong) + static let showStatusBarTrackInfo = Key("showStatusBarTrackInfo", default: .always) + static let showMenuBarPlaybackControls = Key("showMenuBarPlaybackControls", default: false) + static let scrollingTrackInfo = Key("scrollingTrackInfo", default: false) + static let showEqWhenPlayingMusic = Key("showEqWhenPlayingMusic", default: true) + static let windowPosition = Key("windowPosition", default: "10,10") + static let showSongNotification = Key("showSongNotification", default: true) + static let notificationDuration = Key("notificationDuration", default: 2) + static let popoverBackground = Key("popoverBackground", default: .semiTransparent) } diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index 7176680..6068e6b 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -13,11 +13,6 @@ import ScriptingBridge import Defaults public class PlayerManager: ObservableObject { - @AppStorage("connectedApp") private var connectedApp = ConnectedApps.appleMusic - @AppStorage("showPlayerWindow") private var showPlayerWindow: Bool = true - @AppStorage("showSongNotification") private var showSongNotification = true - @AppStorage("notificationDuration") private var notificationDuration = 2.0 - var musicApp: PlayerProtocol! var playerAppProvider: PlayerAppProvider! @@ -126,7 +121,7 @@ public class PlayerManager: ObservableObject { private func setupMusicAppsAndObservers() { Logger.main.log("Setting up music app") - self.musicApp = playerAppProvider.getPlayerApp(connectedApp: self.connectedApp) + self.musicApp = playerAppProvider.getPlayerApp() self.setupObservers() } @@ -185,7 +180,7 @@ public class PlayerManager: ObservableObject { } @objc private func popoverIsOpening(_ notification: NSNotification) { - if !showPlayerWindow { + if !Defaults[.showPlayerWindow] { self.startTimer() } self.audioDevices = AudioDevice.output.filter { $0.transportType != .virtual } @@ -196,7 +191,7 @@ public class PlayerManager: ObservableObject { } @objc private func popoverIsClosing(_ notification: NSNotification) { - if !showPlayerWindow { + if !Defaults[.showPlayerWindow] { self.stopTimer() } @@ -311,12 +306,11 @@ public class PlayerManager: ObservableObject { } func showNotchNotification() { - let notchEnabled = Defaults[.notchEnabled] - if !notchEnabled || !showSongNotification || popoverIsShown { + if !Defaults[.notchEnabled] || !Defaults[.showSongNotification] || popoverIsShown { return } - self.notchInfo.show(for: notificationDuration) + self.notchInfo.show(for: Defaults[.notificationDuration]) } // MARK: Controls diff --git a/Tuneful/Managers/Players/PlayerAppProvider.swift b/Tuneful/Managers/Players/PlayerAppProvider.swift index 376282e..1bb5ebc 100644 --- a/Tuneful/Managers/Players/PlayerAppProvider.swift +++ b/Tuneful/Managers/Players/PlayerAppProvider.swift @@ -7,6 +7,7 @@ import SwiftUI import Combine +import Defaults class PlayerAppProvider { private var notificationSubject: PassthroughSubject @@ -15,9 +16,9 @@ class PlayerAppProvider { self.notificationSubject = notificationSubject } - func getPlayerApp(connectedApp: ConnectedApps) -> PlayerProtocol { + func getPlayerApp() -> PlayerProtocol { // TODO: System player - switch connectedApp { + switch Defaults[.connectedApp] { case .spotify: return SpotifyManager(notificationSubject: notificationSubject) case .appleMusic: diff --git a/Tuneful/Managers/StatusBarItemManager.swift b/Tuneful/Managers/StatusBarItemManager.swift index 3f12a5f..8f2db22 100644 --- a/Tuneful/Managers/StatusBarItemManager.swift +++ b/Tuneful/Managers/StatusBarItemManager.swift @@ -6,16 +6,9 @@ // import SwiftUI +import Defaults class StatusBarItemManager: ObservableObject { - @AppStorage("menuBarItemWidth") var menuBarItemWidth: Double = 150 - @AppStorage("statusBarIcon") var statusBarIcon: StatusBarIcon = .albumArt - @AppStorage("trackInfoDetails") var trackInfoDetails: StatusBarTrackDetails = .artistAndSong - @AppStorage("connectedApp") var connectedApp: ConnectedApps = ConnectedApps.appleMusic - @AppStorage("showStatusBarTrackInfo") var showStatusBarTrackInfo: ShowStatusBarTrackInfo = .always - @AppStorage("scrollingTrackInfo") var scrollingTrackInfo: Bool = false - @AppStorage("showEqWhenPlayingMusic") var showEqWhenPlayingMusic: Bool = true - @ObservedObject var playerManager: PlayerManager init(playerManager: PlayerManager) { @@ -30,21 +23,21 @@ class StatusBarItemManager: ObservableObject { var menuBarItemHeigth = 20.0 var menuBarItemWidth = titleWidth == 0 ? Constants.StatusBar.imageWidth - : (self.menuBarItemWidth > titleWidth ? titleWidth + 5 : self.menuBarItemWidth + 5) - if self.statusBarIcon != .hidden && titleWidth != 0 { + : (Defaults[.menuBarItemWidth] > titleWidth ? titleWidth + 5 : Defaults[.menuBarItemWidth] + 5) + if Defaults[.statusBarIcon] != .hidden && titleWidth != 0 { menuBarItemWidth += Constants.StatusBar.imageWidth } let mainView = HStack(spacing: 7) { - if self.statusBarIcon != .hidden { + if Defaults[.statusBarIcon] != .hidden { image.frame(width: 18, height: 18) } - if scrollingTrackInfo && titleWidth != 0 && playerAppIsRunning { + if Defaults[.scrollingTrackInfo] && titleWidth != 0 && playerAppIsRunning { MarqueeText(text: title, leftFade: 0.0, rightFade: 0.0, startDelay: 0, animating: isPlaying) } - if !scrollingTrackInfo && titleWidth != 0 || !playerAppIsRunning { + if !Defaults[.scrollingTrackInfo] && titleWidth != 0 || !playerAppIsRunning { Text(title) .lineLimit(1) .font(.system(size: 13, weight: .regular)) @@ -53,7 +46,7 @@ class StatusBarItemManager: ObservableObject { } .frame(maxWidth: .infinity, alignment: .center) - if self.statusBarIcon == .hidden && titleWidth == 0 { + if Defaults[.statusBarIcon] == .hidden && titleWidth == 0 { menuBarItemHeigth = 0 menuBarItemWidth = 0 } @@ -68,11 +61,11 @@ class StatusBarItemManager: ObservableObject { private func getStatusBarTrackInfo(track: Track, playerAppIsRunning: Bool, isPlaying: Bool) -> String { let activePlayback = isPlaying && playerAppIsRunning - if showStatusBarTrackInfo == .never { + if Defaults[.showStatusBarTrackInfo] == .never { return "" } - if showStatusBarTrackInfo == .whenPlaying && !activePlayback { + if Defaults[.showStatusBarTrackInfo] == .whenPlaying && !activePlayback { return "" } @@ -81,7 +74,7 @@ class StatusBarItemManager: ObservableObject { } if !playerAppIsRunning && !activePlayback { - return "Open \(connectedApp.rawValue)" + return "Open \(Defaults[.connectedApp].rawValue)" } return getTrackInfoDetails(track: track) @@ -98,7 +91,7 @@ class StatusBarItemManager: ObservableObject { if title.isEmpty { title = album } var trackInfo = "" - switch trackInfoDetails { + switch Defaults[.trackInfoDetails] { case .artistAndSong: trackInfo = "\(artist) • \(title)" case .artist: @@ -111,8 +104,8 @@ class StatusBarItemManager: ObservableObject { } private func getImage(track: Track, playerAppIsRunning: Bool, isPlaying: Bool) -> AnyView { - if isPlaying && showEqWhenPlayingMusic && playerAppIsRunning { - if statusBarIcon == .albumArt { + if isPlaying && Defaults[.showEqWhenPlayingMusic] && playerAppIsRunning { + if Defaults[.statusBarIcon] == .albumArt { return AnyView( Rectangle() .fill(Color(nsColor: track.nsAlbumArt.averageColor ?? .white).gradient) @@ -123,7 +116,7 @@ class StatusBarItemManager: ObservableObject { } } - if statusBarIcon == .albumArt && playerAppIsRunning { + if Defaults[.statusBarIcon] == .albumArt && playerAppIsRunning { return AnyView(track.albumArt.resizable().frame(width: 18, height: 18).cornerRadius(4)) } diff --git a/Tuneful/Managers/StatusBarPlaybackManager.swift b/Tuneful/Managers/StatusBarPlaybackManager.swift index c7dae34..d0f342f 100644 --- a/Tuneful/Managers/StatusBarPlaybackManager.swift +++ b/Tuneful/Managers/StatusBarPlaybackManager.swift @@ -6,10 +6,9 @@ // import SwiftUI +import Defaults class StatusBarPlaybackManager: ObservableObject { - @AppStorage("showMenuBarPlaybackControls") var showMenuBarPlaybackControls: Bool = false - private var playerManager: PlayerManager private var statusBarItem: NSStatusItem @@ -18,7 +17,7 @@ class StatusBarPlaybackManager: ObservableObject { // Playback buttons in meu bar self.statusBarItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength) - self.statusBarItem.isVisible = self.showMenuBarPlaybackControls + self.statusBarItem.isVisible = Defaults[.showMenuBarPlaybackControls] self.updateStatusBarPlaybackItem(playerAppIsRunning: playerManager.isRunning) let contextMenu = NSMenu() @@ -40,7 +39,7 @@ class StatusBarPlaybackManager: ObservableObject { } func toggleStatusBarVisibility() { - statusBarItem.isVisible = self.showMenuBarPlaybackControls + statusBarItem.isVisible = Defaults[.showMenuBarPlaybackControls] } @objc func updateStatusBarPlaybackItem(playerAppIsRunning: Bool) { diff --git a/Tuneful/Models/BackgroundType.swift b/Tuneful/Models/BackgroundType.swift index 9a57cef..adde064 100644 --- a/Tuneful/Models/BackgroundType.swift +++ b/Tuneful/Models/BackgroundType.swift @@ -6,9 +6,10 @@ // import SwiftUI +import Defaults -enum BackgroundType: String, Equatable, CaseIterable { - +enum BackgroundType: String, Equatable, CaseIterable, Defaults.Serializable { + case semiTransparent = "Semi-transparent" case transparent = "Transparent" case albumArt = "Album art" diff --git a/Tuneful/Models/MiniPlayerType.swift b/Tuneful/Models/MiniPlayerType.swift index 0c13119..e812f22 100644 --- a/Tuneful/Models/MiniPlayerType.swift +++ b/Tuneful/Models/MiniPlayerType.swift @@ -6,8 +6,9 @@ // import SwiftUI +import Defaults -enum MiniPlayerType: String, Equatable, CaseIterable { +enum MiniPlayerType: String, Equatable, CaseIterable, Defaults.Serializable { case full = "Full" case minimal = "Minimal" diff --git a/Tuneful/Models/PopoverType.swift b/Tuneful/Models/PopoverType.swift index 4d8941c..7f59372 100644 --- a/Tuneful/Models/PopoverType.swift +++ b/Tuneful/Models/PopoverType.swift @@ -6,8 +6,9 @@ // import SwiftUI +import Defaults -enum PopoverType: String, Equatable, CaseIterable { +enum PopoverType: String, Equatable, CaseIterable, Defaults.Serializable { case full = "Full" case minimal = "Minimal" diff --git a/Tuneful/Models/ShowStatusBarTrackInfo.swift b/Tuneful/Models/ShowStatusBarTrackInfo.swift index 51d589e..87690d7 100644 --- a/Tuneful/Models/ShowStatusBarTrackInfo.swift +++ b/Tuneful/Models/ShowStatusBarTrackInfo.swift @@ -6,8 +6,9 @@ // import SwiftUI +import Defaults -enum ShowStatusBarTrackInfo: String, Equatable, CaseIterable { +enum ShowStatusBarTrackInfo: String, Equatable, CaseIterable, Defaults.Serializable { case always = "Always" case whenPlaying = "When playing" diff --git a/Tuneful/Models/StatusBarIcon.swift b/Tuneful/Models/StatusBarIcon.swift index 8fbda74..969d006 100644 --- a/Tuneful/Models/StatusBarIcon.swift +++ b/Tuneful/Models/StatusBarIcon.swift @@ -6,8 +6,9 @@ // import SwiftUI +import Defaults -enum StatusBarIcon: String, Equatable, CaseIterable { +enum StatusBarIcon: String, Equatable, CaseIterable, Defaults.Serializable { case albumArt = "Album art" case appIcon = "App icon" case hidden = "Hidden" diff --git a/Tuneful/Models/StatusBarTrackDetails.swift b/Tuneful/Models/StatusBarTrackDetails.swift index f19b32a..369de36 100644 --- a/Tuneful/Models/StatusBarTrackDetails.swift +++ b/Tuneful/Models/StatusBarTrackDetails.swift @@ -6,8 +6,9 @@ // import SwiftUI +import Defaults -enum StatusBarTrackDetails: String, Equatable, CaseIterable { +enum StatusBarTrackDetails: String, Equatable, CaseIterable, Defaults.Serializable { case artistAndSong = "Artist and song" case artist = "Artist" diff --git a/Tuneful/Models/SupportedApps.swift b/Tuneful/Models/SupportedApps.swift index e884e80..6ebb2a3 100644 --- a/Tuneful/Models/SupportedApps.swift +++ b/Tuneful/Models/SupportedApps.swift @@ -8,8 +8,9 @@ import Foundation import SwiftUI import Luminare +import Defaults -enum ConnectedApps: String, Equatable, CaseIterable, LuminarePickerData { +enum ConnectedApps: String, Equatable, CaseIterable, LuminarePickerData, Defaults.Serializable { case appleMusic = "Apple Music" case spotify = "Spotify" diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 489d8f3..6ac40a5 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -15,16 +15,6 @@ import Combine import Defaults class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { - @AppStorage("popoverType") var popoverType: PopoverType = .full - @AppStorage("miniPlayerType") var miniPlayerType: MiniPlayerType = .minimal - @AppStorage("showPlayerWindow") var showPlayerWindow: Bool = true - @AppStorage("viewedOnboarding") var viewedOnboarding: Bool = false - @AppStorage("popoverIsEnabled") var popoverIsEnabled: Bool = true - @AppStorage("viewedShortcutsSetup") var viewedShortcutsSetup: Bool = false - @AppStorage("miniPlayerWindowOnTop") var miniPlayerWindowOnTop: Bool = true - @AppStorage("hideMenuBarItemWhenNotPlaying") var hideMenuBarItemWhenNotPlaying: Bool = false - @AppStorage("connectedApp") var connectedApp = ConnectedApps.appleMusic - // Windows private var onboardingWindow: OnboardingWindow! private var miniPlayerWindow: MiniPlayerWindow = MiniPlayerWindow() @@ -144,7 +134,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { object: nil ) - if !viewedOnboarding { + if !Defaults[.viewedOnboarding] { self.showOnboarding() } else { self.mainSetup() @@ -172,11 +162,11 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } // TODO: System player - switch connectedApp { + switch Defaults[.connectedApp] { case .spotify: - self.connectedApp = .appleMusic + Defaults[.connectedApp] = .appleMusic case .appleMusic: - self.connectedApp = .spotify + Defaults[.connectedApp] = .spotify } } @@ -231,7 +221,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { action: #selector(showHideMiniPlayer), keyEquivalent: "" ) - .state = showPlayerWindow ? .on : .off + .state = Defaults[.showPlayerWindow] ? .on : .off statusBarMenu.addItem(.separator()) @@ -283,12 +273,12 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { @IBAction func showHideMiniPlayer(_ sender: NSMenuItem) { if sender.state == .on { sender.state = .off - self.showPlayerWindow = false + Defaults[.showPlayerWindow] = false self.playerManager.timerStopSignal.send() self.miniPlayerWindow.close() } else { sender.state = .on - self.showPlayerWindow = true + Defaults[.showPlayerWindow] = true self.setupMiniPlayer() } } @@ -310,7 +300,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // MARK: Status bar item title @objc func updateStatusBarItem(_ notification: NSNotification?) { - guard viewedOnboarding else { return } + guard Defaults[.viewedOnboarding] else { return } var playerAppIsRunning = playerManager.isRunning if notification?.userInfo?["PlayerAppIsRunning"] != nil { @@ -335,7 +325,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } @objc func toggleMenuBarItemVisibility() { - if hideMenuBarItemWhenNotPlaying && (!playerManager.isRunning || !playerManager.isPlaying) { + if Defaults[.hideMenuBarItemWhenNotPlaying] && (!playerManager.isRunning || !playerManager.isPlaying) { self.statusBarItem.isVisible = false } else { self.statusBarItem.isVisible = true @@ -359,7 +349,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { let popoverWidth = 210 let popoverHeigth = 310 - switch popoverType { + switch Defaults[.popoverType] { case .full: frameSize = NSSize(width: popoverWidth, height: popoverHeigth) rootView = AnyView(PopoverView().environmentObject(self.playerManager)) @@ -383,7 +373,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } @objc func handlePopover(_ sender: NSStatusBarButton?) { - if self.popoverIsEnabled { + if Defaults[.popoverIsEnabled] { self.togglePopover(sender) } else { self.playerManager.openMusicApp() @@ -406,7 +396,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { @objc func setupMiniPlayer() { let windowPosition = miniPlayerWindow.frame.origin - switch miniPlayerType { + switch Defaults[.miniPlayerType] { case .full: setupMiniPlayerWindow( size: NSSize(width: 300, height: 145), @@ -426,14 +416,14 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { playerManager.timerStartSignal.send() - if !showPlayerWindow { + if !Defaults[.showPlayerWindow] { playerManager.timerStopSignal.send() miniPlayerWindow.close() } } @objc func toggleMiniPlayerWindowLevel() { - if self.miniPlayerWindowOnTop { + if Defaults[.miniPlayerWindowOnTop] { self.miniPlayerWindow.level = .floating } else { self.miniPlayerWindow.level = .normal diff --git a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift index b291b01..b1d81ff 100644 --- a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift @@ -11,7 +11,7 @@ import MediaPlayer struct CompactMiniPlayerView: View { @EnvironmentObject var playerManager: PlayerManager - @AppStorage("miniPlayerBackground") var miniPlayerBackground: BackgroundType = .transparent +// @AppStorage("miniPlayerBackground") var miniPlayerBackground: BackgroundType = .transparent @State private var isShowingPlaybackControls = false private var imageSize: CGFloat = 140.0 @@ -21,12 +21,12 @@ struct CompactMiniPlayerView: View { var body: some View { ZStack { - if miniPlayerBackground == .albumArt && playerManager.isRunning { - playerManager.track.albumArt - .resizable() - .scaledToFill() - VisualEffectView(material: .popover, blendingMode: .withinWindow) - } +// if miniPlayerBackground == .albumArt && playerManager.isRunning { +// playerManager.track.albumArt +// .resizable() +// .scaledToFill() +// VisualEffectView(material: .popover, blendingMode: .withinWindow) +// } if !playerManager.isRunning || playerManager.track.isEmpty() { Text("Please open \(playerManager.name) to use Tuneful") diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 1ac78ca..523b732 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -9,7 +9,7 @@ import SwiftUI import MediaPlayer struct MiniPlayerView: View { - @AppStorage("miniPlayerBackground") var miniPlayerBackground: BackgroundType = .transparent +// @AppStorage("miniPlayerBackground") var miniPlayerBackground: BackgroundType = .transparent @EnvironmentObject var playerManager: PlayerManager @State private var isShowingPlaybackControls = false @@ -18,12 +18,12 @@ struct MiniPlayerView: View { var body: some View { ZStack { - if miniPlayerBackground == .albumArt && playerManager.isRunning { - playerManager.track.albumArt - .resizable() - .scaledToFill() - VisualEffectView(material: .popover, blendingMode: .withinWindow) - } +// if miniPlayerBackground == .albumArt && playerManager.isRunning { +// playerManager.track.albumArt +// .resizable() +// .scaledToFill() +// VisualEffectView(material: .popover, blendingMode: .withinWindow) +// } if !playerManager.isRunning || playerManager.track.isEmpty() { Text("Please open \(playerManager.name) to use Tuneful") diff --git a/Tuneful/Views/NotificationView.swift b/Tuneful/Views/NotificationView.swift index ed04afa..b8248af 100644 --- a/Tuneful/Views/NotificationView.swift +++ b/Tuneful/Views/NotificationView.swift @@ -10,15 +10,12 @@ import Foundation import SwiftUI struct NotificationView: View { - @EnvironmentObject var playerManager: PlayerManager @State private var isPresented = false @State private var title = "" @State private var message = "" - @State private var messageId = UUID() - @State private var cancelButtonIsShowing = false let presentAnimation = Animation.spring( diff --git a/Tuneful/Views/OnboardingView.swift b/Tuneful/Views/OnboardingView.swift index 9742a0d..761fd96 100644 --- a/Tuneful/Views/OnboardingView.swift +++ b/Tuneful/Views/OnboardingView.swift @@ -9,14 +9,14 @@ import SwiftUI import ScriptingBridge import KeyboardShortcuts import Luminare +import Defaults struct OnboardingView: View { private enum Steps { case onAppPicker, onDetails, allDone } - @AppStorage("viewedShortcutsSetup") var viewedShortcutsSetup: Bool = false - + @Default(.viewedOnboarding) private var viewedOnboarding @State private var step: Steps = .onAppPicker @State private var finishedAlert = false @@ -97,7 +97,7 @@ struct OnboardingView: View { .disabled(!finishedAlert) } else { Button("Finish") { - self.viewedShortcutsSetup = true + self.viewedOnboarding = true NSApplication.shared.sendAction(#selector(AppDelegate.finishOnboarding), to: nil, from: nil) } .buttonStyle(LuminareCompactButtonStyle()) @@ -117,7 +117,7 @@ struct OnboardingView: View { } struct AppPicker: View { - @AppStorage("connectedApp") private var connectedApp = ConnectedApps.appleMusic + @Default(.connectedApp) private var connectedApp var body: some View { VStack(spacing: 10) { @@ -155,11 +155,10 @@ struct AppPicker: View { } struct Details: View { - @AppStorage("viewedOnboarding") var viewedOnboarding: Bool = false - @AppStorage("connectedApp") private var connectedApp = ConnectedApps.appleMusic + @Default(.connectedApp) private var connectedApp + @Default(.viewedOnboarding) private var viewedOnboarding @Binding var finishedAlert: Bool - @State private var alertTitle = Text("Title") @State private var alertMessage = Text("Message") @State private var showAlert = false diff --git a/Tuneful/Views/Playback/VolumeControlView.swift b/Tuneful/Views/Playback/VolumeControlView.swift index 4b935ae..11cc00a 100644 --- a/Tuneful/Views/Playback/VolumeControlView.swift +++ b/Tuneful/Views/Playback/VolumeControlView.swift @@ -11,9 +11,7 @@ import SwiftUI import ISSoundAdditions struct VolumeControlView: View { - @EnvironmentObject var playerManager: PlayerManager - @AppStorage("showPlayerWindow") var showPlayerWindow: Bool = true let volumeIconSize = CGFloat(12) diff --git a/Tuneful/Views/Popover/CompactPopoverView.swift b/Tuneful/Views/Popover/CompactPopoverView.swift index f526caa..827776f 100644 --- a/Tuneful/Views/Popover/CompactPopoverView.swift +++ b/Tuneful/Views/Popover/CompactPopoverView.swift @@ -9,7 +9,7 @@ import SwiftUI struct CompactPopoverView: View { @EnvironmentObject var playerManager: PlayerManager - @AppStorage("popoverBackground") var popoverBackground: BackgroundType = .transparent +// @AppStorage("popoverBackground") var popoverBackground: BackgroundType = .transparent @State private var isShowingPlaybackControls = false var body: some View { diff --git a/Tuneful/Views/Popover/PopoverView.swift b/Tuneful/Views/Popover/PopoverView.swift index 870fe85..de4df68 100644 --- a/Tuneful/Views/Popover/PopoverView.swift +++ b/Tuneful/Views/Popover/PopoverView.swift @@ -6,10 +6,11 @@ // import SwiftUI +import Defaults struct PopoverView: View { - @EnvironmentObject var playerManager: PlayerManager - @AppStorage("popoverBackground") var popoverBackground: BackgroundType = .transparent + @EnvironmentObject private var playerManager: PlayerManager + @Default(.popoverBackground) private var popoverBackground @State private var isShowingPlaybackControls = false var body: some View { diff --git a/Tuneful/Views/Settings/AppearanceSettingsView.swift b/Tuneful/Views/Settings/AppearanceSettingsView.swift index 5594cd7..8dd2286 100644 --- a/Tuneful/Views/Settings/AppearanceSettingsView.swift +++ b/Tuneful/Views/Settings/AppearanceSettingsView.swift @@ -8,43 +8,14 @@ import SwiftUI import Settings import Luminare +import Defaults struct AppearanceSettingsView: View { - @AppStorage("popoverIsEnabled") var popoverIsEnabledAppStorage: Bool = true - @AppStorage("popoverType") var popoverTypeAppStorage: PopoverType = .full - @AppStorage("popoverBackground") var popoverBackgroundAppStorage: BackgroundType = .transparent - - @AppStorage("showPlayerWindow") var showPlayerWindowAppStorage: Bool = true - @AppStorage("miniPlayerWindowOnTop") var miniPlayerWindowOnTopAppStorage: Bool = true - @AppStorage("miniPlayerType") var miniPlayerTypeAppStorage: MiniPlayerType = .minimal - @AppStorage("miniPlayerBackground") var miniPlayerBackgroundAppStorage: BackgroundType = .transparent - - @State var showPlayerWindow: Bool - @State var miniPlayerWindowOnTop: Bool - @State var miniPlayerType: MiniPlayerType = .minimal - @State var miniPlayerBackground: BackgroundType = .transparent - - @State var popoverIsEnabled: Bool - @State var popoverType: PopoverType = .full - @State var popoverBackground: BackgroundType = .transparent - - init() { - @AppStorage("showPlayerWindow") var showPlayerWindowAppStorage: Bool = true - @AppStorage("miniPlayerWindowOnTop") var miniPlayerWindowOnTopAppStorage: Bool = true - @AppStorage("miniPlayerType") var miniPlayerTypeAppStorage: MiniPlayerType = .minimal - @AppStorage("miniPlayerBackground") var miniPlayerBackgroundAppStorage: BackgroundType = .transparent - self.showPlayerWindow = showPlayerWindowAppStorage - self.miniPlayerWindowOnTop = miniPlayerWindowOnTopAppStorage - self.miniPlayerType = miniPlayerTypeAppStorage - self.miniPlayerBackground = miniPlayerBackgroundAppStorage - - @AppStorage("popoverIsEnabled") var popoverIsEnabledAppStorage: Bool = true - @AppStorage("popoverType") var popoverTypeAppStorage: PopoverType = .full - @AppStorage("popoverBackground") var popoverBackgroundAppStorage: BackgroundType = .transparent - self.popoverIsEnabled = popoverIsEnabledAppStorage - self.popoverType = popoverTypeAppStorage - self.popoverBackground = popoverBackgroundAppStorage - } + @Default(.popoverIsEnabled) private var popoverIsEnabled + @Default(.popoverType) private var popoverType + @Default(.showPlayerWindow) private var showPlayerWindow + @Default(.miniPlayerWindowOnTop) private var miniPlayerWindowOnTop + @Default(.miniPlayerType) private var miniPlayerType var body: some View { Settings.Container(contentWidth: 400) { @@ -57,7 +28,7 @@ struct AppearanceSettingsView: View { HStack { Text("Popover style") - .foregroundStyle(self.popoverIsEnabled ? .primary : .tertiary) + .foregroundStyle(popoverIsEnabled ? .primary : .tertiary) Spacer() @@ -69,32 +40,11 @@ struct AppearanceSettingsView: View { .pickerStyle(.segmented) .frame(width: 200) .onChange(of: popoverType) { _ in - self.popoverTypeAppStorage = popoverType NSApplication.shared.sendAction(#selector(AppDelegate.setupPopover), to: nil, from: nil) } .disabled(!popoverIsEnabled) } .padding(8) - - HStack { - Text("Popover background") - .foregroundStyle(self.popoverIsEnabled ? .primary : .tertiary) - - Spacer() - - Picker("", selection: $popoverBackground) { - ForEach(BackgroundType.allCases, id: \.self) { value in - Text(value.localizedName).tag(value) - } - } - .onChange(of: popoverBackground) { _ in - self.popoverBackgroundAppStorage = popoverBackground - } - .pickerStyle(.segmented) - .frame(width: 200) - .disabled(!popoverIsEnabled) - } - .padding(8) } .padding(.bottom, 10) @@ -104,7 +54,6 @@ struct AppearanceSettingsView: View { isOn: $showPlayerWindow ) .onChange(of: showPlayerWindow) { _ in - self.showPlayerWindowAppStorage = showPlayerWindow NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayer), to: nil, from: nil) } @@ -113,34 +62,12 @@ struct AppearanceSettingsView: View { isOn: $miniPlayerWindowOnTop ) .onChange(of: miniPlayerWindowOnTop) { _ in - self.miniPlayerWindowOnTopAppStorage = miniPlayerWindowOnTop NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayerWindowLevel), to: nil, from: nil) } - HStack { - Text("Background") - .foregroundStyle(self.showPlayerWindow ? .primary : .tertiary) - - Spacer() - - Picker("", selection: $miniPlayerBackground) { - ForEach(BackgroundType.allCases, id: \.self) { value in - Text(value.localizedName).tag(value) - } - } - .pickerStyle(.segmented) - .frame(width: 200) - .onChange(of: miniPlayerBackground) { _ in - self.miniPlayerBackgroundAppStorage = miniPlayerBackground - NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) - } - .disabled(!showPlayerWindow) - } - .padding(8) - HStack { Text("Window style") - .foregroundStyle(self.showPlayerWindow ? .primary : .tertiary) + .foregroundStyle(showPlayerWindow ? .primary : .tertiary) Spacer() @@ -152,7 +79,6 @@ struct AppearanceSettingsView: View { .pickerStyle(.segmented) .frame(width: 200) .onChange(of: miniPlayerType) { _ in - self.miniPlayerTypeAppStorage = miniPlayerType NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) } .disabled(!showPlayerWindow) diff --git a/Tuneful/Views/Settings/GeneralSettingsView.swift b/Tuneful/Views/Settings/GeneralSettingsView.swift index 2b4d96e..3cd3e91 100644 --- a/Tuneful/Views/Settings/GeneralSettingsView.swift +++ b/Tuneful/Views/Settings/GeneralSettingsView.swift @@ -9,23 +9,15 @@ import SwiftUI import Settings import LaunchAtLogin import Luminare +import Defaults struct GeneralSettingsView: View { - var title: String = "General" - var systemImage: String = "switch.2" + @Default(.connectedApp) private var connectedApp - @AppStorage("connectedApp") private var connectedAppAppStorage = ConnectedApps.appleMusic - - @State private var connectedApp: ConnectedApps @State private var alertTitle = Text("Title") @State private var alertMessage = Text("Message") @State private var showingAlert = false - init() { - @AppStorage("connectedApp") var connectedAppAppStorage = ConnectedApps.appleMusic - self.connectedApp = connectedAppAppStorage - } - var body: some View { Settings.Container(contentWidth: 400) { Settings.Section(title: "") { @@ -47,10 +39,7 @@ struct GeneralSettingsView: View { HStack { ForEach(ConnectedApps.allCases, id: \.rawValue) { app in LuminareSection() { - Button(action: { - connectedApp = app - connectedAppAppStorage = app - }) { + Button(action: { connectedApp = app }) { app.getIcon .resizable() .scaledToFit() @@ -71,19 +60,19 @@ struct GeneralSettingsView: View { .frame(width: 150) Button { - let consent = Helper.promptUserForConsent(for: connectedAppAppStorage == .spotify ? Constants.Spotify.bundleID : Constants.AppleMusic.bundleID) + let consent = Helper.promptUserForConsent(for: connectedApp == .spotify ? Constants.Spotify.bundleID : Constants.AppleMusic.bundleID) switch consent { case .closed: - alertTitle = Text("\(Text(connectedAppAppStorage.localizedName)) is not opened") - alertMessage = Text("Please open \(Text(connectedAppAppStorage.localizedName)) to enable permissions") + alertTitle = Text("\(Text(connectedApp.localizedName)) is not opened") + alertMessage = Text("Please open \(Text(connectedApp.localizedName)) to enable permissions") case .granted: - alertTitle = Text("Permission granted for \(Text(connectedAppAppStorage.localizedName))") + alertTitle = Text("Permission granted for \(Text(connectedApp.localizedName))") alertMessage = Text("Start playing a song!") case .notPrompted: return case .denied: alertTitle = Text("Permission denied") - alertMessage = Text("Please go to System Settings > Privacy & Security > Automation, and check \(Text(connectedAppAppStorage.localizedName)) under Tuneful") + alertMessage = Text("Please go to System Settings > Privacy & Security > Automation, and check \(Text(connectedApp.localizedName)) under Tuneful") } showingAlert = true } label: { diff --git a/Tuneful/Views/Settings/MenuBarSettingsView.swift b/Tuneful/Views/Settings/MenuBarSettingsView.swift index 486fdf7..802d2a5 100644 --- a/Tuneful/Views/Settings/MenuBarSettingsView.swift +++ b/Tuneful/Views/Settings/MenuBarSettingsView.swift @@ -4,55 +4,21 @@ // // Created by Martin Fekete on 06/01/2024. // - import SwiftUI import Settings import Luminare +import Defaults struct MenuBarSettingsView: View { - var title: String = "Menu bar" - var systemImage: String = "menubar.rectangle" - - @AppStorage("menuBarItemWidth") var menuBarItemWidthAppStorage: Double = 150 - @AppStorage("statusBarIcon") var statusBarIconAppStorage: StatusBarIcon = .albumArt - @AppStorage("trackInfoDetails") var trackInfoDetailsAppStorage: StatusBarTrackDetails = .artistAndSong - @AppStorage("showStatusBarTrackInfo") var showStatusBarTrackInfoAppStorage: ShowStatusBarTrackInfo = .always - @AppStorage("showMenuBarPlaybackControls") var showMenuBarPlaybackControlsAppStorage: Bool = false - @AppStorage("hideMenuBarItemWhenNotPlaying") var hideMenuBarItemWhenNotPlayingAppStorage: Bool = false - @AppStorage("scrollingTrackInfo") var scrollingTrackInfoAppStorage: Bool = false - @AppStorage("showEqWhenPlayingMusic") var showEqWhenPlayingMusicAppStorage: Bool = true - - // A bit of a hack, binded AppStorage variable doesn't refresh UI, first we read the app storage this way - // and @AppStorage variable is updated whenever the state changes using .onChange() - @State var menuBarItemWidth: Double - @State var statusBarIcon: StatusBarIcon - @State var trackInfoDetails: StatusBarTrackDetails - @State var showStatusBarTrackInfo: ShowStatusBarTrackInfo - @State var showMenuBarPlaybackControls: Bool - @State var hideMenuBarItemWhenNotPlaying: Bool - @State var scrollingTrackInfo: Bool - @State var showEqWhenPlayingMusic: Bool + @Default(.menuBarItemWidth) private var menuBarItemWidth + @Default(.statusBarIcon) private var statusBarIcon + @Default(.trackInfoDetails) private var trackInfoDetails + @Default(.showStatusBarTrackInfo) private var showStatusBarTrackInfo + @Default(.showMenuBarPlaybackControls) private var showMenuBarPlaybackControls + @Default(.hideMenuBarItemWhenNotPlaying) private var hideMenuBarItemWhenNotPlaying + @Default(.scrollingTrackInfo) private var scrollingTrackInfo + @Default(.showEqWhenPlayingMusic) private var showEqWhenPlayingMusic - init() { - @AppStorage("menuBarItemWidth") var menuBarItemWidthAppStorage: Double = 150 - @AppStorage("statusBarIcon") var statusBarIconAppStorage: StatusBarIcon = .albumArt - @AppStorage("trackInfoDetails") var trackInfoDetailsAppStorage: StatusBarTrackDetails = .artistAndSong - @AppStorage("showStatusBarTrackInfo") var showStatusBarTrackInfoAppStorage: ShowStatusBarTrackInfo = .always - @AppStorage("showMenuBarPlaybackControls") var showMenuBarPlaybackControlsAppStorage: Bool = false - @AppStorage("hideMenuBarItemWhenNotPlaying") var hideMenuBarItemWhenNotPlayingAppStorage: Bool = false - @AppStorage("scrollingTrackInfo") var scrollingTrackInfoAppStorage: Bool = false - @AppStorage("showEqWhenPlayingMusic") var showEqWhenPlayingMusicAppStorage: Bool = true - - self.menuBarItemWidth = menuBarItemWidthAppStorage - self.statusBarIcon = statusBarIconAppStorage - self.trackInfoDetails = trackInfoDetailsAppStorage - self.showStatusBarTrackInfo = showStatusBarTrackInfoAppStorage - self.showMenuBarPlaybackControls = showMenuBarPlaybackControlsAppStorage - self.hideMenuBarItemWhenNotPlaying = hideMenuBarItemWhenNotPlayingAppStorage - self.scrollingTrackInfo = scrollingTrackInfoAppStorage - self.showEqWhenPlayingMusic = showEqWhenPlayingMusicAppStorage - } - var body: some View { Settings.Container(contentWidth: 400) { Settings.Section(title: "") { @@ -69,21 +35,18 @@ struct MenuBarSettingsView: View { } .frame(width: 150) .onChange(of: statusBarIcon) { _ in - self.statusBarIconAppStorage = statusBarIcon - if statusBarIcon == .hidden && showStatusBarTrackInfo == .never { showStatusBarTrackInfo = .whenPlaying } - - self.sendTrackChangedNotification() + sendTrackChangedNotification() } .pickerStyle(.menu) } .padding(8) - LuminareToggle("Show equalizer when playing music", isOn: $showEqWhenPlayingMusicAppStorage) - .onChange(of: showEqWhenPlayingMusicAppStorage) { _ in - self.sendTrackChangedNotification() + LuminareToggle("Show equalizer when playing music", isOn: $showEqWhenPlayingMusic) + .onChange(of: showEqWhenPlayingMusic) { _ in + sendTrackChangedNotification() } HStack { @@ -95,8 +58,7 @@ struct MenuBarSettingsView: View { Text("") } .onChange(of: hideMenuBarItemWhenNotPlaying) { _ in - self.hideMenuBarItemWhenNotPlayingAppStorage = hideMenuBarItemWhenNotPlaying - self.sendTrackChangedNotification() + sendTrackChangedNotification() } .toggleStyle(.switch) } @@ -111,7 +73,6 @@ struct MenuBarSettingsView: View { Text("") } .onChange(of: showMenuBarPlaybackControls) { _ in - self.showMenuBarPlaybackControlsAppStorage = showMenuBarPlaybackControls NSApplication.shared.sendAction(#selector(AppDelegate.menuBarPlaybackControls), to: nil, from: nil) } .toggleStyle(.switch) @@ -131,13 +92,10 @@ struct MenuBarSettingsView: View { } } .onChange(of: showStatusBarTrackInfo) { _ in - self.showStatusBarTrackInfoAppStorage = showStatusBarTrackInfo - if statusBarIcon == .hidden && showStatusBarTrackInfo == .never { statusBarIcon = .appIcon } - - self.sendTrackChangedNotification() + sendTrackChangedNotification() } .pickerStyle(.menu) .frame(width: 150) @@ -146,7 +104,7 @@ struct MenuBarSettingsView: View { HStack { Text("Song info details") - .foregroundStyle(self.showStatusBarTrackInfo == .never ? .tertiary : .primary) + .foregroundStyle(showStatusBarTrackInfo == .never ? .tertiary : .primary) Spacer() @@ -156,31 +114,31 @@ struct MenuBarSettingsView: View { } } .onChange(of: trackInfoDetails) { _ in - self.trackInfoDetailsAppStorage = trackInfoDetails - self.sendTrackChangedNotification() + sendTrackChangedNotification() } .pickerStyle(.menu) .frame(width: 150) - .disabled(self.showStatusBarTrackInfo == .never) + .disabled(showStatusBarTrackInfo == .never) } .padding(8) LuminareSliderPicker( "Song info width", Array(stride(from: 75, through: 300, by: 25)), - selection: $menuBarItemWidthAppStorage + selection: $menuBarItemWidth ) { value in LocalizedStringKey("\(value, specifier: "%.0f") pixels") } - .onChange(of: menuBarItemWidthAppStorage) { _ in - self.sendTrackChangedNotification() + .onChange(of: menuBarItemWidth) { _ in + sendTrackChangedNotification() NSHapticFeedbackManager.defaultPerformer.perform(NSHapticFeedbackManager.FeedbackPattern.levelChange, performanceTime: .now) } - .disabled(self.showStatusBarTrackInfo == .never) + .disabled(showStatusBarTrackInfo == .never) + .opacity(showStatusBarTrackInfo == .never ? 0.7 : 1) HStack { Text("Scrolling song info") - .foregroundStyle(self.showStatusBarTrackInfo == .never ? .tertiary : .primary) + .foregroundStyle(showStatusBarTrackInfo == .never ? .tertiary : .primary) Spacer() @@ -188,11 +146,10 @@ struct MenuBarSettingsView: View { Text("") } .onChange(of: scrollingTrackInfo) { _ in - self.scrollingTrackInfoAppStorage = scrollingTrackInfo - self.sendTrackChangedNotification() + sendTrackChangedNotification() } .toggleStyle(.switch) - .disabled(self.showStatusBarTrackInfo == .never) + .disabled(showStatusBarTrackInfo == .never) } .padding(8) } diff --git a/Tuneful/Views/Settings/NotchSettingsView.swift b/Tuneful/Views/Settings/NotchSettingsView.swift index 8b46c22..aa97b34 100644 --- a/Tuneful/Views/Settings/NotchSettingsView.swift +++ b/Tuneful/Views/Settings/NotchSettingsView.swift @@ -11,9 +11,8 @@ import Luminare import Defaults struct NotchSettingsView: View { - @AppStorage("showSongNotification") private var showSongNotification = true - @AppStorage("notificationDuration") private var notificationDuration = 2.0 - + @Default(.showSongNotification) var showSongNotification + @Default(.notificationDuration) var notificationDuration @Default(.notchEnabled) var notchEnabled var body: some View { diff --git a/Tuneful/Views/SettingsView.swift b/Tuneful/Views/SettingsView.swift index 8c22146..ae71314 100644 --- a/Tuneful/Views/SettingsView.swift +++ b/Tuneful/Views/SettingsView.swift @@ -59,15 +59,15 @@ enum SettingsCategory: String, Identifiable, CaseIterable { var title: String { switch self { - case .general: GeneralSettingsView().title - case .menuBar: MenuBarSettingsView().title + case .general: "General" + case .menuBar: "Menu bar" } } var iconName: String { switch self { - case .general: GeneralSettingsView().systemImage - case .menuBar: MenuBarSettingsView().systemImage + case .general: "gear" + case .menuBar: "gear" } } } diff --git a/Tuneful/Windows/MiniPlayerWindow.swift b/Tuneful/Windows/MiniPlayerWindow.swift index 8146da8..a5f321c 100644 --- a/Tuneful/Windows/MiniPlayerWindow.swift +++ b/Tuneful/Windows/MiniPlayerWindow.swift @@ -7,16 +7,11 @@ import SwiftUI import AppKit +import Defaults class MiniPlayerWindow: NSWindow { - @AppStorage("miniPlayerType") var miniPlayerType: MiniPlayerType = .minimal - @AppStorage("windowPosition") var savedPosition: String = "10,0" - init() { - let userDefaults = UserDefaults.standard - let position = NSPoint.fromString( - userDefaults.string(forKey: "windowPosition") ?? "10,10" - ) ?? NSPoint(x: 10, y: 10) + let position = NSPoint.fromString(Defaults[.windowPosition]) ?? NSPoint(x: 10, y: 10) super.init( contentRect: NSRect(x: position.x, y: position.y, width: 300, height: 145), @@ -49,10 +44,10 @@ class MiniPlayerWindow: NSWindow { let customizeMenu = NSMenu() customizeMenu .addItem(withTitle: "Full", action: #selector(setFullPlayer(_:)), keyEquivalent: "") - .state = self.miniPlayerType == .full ? .on : .off + .state = Defaults[.miniPlayerType] == .full ? .on : .off customizeMenu .addItem(withTitle: "Minimal", action: #selector(setAlbumArtPlayer(_:)), keyEquivalent: "") - .state = self.miniPlayerType == .minimal ? .on : .off + .state = Defaults[.miniPlayerType] == .minimal ? .on : .off customizeMenuItem.submenu = customizeMenu menu.addItem(customizeMenuItem) @@ -66,12 +61,12 @@ class MiniPlayerWindow: NSWindow { } @objc func setFullPlayer(_ sender: Any) { - miniPlayerType = .full + Defaults[.miniPlayerType] = .full NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) } @objc func setAlbumArtPlayer(_ sender: Any) { - miniPlayerType = .minimal + Defaults[.miniPlayerType] = .minimal NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) } @@ -85,7 +80,7 @@ class MiniPlayerWindow: NSWindow { @objc func windowDidMove(_ notification: Notification) { let position = self.frame.origin - savedPosition = "\(position.x),\(position.y)" + Defaults[.windowPosition] = "\(position.x),\(position.y)" } deinit { From f8df0f533f885fd6813d25e4139e9a8d50fdc35d Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sat, 7 Dec 2024 11:19:22 +0100 Subject: [PATCH 23/73] Notchless player enhanced --- Tuneful/DynamicNotchKit/NotchlessView.swift | 23 ++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/Tuneful/DynamicNotchKit/NotchlessView.swift b/Tuneful/DynamicNotchKit/NotchlessView.swift index a07e23b..840766c 100644 --- a/Tuneful/DynamicNotchKit/NotchlessView.swift +++ b/Tuneful/DynamicNotchKit/NotchlessView.swift @@ -17,9 +17,10 @@ struct NotchlessView: View where Content: View { Spacer() VStack(spacing: 0) { - Spacer(minLength: 20) - - NotchlessInfoView(playerManager: dynamicNotch.playerManager) + NotchlessInfoView( + playerManager: dynamicNotch.playerManager, + notchHeight: dynamicNotch.notchHeight + ) .safeAreaInset(edge: .top, spacing: 0) { Color.clear.frame(height: 10) } .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 10) } .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 13) } @@ -28,7 +29,10 @@ struct NotchlessView: View where Content: View { .fixedSize() if dynamicNotch.isMouseInside { - NotchlessPlayerView(playerManager: dynamicNotch.playerManager) + NotchlessPlayerView( + playerManager: dynamicNotch.playerManager, + notchHeight: dynamicNotch.notchHeight + ) } } .fixedSize() @@ -69,7 +73,7 @@ struct NotchlessView: View where Content: View { } } } - .offset(y: dynamicNotch.isVisible ? dynamicNotch.notchHeight - 50 : -windowHeight + 7) + .offset(y: dynamicNotch.isVisible ? 0 : -windowHeight + 10) .animation(dynamicNotch.animation, value: dynamicNotch.contentID) .opacity(dynamicNotch.isVisible ? 1 : 0.025) @@ -83,9 +87,11 @@ struct NotchlessView: View where Content: View { struct NotchlessInfoView: View { @ObservedObject private var playerManager: PlayerManager + private var notchHeight: Double - init(playerManager: PlayerManager) { + init(playerManager: PlayerManager, notchHeight: Double) { self.playerManager = playerManager + self.notchHeight = notchHeight } public var body: some View { @@ -113,9 +119,11 @@ struct NotchlessInfoView: View { struct NotchlessPlayerView: View { @ObservedObject private var playerManager: PlayerManager + private var notchHeight: Double - init(playerManager: PlayerManager) { + init(playerManager: PlayerManager, notchHeight: Double) { self.playerManager = playerManager + self.notchHeight = notchHeight } public var body: some View { @@ -123,6 +131,7 @@ struct NotchlessPlayerView: View { PlaybackButtonsView(playButtonSize: 20, spacing: 20) .environmentObject(playerManager) .padding(.bottom, 5) + PlaybackPositionView(sliderHeight: 6, inline: true) .environmentObject(playerManager) } From fd2ca83d2ba606b92d5d9aa7596503e5a78461e5 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 8 Dec 2024 10:55:59 +0100 Subject: [PATCH 24/73] Tint background type for popover and mini player --- Tuneful.xcodeproj/project.pbxproj | 7 ++++ Tuneful/Defaults/Defaults+Extensions.swift | 3 +- Tuneful/Models/BackgroundType.swift | 2 +- Tuneful/Views/BackgroundView.swift | 39 +++++++++++++++++++ .../MiniPlayer/CompactMiniPlayerView.swift | 11 ++---- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 10 ++--- .../Views/Popover/CompactPopoverView.swift | 14 ++----- Tuneful/Views/Popover/PopoverView.swift | 13 +------ .../Settings/AppearanceSettingsView.swift | 35 +++++++++++++++++ 9 files changed, 95 insertions(+), 39 deletions(-) create mode 100644 Tuneful/Views/BackgroundView.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 47a282e..6eeed51 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -48,6 +48,7 @@ FE5B56E62D037EEF0077527C /* Defaults in Frameworks */ = {isa = PBXBuildFile; productRef = FE5B56E52D037EEF0077527C /* Defaults */; }; FE5B56E82D037EEF0077527C /* DefaultsMacros in Frameworks */ = {isa = PBXBuildFile; productRef = FE5B56E72D037EEF0077527C /* DefaultsMacros */; }; FE5B56EC2D0386EC0077527C /* Defaults+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE5B56EA2D0386EC0077527C /* Defaults+Extensions.swift */; }; + FE5B56F22D059B4F0077527C /* BackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE5B56F12D059B350077527C /* BackgroundView.swift */; }; FE6BFCE72A72F37800D3321F /* Tuneful.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE6BFCE62A72F37800D3321F /* Tuneful.swift */; }; FE6BFCE92A72F37800D3321F /* MiniPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE6BFCE82A72F37800D3321F /* MiniPlayerView.swift */; }; FE6BFCEB2A72F37900D3321F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FE6BFCEA2A72F37900D3321F /* Assets.xcassets */; }; @@ -150,6 +151,7 @@ FE4C92162B61459F00FF79BE /* String+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extension.swift"; sourceTree = ""; }; FE5B3CA12AB0AC700038B6E4 /* PopoverView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverView.swift; sourceTree = ""; }; FE5B56EA2D0386EC0077527C /* Defaults+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Defaults+Extensions.swift"; sourceTree = ""; }; + FE5B56F12D059B350077527C /* BackgroundView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundView.swift; sourceTree = ""; }; FE6BFCE32A72F37800D3321F /* Tuneful.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Tuneful.app; sourceTree = BUILT_PRODUCTS_DIR; }; FE6BFCE62A72F37800D3321F /* Tuneful.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tuneful.swift; sourceTree = ""; }; FE6BFCE82A72F37800D3321F /* MiniPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerView.swift; sourceTree = ""; }; @@ -278,6 +280,7 @@ FE3189DB2A7B9D0B006B2D59 /* Views */ = { isa = PBXGroup; children = ( + FE5B56F12D059B350077527C /* BackgroundView.swift */, FE31AEDB2CFBCB71002818ED /* SettingsView.swift */, FE2554A12CA9CA93003DAB77 /* HoverButton.swift */, FE25549E2CA9C488003DAB77 /* MenuBar */, @@ -527,6 +530,7 @@ TargetAttributes = { FE6BFCE22A72F37800D3321F = { CreatedOnToolsVersion = 14.3.1; + LastSwiftMigration = 1610; }; }; }; @@ -627,6 +631,7 @@ FE2AEE2E2A8FBE3200E8D576 /* MiniPlayerWindow.swift in Sources */, FE4C92172B61459F00FF79BE /* String+Extension.swift in Sources */, FE6BFCE92A72F37800D3321F /* MiniPlayerView.swift in Sources */, + FE5B56F22D059B4F0077527C /* BackgroundView.swift in Sources */, FEFFE5492B488951000887B5 /* StatusBarItemManager.swift in Sources */, FE2AEE322A8FE08500E8D576 /* CustomSliderView.swift in Sources */, FE08CE132CFC74E200F047CB /* SettingsWindow.swift in Sources */, @@ -782,6 +787,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Tuneful/Tuneful.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; @@ -819,6 +825,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Tuneful/Tuneful.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; diff --git a/Tuneful/Defaults/Defaults+Extensions.swift b/Tuneful/Defaults/Defaults+Extensions.swift index 205a95f..34d668a 100644 --- a/Tuneful/Defaults/Defaults+Extensions.swift +++ b/Tuneful/Defaults/Defaults+Extensions.swift @@ -27,5 +27,6 @@ extension Defaults.Keys { static let windowPosition = Key("windowPosition", default: "10,10") static let showSongNotification = Key("showSongNotification", default: true) static let notificationDuration = Key("notificationDuration", default: 2) - static let popoverBackground = Key("popoverBackground", default: .semiTransparent) + static let popoverBackground = Key("popoverBackground", default: .glow) + static let miniPlayerBackground = Key("miniPlayerBackground", default: .transparent) } diff --git a/Tuneful/Models/BackgroundType.swift b/Tuneful/Models/BackgroundType.swift index adde064..5998cb4 100644 --- a/Tuneful/Models/BackgroundType.swift +++ b/Tuneful/Models/BackgroundType.swift @@ -9,7 +9,7 @@ import SwiftUI import Defaults enum BackgroundType: String, Equatable, CaseIterable, Defaults.Serializable { - case semiTransparent = "Semi-transparent" + case glow = "Tint" case transparent = "Transparent" case albumArt = "Album art" diff --git a/Tuneful/Views/BackgroundView.swift b/Tuneful/Views/BackgroundView.swift new file mode 100644 index 0000000..6b89607 --- /dev/null +++ b/Tuneful/Views/BackgroundView.swift @@ -0,0 +1,39 @@ +// +// BackgroundView.swift +// Tuneful +// +// Created by Martin Fekete on 08/12/2024. +// + +import SwiftUI +import Defaults + +struct BackgroundView: View { + @EnvironmentObject private var playerManager: PlayerManager + + var background: BackgroundType + var albumArtSize: CGFloat = 190 + var xOffset: CGFloat = 0 + var yOffset: CGFloat = 0 + + var body: some View { + switch background { + case .glow: + playerManager.track.albumArt + .resizable() + .frame(width: albumArtSize, height: albumArtSize) + .offset(x: xOffset, y: yOffset) + VisualEffectView(material: .popover, blendingMode: .withinWindow) + + VisualEffectView(material: .popover, blendingMode: .withinWindow) + .opacity(0.9) + case .albumArt: + playerManager.track.albumArt + .resizable() + VisualEffectView(material: .popover, blendingMode: .withinWindow) + case .transparent: + EmptyView() + } + + } +} diff --git a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift index b1d81ff..688f1f8 100644 --- a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift @@ -7,12 +7,12 @@ import SwiftUI import MediaPlayer +import Defaults struct CompactMiniPlayerView: View { - @EnvironmentObject var playerManager: PlayerManager -// @AppStorage("miniPlayerBackground") var miniPlayerBackground: BackgroundType = .transparent @State private var isShowingPlaybackControls = false + @Default(.miniPlayerBackground) private var miniPlayerBackground private var imageSize: CGFloat = 140.0 private var cornerRadius: CGFloat = 12.5 @@ -21,12 +21,7 @@ struct CompactMiniPlayerView: View { var body: some View { ZStack { -// if miniPlayerBackground == .albumArt && playerManager.isRunning { -// playerManager.track.albumArt -// .resizable() -// .scaledToFill() -// VisualEffectView(material: .popover, blendingMode: .withinWindow) -// } + BackgroundView(background: miniPlayerBackground) if !playerManager.isRunning || playerManager.track.isEmpty() { Text("Please open \(playerManager.name) to use Tuneful") diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 523b732..3f18ab2 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -7,23 +7,19 @@ import SwiftUI import MediaPlayer +import Defaults struct MiniPlayerView: View { -// @AppStorage("miniPlayerBackground") var miniPlayerBackground: BackgroundType = .transparent @EnvironmentObject var playerManager: PlayerManager @State private var isShowingPlaybackControls = false + @Default(.miniPlayerBackground) private var miniPlayerBackground private var imageSize: CGFloat = 140.0 var body: some View { ZStack { -// if miniPlayerBackground == .albumArt && playerManager.isRunning { -// playerManager.track.albumArt -// .resizable() -// .scaledToFill() -// VisualEffectView(material: .popover, blendingMode: .withinWindow) -// } + BackgroundView(background: miniPlayerBackground, xOffset: -80) if !playerManager.isRunning || playerManager.track.isEmpty() { Text("Please open \(playerManager.name) to use Tuneful") diff --git a/Tuneful/Views/Popover/CompactPopoverView.swift b/Tuneful/Views/Popover/CompactPopoverView.swift index 827776f..b562bae 100644 --- a/Tuneful/Views/Popover/CompactPopoverView.swift +++ b/Tuneful/Views/Popover/CompactPopoverView.swift @@ -6,24 +6,16 @@ // import SwiftUI +import Defaults struct CompactPopoverView: View { @EnvironmentObject var playerManager: PlayerManager -// @AppStorage("popoverBackground") var popoverBackground: BackgroundType = .transparent @State private var isShowingPlaybackControls = false + @Default(.popoverBackground) private var popoverBackground var body: some View { ZStack { -// if popoverBackground == .albumArt && playerManager.isRunning { - playerManager.track.albumArt - .resizable() - .frame(width: 190, height: 190) - .offset(y: -30) - VisualEffectView(material: .popover, blendingMode: .withinWindow) - - VisualEffectView(material: .popover, blendingMode: .withinWindow) - .opacity(0.7) -// } + BackgroundView(background: popoverBackground, yOffset: -30) if !playerManager.isRunning || playerManager.track.isEmpty() { Text("Please open \(playerManager.name) to use Tuneful") diff --git a/Tuneful/Views/Popover/PopoverView.swift b/Tuneful/Views/Popover/PopoverView.swift index de4df68..946e9c3 100644 --- a/Tuneful/Views/Popover/PopoverView.swift +++ b/Tuneful/Views/Popover/PopoverView.swift @@ -10,21 +10,12 @@ import Defaults struct PopoverView: View { @EnvironmentObject private var playerManager: PlayerManager - @Default(.popoverBackground) private var popoverBackground @State private var isShowingPlaybackControls = false + @Default(.popoverBackground) private var popoverBackground var body: some View { ZStack { -// if popoverBackground == .albumArt && playerManager.isRunning { - playerManager.track.albumArt - .resizable() - .frame(width: 190, height: 190) - .offset(y: -80) - VisualEffectView(material: .popover, blendingMode: .withinWindow) - - VisualEffectView(material: .popover, blendingMode: .withinWindow) - .opacity(0.7) -// } + BackgroundView(background: popoverBackground, yOffset: -80) if !playerManager.musicApp.isRunning() || playerManager.track.isEmpty() { Text("Please open \(playerManager.name) to use Tuneful") diff --git a/Tuneful/Views/Settings/AppearanceSettingsView.swift b/Tuneful/Views/Settings/AppearanceSettingsView.swift index 8dd2286..39db755 100644 --- a/Tuneful/Views/Settings/AppearanceSettingsView.swift +++ b/Tuneful/Views/Settings/AppearanceSettingsView.swift @@ -13,9 +13,12 @@ import Defaults struct AppearanceSettingsView: View { @Default(.popoverIsEnabled) private var popoverIsEnabled @Default(.popoverType) private var popoverType + @Default(.popoverBackground) private var popoverBackground + @Default(.showPlayerWindow) private var showPlayerWindow @Default(.miniPlayerWindowOnTop) private var miniPlayerWindowOnTop @Default(.miniPlayerType) private var miniPlayerType + @Default(.miniPlayerBackground) private var miniPlayerBackground var body: some View { Settings.Container(contentWidth: 400) { @@ -45,6 +48,22 @@ struct AppearanceSettingsView: View { .disabled(!popoverIsEnabled) } .padding(8) + + HStack { + Text("Background") + .foregroundStyle(popoverIsEnabled ? .primary : .tertiary) + + Spacer() + + Picker("", selection: $popoverBackground) { + ForEach(BackgroundType.allCases, id: \.self) { value in + Text(value.localizedName).tag(value) + } + } + .frame(width: 150) + .disabled(!popoverIsEnabled) + } + .padding(8) } .padding(.bottom, 10) @@ -84,6 +103,22 @@ struct AppearanceSettingsView: View { .disabled(!showPlayerWindow) } .padding(8) + + HStack { + Text("Background") + .foregroundStyle(showPlayerWindow ? .primary : .tertiary) + + Spacer() + + Picker("", selection: $miniPlayerBackground) { + ForEach(BackgroundType.allCases, id: \.self) { value in + Text(value.localizedName).tag(value) + } + } + .frame(width: 150) + .disabled(!showPlayerWindow) + } + .padding(8) } } } From ee0caf8529bf1030b890bff88920aab8c572e8f3 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 8 Dec 2024 11:06:00 +0100 Subject: [PATCH 25/73] Cleanup, release notes --- Tuneful/Defaults/Defaults+Extensions.swift | 27 ++++++++++++------- Tuneful/Managers/PlayerManager.swift | 2 +- .../Settings/AppearanceSettingsView.swift | 6 ++--- appcast.xml | 14 ---------- release_notes.md | 4 ++- 5 files changed, 24 insertions(+), 29 deletions(-) delete mode 100644 appcast.xml diff --git a/Tuneful/Defaults/Defaults+Extensions.swift b/Tuneful/Defaults/Defaults+Extensions.swift index 34d668a..b0966d8 100644 --- a/Tuneful/Defaults/Defaults+Extensions.swift +++ b/Tuneful/Defaults/Defaults+Extensions.swift @@ -8,15 +8,11 @@ import Defaults extension Defaults.Keys { - static let notchEnabled = Key("notchEnabled", default: true) - static let showPlayerWindow = Key("showPlayerWindow", default: true) + // General static let viewedOnboarding = Key("viewedOnboarding", default: false) - static let popoverIsEnabled = Key("popoverIsEnabled", default: true) - static let miniPlayerWindowOnTop = Key("miniPlayerWindowOnTop", default: true) - static let hideMenuBarItemWhenNotPlaying = Key("hideMenuBarItemWhenNotPlaying", default: false) static let connectedApp = Key("connectedApp", default: .appleMusic) - static let popoverType = Key("popoverType", default: .full) - static let miniPlayerType = Key("miniPlayerType", default: .minimal) + + // Menu bar static let menuBarItemWidth = Key("menuBarItemWidth", default: 150) static let statusBarIcon = Key("statusBarIcon", default: .albumArt) static let trackInfoDetails = Key("trackInfoDetails", default: .artistAndSong) @@ -24,9 +20,22 @@ extension Defaults.Keys { static let showMenuBarPlaybackControls = Key("showMenuBarPlaybackControls", default: false) static let scrollingTrackInfo = Key("scrollingTrackInfo", default: false) static let showEqWhenPlayingMusic = Key("showEqWhenPlayingMusic", default: true) - static let windowPosition = Key("windowPosition", default: "10,10") + static let hideMenuBarItemWhenNotPlaying = Key("hideMenuBarItemWhenNotPlaying", default: false) + + // Notch + static let notchEnabled = Key("notchEnabled", default: true) static let showSongNotification = Key("showSongNotification", default: true) static let notificationDuration = Key("notificationDuration", default: 2) - static let popoverBackground = Key("popoverBackground", default: .glow) + + // Mini player + static let showPlayerWindow = Key("showPlayerWindow", default: true) + static let miniPlayerType = Key("miniPlayerType", default: .minimal) + static let miniPlayerWindowOnTop = Key("miniPlayerWindowOnTop", default: true) static let miniPlayerBackground = Key("miniPlayerBackground", default: .transparent) + static let windowPosition = Key("windowPosition", default: "10,10") + + // Popover + static let popoverIsEnabled = Key("popoverIsEnabled", default: true) + static let popoverType = Key("popoverType", default: .full) + static let popoverBackground = Key("popoverBackground", default: .glow) } diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index 6068e6b..715685a 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -53,7 +53,7 @@ public class PlayerManager: ObservableObject { @Published var repeatContextEnabled = false // Playback time - static let noPlaybackPositionPlaceholder = "- : -" + static let noPlaybackPositionPlaceholder = "--:--" var formattedDuration = PlayerManager.noPlaybackPositionPlaceholder var formattedPlaybackPosition = PlayerManager.noPlaybackPositionPlaceholder diff --git a/Tuneful/Views/Settings/AppearanceSettingsView.swift b/Tuneful/Views/Settings/AppearanceSettingsView.swift index 39db755..ad77153 100644 --- a/Tuneful/Views/Settings/AppearanceSettingsView.swift +++ b/Tuneful/Views/Settings/AppearanceSettingsView.swift @@ -40,8 +40,7 @@ struct AppearanceSettingsView: View { Text(value.localizedName).tag(value) } } - .pickerStyle(.segmented) - .frame(width: 200) + .frame(width: 150) .onChange(of: popoverType) { _ in NSApplication.shared.sendAction(#selector(AppDelegate.setupPopover), to: nil, from: nil) } @@ -95,8 +94,7 @@ struct AppearanceSettingsView: View { Text(value.localizedName).tag(value) } } - .pickerStyle(.segmented) - .frame(width: 200) + .frame(width: 150) .onChange(of: miniPlayerType) { _ in NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) } diff --git a/appcast.xml b/appcast.xml deleted file mode 100644 index f9ca2b6..0000000 --- a/appcast.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - Tuneful - - 0.9.0 - Fri, 17 Nov 2023 11:53:45 +0100 - 0.9.0 - 0.9.0 - 13.3 - - - - \ No newline at end of file diff --git a/release_notes.md b/release_notes.md index eea4430..b3dd513 100644 --- a/release_notes.md +++ b/release_notes.md @@ -2,8 +2,10 @@ - New notch integration now allows you to control the music from notch. For non-notch Macs, this is available on hovering over new song notification - New music slider which now looks and feels native +- New popover and mini player background type +- New UI animations so the app feels more fluid +- Enhanced onboarding - Refactored the logic that fetches song information which makes the app feel snappier -- Added more animations to the UI so the app feels more fluid - Fixed the bug when Spotify was opened in the background even if killed by the user - Fixed the bug when mini player floating preference was ignored on app restart - Fixed the bug when Tuneful wasn't fetching Apple Music song favorite info correctly when changing songs From d890a602faa74e00ef0cb4a3a6aacc6c12ca7d4d Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 8 Dec 2024 12:17:46 +0100 Subject: [PATCH 26/73] Minor settings update --- .../SpotifyIcon.imageset/Contents.json | 6 +++--- .../SpotifyIcon.imageset/SpotifyIcon 1.png | Bin 80086 -> 0 bytes .../SpotifyIcon.imageset/SpotifyIcon 2.png | Bin 80086 -> 0 bytes .../SpotifyIcon.imageset/SpotifyIcon.png | Bin 80086 -> 0 bytes .../SpotifyIcon.imageset/spotify-128 1.png | Bin 0 -> 10956 bytes .../SpotifyIcon.imageset/spotify-128 2.png | Bin 0 -> 10956 bytes .../SpotifyIcon.imageset/spotify-128.png | Bin 0 -> 10956 bytes .../Settings/AppearanceSettingsView.swift | 20 ++++++++++++------ 8 files changed, 17 insertions(+), 9 deletions(-) delete mode 100644 Tuneful/Assets.xcassets/SpotifyIcon.imageset/SpotifyIcon 1.png delete mode 100644 Tuneful/Assets.xcassets/SpotifyIcon.imageset/SpotifyIcon 2.png delete mode 100644 Tuneful/Assets.xcassets/SpotifyIcon.imageset/SpotifyIcon.png create mode 100644 Tuneful/Assets.xcassets/SpotifyIcon.imageset/spotify-128 1.png create mode 100644 Tuneful/Assets.xcassets/SpotifyIcon.imageset/spotify-128 2.png create mode 100644 Tuneful/Assets.xcassets/SpotifyIcon.imageset/spotify-128.png diff --git a/Tuneful/Assets.xcassets/SpotifyIcon.imageset/Contents.json b/Tuneful/Assets.xcassets/SpotifyIcon.imageset/Contents.json index 290ff4d..2bd3f0f 100644 --- a/Tuneful/Assets.xcassets/SpotifyIcon.imageset/Contents.json +++ b/Tuneful/Assets.xcassets/SpotifyIcon.imageset/Contents.json @@ -1,17 +1,17 @@ { "images" : [ { - "filename" : "SpotifyIcon.png", + "filename" : "spotify-128.png", "idiom" : "universal", "scale" : "1x" }, { - "filename" : "SpotifyIcon 1.png", + "filename" : "spotify-128 1.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "SpotifyIcon 2.png", + "filename" : "spotify-128 2.png", "idiom" : "universal", "scale" : "3x" } diff --git a/Tuneful/Assets.xcassets/SpotifyIcon.imageset/SpotifyIcon 1.png b/Tuneful/Assets.xcassets/SpotifyIcon.imageset/SpotifyIcon 1.png deleted file mode 100644 index 3f7625ef20365e37087c643d24a4b6d99b161bf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80086 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%0D@E3>d)2e+(YqfP}OJ@en8pBh_I} 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%0D@E3>d)2e+(YqfP}OJ@en8pBh_I} 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%0D@E3>d)2e+(YqfP}OJ@en8pBh_I} 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 Date: Sun, 8 Dec 2024 13:47:25 +0100 Subject: [PATCH 27/73] Minor fixes --- Tuneful/Tuneful.swift | 22 +++---------------- Tuneful/Views/OnboardingView.swift | 4 ++-- .../Views/Settings/AboutSettingsView.swift | 6 ++--- Tuneful/Windows/MiniPlayerWindow.swift | 2 +- 4 files changed, 9 insertions(+), 25 deletions(-) diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 6ac40a5..287bb03 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -118,9 +118,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { func applicationDidFinishLaunching(_ notification: Notification) { NSApp.setActivationPolicy(.accessory) -// if let bundleID = Bundle.main.bundleIdentifier { -// UserDefaults.standard.removePersistentDomain(forName: bundleID) -// } + if let bundleID = Bundle.main.bundleIdentifier { + UserDefaults.standard.removePersistentDomain(forName: bundleID) + } self.settingsWindow.isReleasedWhenClosed = false self.playerManager = PlayerManager() @@ -478,22 +478,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { ).show() } - @objc func openMiniPlayerAppearanceSettings(_ sender: AnyObject) { - SettingsWindowController( - panes: [ - GeneralSettingsViewController(), - AppearanceSettingsViewController(), - MenuBarSettingsViewController(), - NotchSettingsViewController(), - KeyboardShortcutsSettingsViewController(), - AboutSettingsViewController() - ], - style: .toolbarItems, - animated: true, - hidesToolbarForSingleItem: true - ).show(pane: .appearance) - } - // MARK: Setup public func showOnboarding() { diff --git a/Tuneful/Views/OnboardingView.swift b/Tuneful/Views/OnboardingView.swift index 761fd96..8bad31a 100644 --- a/Tuneful/Views/OnboardingView.swift +++ b/Tuneful/Views/OnboardingView.swift @@ -31,7 +31,7 @@ struct OnboardingView: View { .frame(width: 50, height: 50) if step == .onAppPicker { - Text("Preferred Music App") + Text("Preferred music app") .font(.largeTitle) .fontWeight(.semibold) } else if step == .onDetails { @@ -39,7 +39,7 @@ struct OnboardingView: View { .font(.largeTitle) .fontWeight(.semibold) } else if step == .allDone { - Text("All Done!") + Text("All done!") .font(.largeTitle) .fontWeight(.semibold) } else { diff --git a/Tuneful/Views/Settings/AboutSettingsView.swift b/Tuneful/Views/Settings/AboutSettingsView.swift index 158658f..e28eb2b 100644 --- a/Tuneful/Views/Settings/AboutSettingsView.swift +++ b/Tuneful/Views/Settings/AboutSettingsView.swift @@ -43,11 +43,11 @@ struct AboutSettingsView: View { .frame(maxWidth: .infinity, alignment: .center) HStack { - Link("♡ Support", destination: URL(string: "https://ko-fi.com/martinfekete")!) + Link("❤️ Support", destination: URL(string: "https://ko-fi.com/martinfekete")!) .buttonStyle(LuminareCompactButtonStyle()) - Link("GitHub", destination: URL(string: "https://github.com/martinfekete10/Tuneful")!) + Link("🧑‍💻 GitHub", destination: URL(string: "https://github.com/martinfekete10/Tuneful")!) .buttonStyle(LuminareCompactButtonStyle()) - Link("Website", destination: URL(string: "https://martinfekete.com/Tuneful")!) + Link("🌐 Website", destination: URL(string: "https://martinfekete.com/Tuneful")!) .buttonStyle(LuminareCompactButtonStyle()) } } diff --git a/Tuneful/Windows/MiniPlayerWindow.swift b/Tuneful/Windows/MiniPlayerWindow.swift index a5f321c..1efe6a5 100644 --- a/Tuneful/Windows/MiniPlayerWindow.swift +++ b/Tuneful/Windows/MiniPlayerWindow.swift @@ -75,7 +75,7 @@ class MiniPlayerWindow: NSWindow { } @objc func settings(_ sender: Any?) { - NSApplication.shared.sendAction(#selector(AppDelegate.openMiniPlayerAppearanceSettings), to: nil, from: nil) + NSApplication.shared.sendAction(#selector(AppDelegate.openSettings), to: nil, from: nil) } @objc func windowDidMove(_ notification: Notification) { From 9f21f5b906e1ae57524241475835d3a4ea1a2e01 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Mon, 9 Dec 2024 18:01:29 +0100 Subject: [PATCH 28/73] Improved tint background --- Tuneful/Tuneful.swift | 6 +++--- Tuneful/Views/BackgroundView.swift | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 287bb03..2820efc 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -118,9 +118,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { func applicationDidFinishLaunching(_ notification: Notification) { NSApp.setActivationPolicy(.accessory) - if let bundleID = Bundle.main.bundleIdentifier { - UserDefaults.standard.removePersistentDomain(forName: bundleID) - } +// if let bundleID = Bundle.main.bundleIdentifier { +// UserDefaults.standard.removePersistentDomain(forName: bundleID) +// } self.settingsWindow.isReleasedWhenClosed = false self.playerManager = PlayerManager() diff --git a/Tuneful/Views/BackgroundView.swift b/Tuneful/Views/BackgroundView.swift index 6b89607..14e8bda 100644 --- a/Tuneful/Views/BackgroundView.swift +++ b/Tuneful/Views/BackgroundView.swift @@ -23,10 +23,14 @@ struct BackgroundView: View { .resizable() .frame(width: albumArtSize, height: albumArtSize) .offset(x: xOffset, y: yOffset) - VisualEffectView(material: .popover, blendingMode: .withinWindow) + + playerManager.track.albumArt + .resizable() + .frame(width: albumArtSize, height: albumArtSize) + .offset(x: xOffset != 0 ? xOffset + 10 : xOffset, y: yOffset != 0 ? yOffset + 20 : yOffset) + .opacity(0.5) VisualEffectView(material: .popover, blendingMode: .withinWindow) - .opacity(0.9) case .albumArt: playerManager.track.albumArt .resizable() From e580b40a8a45e38a40f45b822fa5a9128b6ff0aa Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sat, 14 Dec 2024 14:19:02 +0100 Subject: [PATCH 29/73] Fixed notch window showing on Mission Control, fixed command+comma shortcut opening blank window --- Tuneful/DynamicNotchKit/DynamicNotch.swift | 18 ++++++++++++++---- .../KeyboardShortcuts+Extension.swift | 1 + Tuneful/Tuneful.swift | 4 +++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/Tuneful/DynamicNotchKit/DynamicNotch.swift b/Tuneful/DynamicNotchKit/DynamicNotch.swift index 43f04ed..95a5077 100644 --- a/Tuneful/DynamicNotchKit/DynamicNotch.swift +++ b/Tuneful/DynamicNotchKit/DynamicNotch.swift @@ -214,17 +214,27 @@ extension DynamicNotch { let panel = NSPanel( contentRect: .zero, - styleMask: [.borderless, .nonactivatingPanel], + styleMask: [.fullSizeContentView, .borderless, .utilityWindow, .nonactivatingPanel], backing: .buffered, defer: true ) - panel.hasShadow = false + panel.isMovable = false + panel.isOpaque = false + panel.titleVisibility = .hidden + panel.titlebarAppearsTransparent = true panel.backgroundColor = .clear - panel.level = .screenSaver - panel.collectionBehavior = .canJoinAllSpaces panel.contentView = view panel.orderFrontRegardless() panel.setFrame(screen.frame, display: false) + panel.hasShadow = false + panel.isReleasedWhenClosed = false + panel.level = .mainMenu + 3 + panel.collectionBehavior = [ + .fullScreenAuxiliary, + .stationary, + .canJoinAllSpaces, + .ignoresCycle, + ] windowController = .init(window: panel) } diff --git a/Tuneful/Extensions/KeyboardShortcuts+Extension.swift b/Tuneful/Extensions/KeyboardShortcuts+Extension.swift index 87a31de..357482e 100644 --- a/Tuneful/Extensions/KeyboardShortcuts+Extension.swift +++ b/Tuneful/Extensions/KeyboardShortcuts+Extension.swift @@ -15,4 +15,5 @@ extension KeyboardShortcuts.Name { static let changeMusicPlayer = Self("changeMusicPlayer") static let toggleMenuBarItemVisibility = Self("toggleMenuBarItemVisibility") static let togglePopover = Self("togglePopover") + static let openSettings = Self("openSettings", default: .init(.comma, modifiers: [.command])) } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 2820efc..8b91461 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -200,6 +200,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { KeyboardShortcuts.onKeyUp(for: .togglePopover) { self.handlePopover(self.statusBarItem.button) } + KeyboardShortcuts.onKeyUp(for: .openSettings) { + self.openSettings(self) + } } // MARK: Menu bar @@ -522,7 +525,6 @@ struct Tuneful: App { var body: some Scene { Settings { - EmptyView() } } } From c7d421d0e74cd0b6ad777dc2755498395f65f6bf Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 15 Dec 2024 14:21:13 +0100 Subject: [PATCH 30/73] Mini player window refactor --- .gitignore | 4 +++ Tuneful.xcodeproj/project.pbxproj | 16 +++++++++++ Tuneful/Mocks/MusicAppMock.swift | 18 ++++++++++++ Tuneful/Mocks/PlayerManagerMock.swift | 22 +++++++++++++++ Tuneful/Models/MiniPlayerType.swift | 16 ++++++++++- Tuneful/Tuneful.swift | 27 ++++++------------ Tuneful/Views/Popover/PopoverView.swift | 3 +- .../Settings/AppearanceSettingsView.swift | 28 +++++++++++++++++++ 8 files changed, 114 insertions(+), 20 deletions(-) create mode 100644 Tuneful/Mocks/MusicAppMock.swift create mode 100644 Tuneful/Mocks/PlayerManagerMock.swift diff --git a/.gitignore b/.gitignore index 83088b8..7b0d871 100644 --- a/.gitignore +++ b/.gitignore @@ -90,3 +90,7 @@ fastlane/test_output # https://github.com/johnno1962/injectionforxcode iOSInjectionProject/ + +# Build script +*build.sh +*Release/* diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 6eeed51..d3fce66 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -68,6 +68,8 @@ FE7C5BDA2AC050E000D1C253 /* AlbumArtView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE7C5BD92AC050E000D1C253 /* AlbumArtView.swift */; }; FE8CE1542C1E03F30053FDEA /* CompactPopoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8CE1532C1E03F30053FDEA /* CompactPopoverView.swift */; }; FE8CE1582C1E0B140053FDEA /* PopoverType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8CE1572C1E0B140053FDEA /* PopoverType.swift */; }; + FE8F0DA12D0DE1BE005C7722 /* PlayerManagerMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8F0DA02D0DE1BA005C7722 /* PlayerManagerMock.swift */; }; + FE8F0DA32D0DE476005C7722 /* MusicAppMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8F0DA22D0DE471005C7722 /* MusicAppMock.swift */; }; FE9FCF212CAEC0290015DF4D /* PlayerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF202CAEC0260015DF4D /* PlayerProtocol.swift */; }; FE9FCF232CAEC0C90015DF4D /* SpotifyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF222CAEC0C50015DF4D /* SpotifyManager.swift */; }; FE9FCF252CAEC2780015DF4D /* AppleMusicManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */; }; @@ -173,6 +175,8 @@ FE7C5BD92AC050E000D1C253 /* AlbumArtView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlbumArtView.swift; sourceTree = ""; }; FE8CE1532C1E03F30053FDEA /* CompactPopoverView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactPopoverView.swift; sourceTree = ""; }; FE8CE1572C1E0B140053FDEA /* PopoverType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverType.swift; sourceTree = ""; }; + FE8F0DA02D0DE1BA005C7722 /* PlayerManagerMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerManagerMock.swift; sourceTree = ""; }; + FE8F0DA22D0DE471005C7722 /* MusicAppMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicAppMock.swift; sourceTree = ""; }; FE9781822C0CC1A0007217A1 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; FE9781842C0CC1A0007217A1 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; FE9FCF202CAEC0260015DF4D /* PlayerProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerProtocol.swift; sourceTree = ""; }; @@ -342,6 +346,7 @@ FE6BFCE52A72F37800D3321F /* Tuneful */ = { isa = PBXGroup; children = ( + FE8F0D9F2D0DE1B5005C7722 /* Mocks */, FE5B56EB2D0386EC0077527C /* Defaults */, FEFFE5532B4FDDEA000887B5 /* Extensions */, FEA6FB212B04168000DACC43 /* AudioDevices */, @@ -436,6 +441,15 @@ path = Popover; sourceTree = ""; }; + FE8F0D9F2D0DE1B5005C7722 /* Mocks */ = { + isa = PBXGroup; + children = ( + FE8F0DA22D0DE471005C7722 /* MusicAppMock.swift */, + FE8F0DA02D0DE1BA005C7722 /* PlayerManagerMock.swift */, + ); + path = Mocks; + sourceTree = ""; + }; FEA6FB212B04168000DACC43 /* AudioDevices */ = { isa = PBXGroup; children = ( @@ -594,6 +608,7 @@ FEE486E52B5D174F00AB712F /* CompactMiniPlayerView.swift in Sources */, FE7955472CA2C7A3002026AA /* AudioSpectrumView.swift in Sources */, FEFFE54D2B49EF97000887B5 /* MenuBarSettingsView.swift in Sources */, + FE8F0DA32D0DE476005C7722 /* MusicAppMock.swift in Sources */, FEF066112B51914900A514F2 /* KeyboardShortcuts+Extension.swift in Sources */, FE1A62F02CBBE3F4001C13CE /* FetchedAlbumArt.swift in Sources */, FE445FE42A977D0E001CA55A /* Double+Extension.swift in Sources */, @@ -646,6 +661,7 @@ FEFFE55B2B4FE028000887B5 /* DateComponentsFormatter+Extension.swift in Sources */, FEF53A642AEEA43600CE4981 /* VolumeControlView.swift in Sources */, FE9FCF232CAEC0C90015DF4D /* SpotifyManager.swift in Sources */, + FE8F0DA12D0DE1BE005C7722 /* PlayerManagerMock.swift in Sources */, FE31AED02CF50708002818ED /* PlaybackPositionView.swift in Sources */, FE25549B2CA95F87003DAB77 /* AddToFavoritesView.swift in Sources */, FE3189FA2A7C3B8C006B2D59 /* OnboardingView.swift in Sources */, diff --git a/Tuneful/Mocks/MusicAppMock.swift b/Tuneful/Mocks/MusicAppMock.swift new file mode 100644 index 0000000..621fc5e --- /dev/null +++ b/Tuneful/Mocks/MusicAppMock.swift @@ -0,0 +1,18 @@ +// +// MusicAppMock.swift +// Tuneful +// +// Created by Martin Fekete on 14/12/2024. +// + +import Combine + +class MusicAppMock: AppleMusicManager { + override var isPlaying: Bool { + get { return true } + } + + override func isRunning() -> Bool { + return true + } +} diff --git a/Tuneful/Mocks/PlayerManagerMock.swift b/Tuneful/Mocks/PlayerManagerMock.swift new file mode 100644 index 0000000..7aa561f --- /dev/null +++ b/Tuneful/Mocks/PlayerManagerMock.swift @@ -0,0 +1,22 @@ +// +// PlayerManagerMock.swift +// Tuneful +// +// Created by Martin Fekete on 14/12/2024. +// + +import Combine +import Foundation + +@MainActor +class PlayerManagerMock: PlayerManager { + override var track: Track { + get { return Track(artist: "Test", album: "Test") } + set { } + } + + override var musicApp: (any PlayerProtocol)? { + get { return MusicAppMock(notificationSubject: PassthroughSubject()) } + set { } + } +} diff --git a/Tuneful/Models/MiniPlayerType.swift b/Tuneful/Models/MiniPlayerType.swift index e812f22..3889f8a 100644 --- a/Tuneful/Models/MiniPlayerType.swift +++ b/Tuneful/Models/MiniPlayerType.swift @@ -9,10 +9,24 @@ import SwiftUI import Defaults enum MiniPlayerType: String, Equatable, CaseIterable, Defaults.Serializable { - case full = "Full" case minimal = "Minimal" var localizedName: LocalizedStringKey { LocalizedStringKey(rawValue) } + + @ViewBuilder + var view: some View { + switch self { + case .full: MiniPlayerView() + case .minimal: CompactMiniPlayerView() + } + } + + func getWindowSize() -> NSSize { + switch self { + case .full: return NSSize(width: 300, height: 145) + case .minimal: return NSSize(width: 145, height: 145) + } + } } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 8b91461..f73c88d 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -38,10 +38,10 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { userDriverDelegate: nil ) - private var settingsWindow = LuminareTrafficLightedWindow(view: { SettingsView() }) - // MARK: Settings + private var settingsWindow = LuminareTrafficLightedWindow(view: { SettingsView() }) + let GeneralSettingsViewController: () -> SettingsPane = { let paneView = Settings.Pane( identifier: .general, @@ -49,7 +49,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { toolbarIcon: NSImage(systemSymbolName: "switch.2", accessibilityDescription: "General settings")! ) { GeneralSettingsView() - .accentColor(.accentColor) } return Settings.PaneHostingController(pane: paneView) @@ -74,6 +73,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { toolbarIcon: NSImage(systemSymbolName: "paintbrush", accessibilityDescription: "Appearance settings")! ) { AppearanceSettingsView() + .environmentObject(PlayerManagerMock()) } return Settings.PaneHostingController(pane: paneView) @@ -398,21 +398,12 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { @objc func setupMiniPlayer() { let windowPosition = miniPlayerWindow.frame.origin - - switch Defaults[.miniPlayerType] { - case .full: - setupMiniPlayerWindow( - size: NSSize(width: 300, height: 145), - position: windowPosition, - view: MiniPlayerView() - ) - case .minimal: - setupMiniPlayerWindow( - size: NSSize(width: 145, height: 145), - position: windowPosition, - view: CompactMiniPlayerView() - ) - } + + setupMiniPlayerWindow( + size: Defaults[.miniPlayerType].getWindowSize(), + position: windowPosition, + view: Defaults[.miniPlayerType].view + ) miniPlayerWindow.makeKeyAndOrderFront(nil) NSApplication.shared.activate(ignoringOtherApps: true) diff --git a/Tuneful/Views/Popover/PopoverView.swift b/Tuneful/Views/Popover/PopoverView.swift index 946e9c3..1070c60 100644 --- a/Tuneful/Views/Popover/PopoverView.swift +++ b/Tuneful/Views/Popover/PopoverView.swift @@ -12,13 +12,14 @@ struct PopoverView: View { @EnvironmentObject private var playerManager: PlayerManager @State private var isShowingPlaybackControls = false @Default(.popoverBackground) private var popoverBackground + @Default(.connectedApp) private var connectedApp var body: some View { ZStack { BackgroundView(background: popoverBackground, yOffset: -80) if !playerManager.musicApp.isRunning() || playerManager.track.isEmpty() { - Text("Please open \(playerManager.name) to use Tuneful") + Text("Please open \(connectedApp) to use Tuneful") .foregroundColor(.primary.opacity(Constants.Opacity.secondaryOpacity)) .font(.system(size: 14, weight: .regular)) .frame(maxWidth: .infinity, maxHeight: .infinity) diff --git a/Tuneful/Views/Settings/AppearanceSettingsView.swift b/Tuneful/Views/Settings/AppearanceSettingsView.swift index b78b57e..1382610 100644 --- a/Tuneful/Views/Settings/AppearanceSettingsView.swift +++ b/Tuneful/Views/Settings/AppearanceSettingsView.swift @@ -20,6 +20,8 @@ struct AppearanceSettingsView: View { @Default(.miniPlayerType) private var miniPlayerType @Default(.miniPlayerBackground) private var miniPlayerBackground + private var playerManagerMock = PlayerManagerMock() as PlayerManager + var body: some View { Settings.Container(contentWidth: 400) { Settings.Section(title: "") { @@ -48,6 +50,32 @@ struct AppearanceSettingsView: View { } .padding(8) + HStack { + Text("Test") + .foregroundStyle(popoverIsEnabled ? .primary : .tertiary) + + Spacer() + + ScrollView { + VStack { + PopoverView() + .scaledToFit() + .frame(width: 250) + .environmentObject(playerManagerMock) + .allowsHitTesting(false) + + CompactPopoverView() + .scaledToFit() + .frame(width: 250) + .environmentObject(playerManagerMock) + .allowsHitTesting(false) + + } + } + .frame(height: 200) + } + .padding(8) + HStack { Text("Background") .foregroundStyle(popoverIsEnabled ? .primary : .tertiary) From e4311ded487abab7f95e76b25c1e4e86d4aaae2c Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 17 Dec 2024 21:21:21 +0100 Subject: [PATCH 31/73] Added sandboxing, notchless player updated, podcast detection above 15 mins instead of 10 --- Tuneful/DynamicNotchKit/NotchlessView.swift | 4 +++- Tuneful/Tuneful.entitlements | 11 +++++++++++ Tuneful/Utilities/Constants.swift | 2 +- Tuneful/Views/OnboardingView.swift | 12 ++++++------ Tuneful/Views/Popover/PopoverView.swift | 2 +- 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/Tuneful/DynamicNotchKit/NotchlessView.swift b/Tuneful/DynamicNotchKit/NotchlessView.swift index 840766c..2565f96 100644 --- a/Tuneful/DynamicNotchKit/NotchlessView.swift +++ b/Tuneful/DynamicNotchKit/NotchlessView.swift @@ -17,6 +17,8 @@ struct NotchlessView: View where Content: View { Spacer() VStack(spacing: 0) { + Spacer(minLength: 20) + NotchlessInfoView( playerManager: dynamicNotch.playerManager, notchHeight: dynamicNotch.notchHeight @@ -73,7 +75,7 @@ struct NotchlessView: View where Content: View { } } } - .offset(y: dynamicNotch.isVisible ? 0 : -windowHeight + 10) + .offset(y: dynamicNotch.isVisible ? -25 : -windowHeight + 10) .animation(dynamicNotch.animation, value: dynamicNotch.contentID) .opacity(dynamicNotch.isVisible ? 1 : 0.025) diff --git a/Tuneful/Tuneful.entitlements b/Tuneful/Tuneful.entitlements index d8a2fd6..b333a29 100644 --- a/Tuneful/Tuneful.entitlements +++ b/Tuneful/Tuneful.entitlements @@ -2,8 +2,19 @@ + com.apple.security.app-sandbox + com.apple.security.automation.apple-events + com.apple.security.network.client + + com.apple.security.network.server + + com.apple.security.temporary-exception.apple-events + + com.apple.Music + com.spotify.client + com.apple.security.temporary-exception.mach-lookup.global-name $(PRODUCT_BUNDLE_IDENTIFIER)-spks diff --git a/Tuneful/Utilities/Constants.swift b/Tuneful/Utilities/Constants.swift index c2ef3ea..e3d446c 100644 --- a/Tuneful/Utilities/Constants.swift +++ b/Tuneful/Utilities/Constants.swift @@ -9,7 +9,7 @@ import AppKit import SwiftUI enum Constants { - static let podcastThresholdDurationSec = 600.0 + static let podcastThresholdDurationSec = 900.0 static let podcastRewindDurationSec = 15.0 static let playerAppChangedMessage = "Player app changed" diff --git a/Tuneful/Views/OnboardingView.swift b/Tuneful/Views/OnboardingView.swift index 8bad31a..8c10a5c 100644 --- a/Tuneful/Views/OnboardingView.swift +++ b/Tuneful/Views/OnboardingView.swift @@ -164,16 +164,16 @@ struct Details: View { @State private var showAlert = false @State private var success = false - private var name: Text { + private var appName: Text { Text(connectedApp.localizedName) } var body: some View { VStack(spacing: 20) { Text(""" - Tuneful requires permission to control \(name) and display music data. + Tuneful requires permission to control \(appName) and display music data. - Open \(name) and click 'Enable permissions' below and select OK in the alert that is presented. + Open \(appName) and click 'Enable permissions' below and select OK in the alert that is presented. """) .multilineTextAlignment(.center) @@ -187,13 +187,13 @@ struct Details: View { showAlert = true viewedOnboarding = true case .closed: - alertTitle = Text("\(name) is not opened") - alertMessage = Text("Please open \(name) to enable permissions") + alertTitle = Text("\(appName) is not opened") + alertMessage = Text("Please open \(appName) to enable permissions") showAlert = true success = false case .denied: alertTitle = Text("Permission denied") - alertMessage = Text("Please go to System Settings > Privacy & Security > Automation, and check \(name) under Tuneful") + alertMessage = Text("Please go to System Settings > Privacy & Security > Automation, and check \(appName) under Tuneful") showAlert = true success = false case .notPrompted: diff --git a/Tuneful/Views/Popover/PopoverView.swift b/Tuneful/Views/Popover/PopoverView.swift index 1070c60..2989f83 100644 --- a/Tuneful/Views/Popover/PopoverView.swift +++ b/Tuneful/Views/Popover/PopoverView.swift @@ -19,7 +19,7 @@ struct PopoverView: View { BackgroundView(background: popoverBackground, yOffset: -80) if !playerManager.musicApp.isRunning() || playerManager.track.isEmpty() { - Text("Please open \(connectedApp) to use Tuneful") + Text("Please open \(playerManager.name) to use Tuneful") .foregroundColor(.primary.opacity(Constants.Opacity.secondaryOpacity)) .font(.system(size: 14, weight: .regular)) .frame(maxWidth: .infinity, maxHeight: .infinity) From 00077b660359474b46d726b762b3e6c83353b384 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 17 Dec 2024 22:16:46 +0100 Subject: [PATCH 32/73] Deleted scrolling song info in menu bar due to performance issues --- Tuneful/Defaults/Defaults+Extensions.swift | 1 - Tuneful/Managers/StatusBarItemManager.swift | 6 +----- Tuneful/Views/Popover/PopoverView.swift | 2 +- .../Views/Settings/MenuBarSettingsView.swift | 18 ------------------ 4 files changed, 2 insertions(+), 25 deletions(-) diff --git a/Tuneful/Defaults/Defaults+Extensions.swift b/Tuneful/Defaults/Defaults+Extensions.swift index b0966d8..778c181 100644 --- a/Tuneful/Defaults/Defaults+Extensions.swift +++ b/Tuneful/Defaults/Defaults+Extensions.swift @@ -18,7 +18,6 @@ extension Defaults.Keys { static let trackInfoDetails = Key("trackInfoDetails", default: .artistAndSong) static let showStatusBarTrackInfo = Key("showStatusBarTrackInfo", default: .always) static let showMenuBarPlaybackControls = Key("showMenuBarPlaybackControls", default: false) - static let scrollingTrackInfo = Key("scrollingTrackInfo", default: false) static let showEqWhenPlayingMusic = Key("showEqWhenPlayingMusic", default: true) static let hideMenuBarItemWhenNotPlaying = Key("hideMenuBarItemWhenNotPlaying", default: false) diff --git a/Tuneful/Managers/StatusBarItemManager.swift b/Tuneful/Managers/StatusBarItemManager.swift index 8f2db22..0aebac9 100644 --- a/Tuneful/Managers/StatusBarItemManager.swift +++ b/Tuneful/Managers/StatusBarItemManager.swift @@ -33,11 +33,7 @@ class StatusBarItemManager: ObservableObject { image.frame(width: 18, height: 18) } - if Defaults[.scrollingTrackInfo] && titleWidth != 0 && playerAppIsRunning { - MarqueeText(text: title, leftFade: 0.0, rightFade: 0.0, startDelay: 0, animating: isPlaying) - } - - if !Defaults[.scrollingTrackInfo] && titleWidth != 0 || !playerAppIsRunning { + if titleWidth != 0 || !playerAppIsRunning { Text(title) .lineLimit(1) .font(.system(size: 13, weight: .regular)) diff --git a/Tuneful/Views/Popover/PopoverView.swift b/Tuneful/Views/Popover/PopoverView.swift index 2989f83..58f333b 100644 --- a/Tuneful/Views/Popover/PopoverView.swift +++ b/Tuneful/Views/Popover/PopoverView.swift @@ -19,7 +19,7 @@ struct PopoverView: View { BackgroundView(background: popoverBackground, yOffset: -80) if !playerManager.musicApp.isRunning() || playerManager.track.isEmpty() { - Text("Please open \(playerManager.name) to use Tuneful") + Text("Please open \(playerManager.name) sto use Tuneful") .foregroundColor(.primary.opacity(Constants.Opacity.secondaryOpacity)) .font(.system(size: 14, weight: .regular)) .frame(maxWidth: .infinity, maxHeight: .infinity) diff --git a/Tuneful/Views/Settings/MenuBarSettingsView.swift b/Tuneful/Views/Settings/MenuBarSettingsView.swift index 802d2a5..6961dbf 100644 --- a/Tuneful/Views/Settings/MenuBarSettingsView.swift +++ b/Tuneful/Views/Settings/MenuBarSettingsView.swift @@ -16,7 +16,6 @@ struct MenuBarSettingsView: View { @Default(.showStatusBarTrackInfo) private var showStatusBarTrackInfo @Default(.showMenuBarPlaybackControls) private var showMenuBarPlaybackControls @Default(.hideMenuBarItemWhenNotPlaying) private var hideMenuBarItemWhenNotPlaying - @Default(.scrollingTrackInfo) private var scrollingTrackInfo @Default(.showEqWhenPlayingMusic) private var showEqWhenPlayingMusic var body: some View { @@ -135,23 +134,6 @@ struct MenuBarSettingsView: View { } .disabled(showStatusBarTrackInfo == .never) .opacity(showStatusBarTrackInfo == .never ? 0.7 : 1) - - HStack { - Text("Scrolling song info") - .foregroundStyle(showStatusBarTrackInfo == .never ? .tertiary : .primary) - - Spacer() - - Toggle(isOn: $scrollingTrackInfo) { - Text("") - } - .onChange(of: scrollingTrackInfo) { _ in - sendTrackChangedNotification() - } - .toggleStyle(.switch) - .disabled(showStatusBarTrackInfo == .never) - } - .padding(8) } .padding(.top, 10) } From 2248710235e235f42bfbdd8954be1b059007c1ba Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 17 Dec 2024 22:20:26 +0100 Subject: [PATCH 33/73] Removed unused files --- Tuneful.xcodeproj/project.pbxproj | 24 ---- .../DynamicNotchKit/ScrollWheelModifier.swift | 58 --------- Tuneful/Mocks/MusicAppMock.swift | 18 --- Tuneful/Mocks/PlayerManagerMock.swift | 22 ---- Tuneful/Tuneful.swift | 1 - Tuneful/Views/MenuBar/MarqueeTextView.swift | 115 ------------------ .../Settings/AppearanceSettingsView.swift | 28 ----- 7 files changed, 266 deletions(-) delete mode 100644 Tuneful/DynamicNotchKit/ScrollWheelModifier.swift delete mode 100644 Tuneful/Mocks/MusicAppMock.swift delete mode 100644 Tuneful/Mocks/PlayerManagerMock.swift delete mode 100644 Tuneful/Views/MenuBar/MarqueeTextView.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index d3fce66..d15fb55 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -32,7 +32,6 @@ FE3189FA2A7C3B8C006B2D59 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189F92A7C3B8C006B2D59 /* OnboardingView.swift */; }; FE3189FD2A7C3D01006B2D59 /* OnboardingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */; }; FE31AED02CF50708002818ED /* PlaybackPositionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */; }; - FE31AEDA2CF7CBAA002818ED /* ScrollWheelModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE31AED92CF7CBA3002818ED /* ScrollWheelModifier.swift */; }; FE31AEDC2CFBCB76002818ED /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE31AEDB2CFBCB71002818ED /* SettingsView.swift */; }; FE37A0332A829623006FBA5B /* MusicControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE37A0322A829623006FBA5B /* MusicControl.swift */; }; FE37A0352A82982B006FBA5B /* PlayPauseButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE37A0342A82982B006FBA5B /* PlayPauseButton.swift */; }; @@ -42,7 +41,6 @@ FE478BFD2CB288430033D272 /* SystemPlayerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE478BFC2CB288350033D272 /* SystemPlayerManager.swift */; }; FE4808F12B51BA400077BDAA /* AboutSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4808F02B51BA400077BDAA /* AboutSettingsView.swift */; }; FE4808F42B51C3870077BDAA /* GeneralSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4808F32B51C3870077BDAA /* GeneralSettingsView.swift */; }; - FE4C92152B6143CC00FF79BE /* MarqueeTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4C92142B6143CC00FF79BE /* MarqueeTextView.swift */; }; FE4C92172B61459F00FF79BE /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4C92162B61459F00FF79BE /* String+Extension.swift */; }; FE5B3CA22AB0AC700038B6E4 /* PopoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE5B3CA12AB0AC700038B6E4 /* PopoverView.swift */; }; FE5B56E62D037EEF0077527C /* Defaults in Frameworks */ = {isa = PBXBuildFile; productRef = FE5B56E52D037EEF0077527C /* Defaults */; }; @@ -68,8 +66,6 @@ FE7C5BDA2AC050E000D1C253 /* AlbumArtView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE7C5BD92AC050E000D1C253 /* AlbumArtView.swift */; }; FE8CE1542C1E03F30053FDEA /* CompactPopoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8CE1532C1E03F30053FDEA /* CompactPopoverView.swift */; }; FE8CE1582C1E0B140053FDEA /* PopoverType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8CE1572C1E0B140053FDEA /* PopoverType.swift */; }; - FE8F0DA12D0DE1BE005C7722 /* PlayerManagerMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8F0DA02D0DE1BA005C7722 /* PlayerManagerMock.swift */; }; - FE8F0DA32D0DE476005C7722 /* MusicAppMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8F0DA22D0DE471005C7722 /* MusicAppMock.swift */; }; FE9FCF212CAEC0290015DF4D /* PlayerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF202CAEC0260015DF4D /* PlayerProtocol.swift */; }; FE9FCF232CAEC0C90015DF4D /* SpotifyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF222CAEC0C50015DF4D /* SpotifyManager.swift */; }; FE9FCF252CAEC2780015DF4D /* AppleMusicManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */; }; @@ -139,7 +135,6 @@ FE3189F92A7C3B8C006B2D59 /* OnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = ""; }; FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingWindow.swift; sourceTree = ""; }; FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackPositionView.swift; sourceTree = ""; }; - FE31AED92CF7CBA3002818ED /* ScrollWheelModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollWheelModifier.swift; sourceTree = ""; }; FE31AEDB2CFBCB71002818ED /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; FE37A0322A829623006FBA5B /* MusicControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicControl.swift; sourceTree = ""; }; FE37A0342A82982B006FBA5B /* PlayPauseButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayPauseButton.swift; sourceTree = ""; }; @@ -149,7 +144,6 @@ FE478BFC2CB288350033D272 /* SystemPlayerManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemPlayerManager.swift; sourceTree = ""; }; FE4808F02B51BA400077BDAA /* AboutSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsView.swift; sourceTree = ""; }; FE4808F32B51C3870077BDAA /* GeneralSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsView.swift; sourceTree = ""; }; - FE4C92142B6143CC00FF79BE /* MarqueeTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarqueeTextView.swift; sourceTree = ""; }; FE4C92162B61459F00FF79BE /* String+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extension.swift"; sourceTree = ""; }; FE5B3CA12AB0AC700038B6E4 /* PopoverView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverView.swift; sourceTree = ""; }; FE5B56EA2D0386EC0077527C /* Defaults+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Defaults+Extensions.swift"; sourceTree = ""; }; @@ -175,8 +169,6 @@ FE7C5BD92AC050E000D1C253 /* AlbumArtView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlbumArtView.swift; sourceTree = ""; }; FE8CE1532C1E03F30053FDEA /* CompactPopoverView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactPopoverView.swift; sourceTree = ""; }; FE8CE1572C1E0B140053FDEA /* PopoverType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverType.swift; sourceTree = ""; }; - FE8F0DA02D0DE1BA005C7722 /* PlayerManagerMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerManagerMock.swift; sourceTree = ""; }; - FE8F0DA22D0DE471005C7722 /* MusicAppMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicAppMock.swift; sourceTree = ""; }; FE9781822C0CC1A0007217A1 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; FE9781842C0CC1A0007217A1 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; FE9FCF202CAEC0260015DF4D /* PlayerProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerProtocol.swift; sourceTree = ""; }; @@ -238,7 +230,6 @@ FE1A62FA2CBC1B09001C13CE /* DynamicNotchKit */ = { isa = PBXGroup; children = ( - FE31AED92CF7CBA3002818ED /* ScrollWheelModifier.swift */, FE1A62F12CBC1B09001C13CE /* BlurModifier.swift */, FE1A62F22CBC1B09001C13CE /* DynamicNotch.swift */, FE1A62F32CBC1B09001C13CE /* DynamicNotchInfo.swift */, @@ -267,7 +258,6 @@ isa = PBXGroup; children = ( FE7955462CA2C7A2002026AA /* AudioSpectrumView.swift */, - FE4C92142B6143CC00FF79BE /* MarqueeTextView.swift */, ); path = MenuBar; sourceTree = ""; @@ -346,7 +336,6 @@ FE6BFCE52A72F37800D3321F /* Tuneful */ = { isa = PBXGroup; children = ( - FE8F0D9F2D0DE1B5005C7722 /* Mocks */, FE5B56EB2D0386EC0077527C /* Defaults */, FEFFE5532B4FDDEA000887B5 /* Extensions */, FEA6FB212B04168000DACC43 /* AudioDevices */, @@ -441,15 +430,6 @@ path = Popover; sourceTree = ""; }; - FE8F0D9F2D0DE1B5005C7722 /* Mocks */ = { - isa = PBXGroup; - children = ( - FE8F0DA22D0DE471005C7722 /* MusicAppMock.swift */, - FE8F0DA02D0DE1BA005C7722 /* PlayerManagerMock.swift */, - ); - path = Mocks; - sourceTree = ""; - }; FEA6FB212B04168000DACC43 /* AudioDevices */ = { isa = PBXGroup; children = ( @@ -608,7 +588,6 @@ FEE486E52B5D174F00AB712F /* CompactMiniPlayerView.swift in Sources */, FE7955472CA2C7A3002026AA /* AudioSpectrumView.swift in Sources */, FEFFE54D2B49EF97000887B5 /* MenuBarSettingsView.swift in Sources */, - FE8F0DA32D0DE476005C7722 /* MusicAppMock.swift in Sources */, FEF066112B51914900A514F2 /* KeyboardShortcuts+Extension.swift in Sources */, FE1A62F02CBBE3F4001C13CE /* FetchedAlbumArt.swift in Sources */, FE445FE42A977D0E001CA55A /* Double+Extension.swift in Sources */, @@ -636,7 +615,6 @@ FE79554E2CA34BF0002026AA /* Logger+Extension.swift in Sources */, FEDD311A2CBE4DAD00653956 /* PlayerAppProvider.swift in Sources */, FEFFE5592B4FE00D000887B5 /* NSError+Extension.swift in Sources */, - FE31AEDA2CF7CBAA002818ED /* ScrollWheelModifier.swift in Sources */, FE4414B82AB4999600A73246 /* Notification.Name.swift in Sources */, FE478BFD2CB288430033D272 /* SystemPlayerManager.swift in Sources */, FE8CE1582C1E0B140053FDEA /* PopoverType.swift in Sources */, @@ -651,7 +629,6 @@ FE2AEE322A8FE08500E8D576 /* CustomSliderView.swift in Sources */, FE08CE132CFC74E200F047CB /* SettingsWindow.swift in Sources */, FE2554A22CA9CA93003DAB77 /* HoverButton.swift in Sources */, - FE4C92152B6143CC00FF79BE /* MarqueeTextView.swift in Sources */, FE4808F12B51BA400077BDAA /* AboutSettingsView.swift in Sources */, FEE486E92B5D677400AB712F /* MiniPlayerType.swift in Sources */, FE7C5BDA2AC050E000D1C253 /* AlbumArtView.swift in Sources */, @@ -661,7 +638,6 @@ FEFFE55B2B4FE028000887B5 /* DateComponentsFormatter+Extension.swift in Sources */, FEF53A642AEEA43600CE4981 /* VolumeControlView.swift in Sources */, FE9FCF232CAEC0C90015DF4D /* SpotifyManager.swift in Sources */, - FE8F0DA12D0DE1BE005C7722 /* PlayerManagerMock.swift in Sources */, FE31AED02CF50708002818ED /* PlaybackPositionView.swift in Sources */, FE25549B2CA95F87003DAB77 /* AddToFavoritesView.swift in Sources */, FE3189FA2A7C3B8C006B2D59 /* OnboardingView.swift in Sources */, diff --git a/Tuneful/DynamicNotchKit/ScrollWheelModifier.swift b/Tuneful/DynamicNotchKit/ScrollWheelModifier.swift deleted file mode 100644 index caf1261..0000000 --- a/Tuneful/DynamicNotchKit/ScrollWheelModifier.swift +++ /dev/null @@ -1,58 +0,0 @@ -// -// ScrollWheelModifier.swift -// Tuneful -// -// Created by Martin Fekete on 27/11/2024. -// - -import SwiftUI -import Combine - -struct ScrollWheelModifier: ViewModifier { - enum Direction { - case up, down, left, right - } - - @State private var subs = Set() // Cancel onDisappear - - var action: (Direction) -> Void - - func body(content: Content) -> some View { - content - .onAppear { trackScrollWheel() } - } - - func trackScrollWheel() { - NSApp.publisher(for: \.currentEvent) - .filter { event in event?.type == .scrollWheel } - .throttle(for: .milliseconds(200), - scheduler: DispatchQueue.main, - latest: true) - .sink { - if let event = $0 { - if event.deltaX > 0 { - action(.right) - } - - if event.deltaX < 0 { - action(.left) - } - - if event.deltaY > 0 { - action(.down) - } - - if event.deltaY < 0 { - action(.up) - } - } - } - .store(in: &subs) - } -} - -extension View { - func onScrollWheelUp(action: @escaping (ScrollWheelModifier.Direction) -> Void) -> some View { - modifier(ScrollWheelModifier(action: action) ) - } -} diff --git a/Tuneful/Mocks/MusicAppMock.swift b/Tuneful/Mocks/MusicAppMock.swift deleted file mode 100644 index 621fc5e..0000000 --- a/Tuneful/Mocks/MusicAppMock.swift +++ /dev/null @@ -1,18 +0,0 @@ -// -// MusicAppMock.swift -// Tuneful -// -// Created by Martin Fekete on 14/12/2024. -// - -import Combine - -class MusicAppMock: AppleMusicManager { - override var isPlaying: Bool { - get { return true } - } - - override func isRunning() -> Bool { - return true - } -} diff --git a/Tuneful/Mocks/PlayerManagerMock.swift b/Tuneful/Mocks/PlayerManagerMock.swift deleted file mode 100644 index 7aa561f..0000000 --- a/Tuneful/Mocks/PlayerManagerMock.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// PlayerManagerMock.swift -// Tuneful -// -// Created by Martin Fekete on 14/12/2024. -// - -import Combine -import Foundation - -@MainActor -class PlayerManagerMock: PlayerManager { - override var track: Track { - get { return Track(artist: "Test", album: "Test") } - set { } - } - - override var musicApp: (any PlayerProtocol)? { - get { return MusicAppMock(notificationSubject: PassthroughSubject()) } - set { } - } -} diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index f73c88d..916e603 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -73,7 +73,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { toolbarIcon: NSImage(systemSymbolName: "paintbrush", accessibilityDescription: "Appearance settings")! ) { AppearanceSettingsView() - .environmentObject(PlayerManagerMock()) } return Settings.PaneHostingController(pane: paneView) diff --git a/Tuneful/Views/MenuBar/MarqueeTextView.swift b/Tuneful/Views/MenuBar/MarqueeTextView.swift deleted file mode 100644 index 6a2ff73..0000000 --- a/Tuneful/Views/MenuBar/MarqueeTextView.swift +++ /dev/null @@ -1,115 +0,0 @@ -// -// MarqueeTextView.swift -// Tuneful -// -// Source [joekndy/MarqueeText](https://github.com/joekndy/MarqueeText) -// - -import SwiftUI - -public struct MarqueeText : View { - public var text: String - public var leftFade: CGFloat - public var rightFade: CGFloat - public var startDelay: Double - public var alignment: Alignment - private var isCompact: Bool = false - - @State private var animate = false - - public init(text: String, leftFade: CGFloat, rightFade: CGFloat, startDelay: Double, alignment: Alignment? = nil, animating: Bool) { - self.text = text - self.leftFade = leftFade - self.rightFade = rightFade - self.startDelay = startDelay - self.alignment = alignment != nil ? alignment! : .topLeading - self.animate = animating - } - - public var body : some View { - let font = Constants.StatusBar.marqueeFont - let stringWidth = text.stringWidth(with: font) + 5 - let stringHeight = text.stringHeight(with: font) - - let animation = Animation - .linear(duration: Double(stringWidth) / 17) - .delay(startDelay) - .repeatForever(autoreverses: false) - - let nullAnimation = Animation - .linear(duration: 0) - - return ZStack { - GeometryReader { geo in - if stringWidth > geo.size.width { // don't use self.animate as conditional here - Group { - Text(self.text) - .lineLimit(1) - .font(.init(font)) - .offset(x: self.animate ? -stringWidth - stringHeight * 2 : 0) - .animation(self.animate ? animation : nullAnimation, value: self.animate) - .onAppear { - DispatchQueue.main.async { - self.animate = geo.size.width < stringWidth - } - } - .fixedSize(horizontal: true, vertical: false) - .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: .topLeading) - - Text(self.text) - .lineLimit(1) - .font(.init(font)) - .offset(x: self.animate ? 0 : stringWidth + stringHeight * 2) - .animation(self.animate ? animation : nullAnimation, value: self.animate) - .onAppear { - DispatchQueue.main.async { - self.animate = geo.size.width < stringWidth - } - } - .fixedSize(horizontal: true, vertical: false) - .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: .topLeading) - } - .onValueChanged(of: self.text, perform: {text in - self.animate = geo.size.width < stringWidth - }) - .offset(x: leftFade) - .mask( - HStack(spacing:0) { - Rectangle() - .frame(width:2) - .opacity(0) - LinearGradient(gradient: Gradient(colors: [Color.black.opacity(0), Color.black]), startPoint: /*@START_MENU_TOKEN@*/.leading/*@END_MENU_TOKEN@*/, endPoint: /*@START_MENU_TOKEN@*/.trailing/*@END_MENU_TOKEN@*/) - .frame(width:leftFade) - LinearGradient(gradient: Gradient(colors: [Color.black, Color.black]), startPoint: /*@START_MENU_TOKEN@*/.leading/*@END_MENU_TOKEN@*/, endPoint: /*@START_MENU_TOKEN@*/.trailing/*@END_MENU_TOKEN@*/) - LinearGradient(gradient: Gradient(colors: [Color.black, Color.black.opacity(0)]), startPoint: /*@START_MENU_TOKEN@*/.leading/*@END_MENU_TOKEN@*/, endPoint: /*@START_MENU_TOKEN@*/.trailing/*@END_MENU_TOKEN@*/) - .frame(width:rightFade) - Rectangle() - .frame(width:2) - .opacity(0) - }) - .frame(width: geo.size.width + leftFade) - .offset(x: leftFade * -1) - } else { - Text(self.text) - .font(.init(font)) - .onValueChanged(of: self.text, perform: {text in - self.animate = geo.size.width < stringWidth - }) - .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: alignment) - } - } - } - .frame(height: stringHeight) - .frame(maxWidth: isCompact ? stringWidth : nil) - .onDisappear { self.animate = false } - - } -} - -extension MarqueeText { - public func makeCompact(_ compact: Bool = true) -> Self { - var view = self - view.isCompact = compact - return view - } -} diff --git a/Tuneful/Views/Settings/AppearanceSettingsView.swift b/Tuneful/Views/Settings/AppearanceSettingsView.swift index 1382610..b78b57e 100644 --- a/Tuneful/Views/Settings/AppearanceSettingsView.swift +++ b/Tuneful/Views/Settings/AppearanceSettingsView.swift @@ -20,8 +20,6 @@ struct AppearanceSettingsView: View { @Default(.miniPlayerType) private var miniPlayerType @Default(.miniPlayerBackground) private var miniPlayerBackground - private var playerManagerMock = PlayerManagerMock() as PlayerManager - var body: some View { Settings.Container(contentWidth: 400) { Settings.Section(title: "") { @@ -50,32 +48,6 @@ struct AppearanceSettingsView: View { } .padding(8) - HStack { - Text("Test") - .foregroundStyle(popoverIsEnabled ? .primary : .tertiary) - - Spacer() - - ScrollView { - VStack { - PopoverView() - .scaledToFit() - .frame(width: 250) - .environmentObject(playerManagerMock) - .allowsHitTesting(false) - - CompactPopoverView() - .scaledToFit() - .frame(width: 250) - .environmentObject(playerManagerMock) - .allowsHitTesting(false) - - } - } - .frame(height: 200) - } - .padding(8) - HStack { Text("Background") .foregroundStyle(popoverIsEnabled ? .primary : .tertiary) From da578ac1a889df32b523c357fa18087b797f57e5 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 17 Dec 2024 22:29:38 +0100 Subject: [PATCH 34/73] Adding song to favorites shortcut for Apple Music --- Tuneful/Extensions/KeyboardShortcuts+Extension.swift | 1 + Tuneful/Tuneful.swift | 3 +++ Tuneful/Views/Settings/KeyboardShortcutSettingsView.swift | 7 ++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Tuneful/Extensions/KeyboardShortcuts+Extension.swift b/Tuneful/Extensions/KeyboardShortcuts+Extension.swift index 357482e..4e9776f 100644 --- a/Tuneful/Extensions/KeyboardShortcuts+Extension.swift +++ b/Tuneful/Extensions/KeyboardShortcuts+Extension.swift @@ -15,5 +15,6 @@ extension KeyboardShortcuts.Name { static let changeMusicPlayer = Self("changeMusicPlayer") static let toggleMenuBarItemVisibility = Self("toggleMenuBarItemVisibility") static let togglePopover = Self("togglePopover") + static let likeSong = Self("likeSong") static let openSettings = Self("openSettings", default: .init(.comma, modifiers: [.command])) } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 916e603..bfe0c58 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -202,6 +202,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { KeyboardShortcuts.onKeyUp(for: .openSettings) { self.openSettings(self) } + KeyboardShortcuts.onKeyUp(for: .likeSong) { + self.playerManager.toggleLoveTrack() + } } // MARK: Menu bar diff --git a/Tuneful/Views/Settings/KeyboardShortcutSettingsView.swift b/Tuneful/Views/Settings/KeyboardShortcutSettingsView.swift index a4ff973..1586a4f 100644 --- a/Tuneful/Views/Settings/KeyboardShortcutSettingsView.swift +++ b/Tuneful/Views/Settings/KeyboardShortcutSettingsView.swift @@ -23,8 +23,13 @@ struct KeyboardShortcutsSettingsView: View { KeyboardShortcuts.Recorder("Switch music player", name: .changeMusicPlayer) KeyboardShortcuts.Recorder("Show/hide menu bar player", name: .toggleMenuBarItemVisibility) KeyboardShortcuts.Recorder("Show/hide popover", name: .togglePopover) + VStack { + KeyboardShortcuts.Recorder("Add song to favorites", name: .likeSong) + Text("This shortcut only works for Apple Music for now") + .font(.footnote) + .foregroundColor(.primary.opacity(Constants.Opacity.secondaryOpacity)) + } } - .frame(maxWidth: .infinity, alignment: .center) } } } From d2292e243e1c649503d1a0f30228ddf6c0ff484c Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sat, 21 Dec 2024 20:27:48 +0100 Subject: [PATCH 35/73] Mini player views refactoring --- Tuneful.xcodeproj/project.pbxproj | 4 +++ Tuneful/DynamicNotchKit/NotchlessView.swift | 5 +--- Tuneful/Models/MiniPlayerType.swift | 8 +++--- Tuneful/Tuneful.swift | 5 ++-- .../MiniPlayer/CompactMiniPlayerView.swift | 20 +++++++++----- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 26 ++++++++++++------- .../MiniPlayer/MiniPlayerViewProtocol.swift | 12 +++++++++ 7 files changed, 55 insertions(+), 25 deletions(-) create mode 100644 Tuneful/Views/MiniPlayer/MiniPlayerViewProtocol.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index d15fb55..610f91c 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -70,6 +70,7 @@ FE9FCF232CAEC0C90015DF4D /* SpotifyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF222CAEC0C50015DF4D /* SpotifyManager.swift */; }; FE9FCF252CAEC2780015DF4D /* AppleMusicManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */; }; FEA6FB232B04169B00DACC43 /* AudioDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA6FB222B04169B00DACC43 /* AudioDevice.swift */; }; + FEBA35E82D172B7F0081A3F2 /* MiniPlayerViewProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35E72D172B760081A3F2 /* MiniPlayerViewProtocol.swift */; }; FEBA3D022B5824D700E25A67 /* BackgroundType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA3D012B5824D700E25A67 /* BackgroundType.swift */; }; FEBA3D042B58303A00E25A67 /* View+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA3D032B58303A00E25A67 /* View+Extension.swift */; }; FEDD311A2CBE4DAD00653956 /* PlayerAppProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEDD31192CBE4DA500653956 /* PlayerAppProvider.swift */; }; @@ -175,6 +176,7 @@ FE9FCF222CAEC0C50015DF4D /* SpotifyManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpotifyManager.swift; sourceTree = ""; }; FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppleMusicManager.swift; sourceTree = ""; }; FEA6FB222B04169B00DACC43 /* AudioDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioDevice.swift; sourceTree = ""; }; + FEBA35E72D172B760081A3F2 /* MiniPlayerViewProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerViewProtocol.swift; sourceTree = ""; }; FEBA3D012B5824D700E25A67 /* BackgroundType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundType.swift; sourceTree = ""; }; FEBA3D032B58303A00E25A67 /* View+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Extension.swift"; sourceTree = ""; }; FEDD31192CBE4DA500653956 /* PlayerAppProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerAppProvider.swift; sourceTree = ""; }; @@ -441,6 +443,7 @@ FEE486E32B5D173A00AB712F /* MiniPlayer */ = { isa = PBXGroup; children = ( + FEBA35E72D172B760081A3F2 /* MiniPlayerViewProtocol.swift */, FE6BFCE82A72F37800D3321F /* MiniPlayerView.swift */, FEE486E42B5D174F00AB712F /* CompactMiniPlayerView.swift */, ); @@ -590,6 +593,7 @@ FEFFE54D2B49EF97000887B5 /* MenuBarSettingsView.swift in Sources */, FEF066112B51914900A514F2 /* KeyboardShortcuts+Extension.swift in Sources */, FE1A62F02CBBE3F4001C13CE /* FetchedAlbumArt.swift in Sources */, + FEBA35E82D172B7F0081A3F2 /* MiniPlayerViewProtocol.swift in Sources */, FE445FE42A977D0E001CA55A /* Double+Extension.swift in Sources */, FE37A0332A829623006FBA5B /* MusicControl.swift in Sources */, FEF53A6E2AEFF42300CE4981 /* AlertItem.swift in Sources */, diff --git a/Tuneful/DynamicNotchKit/NotchlessView.swift b/Tuneful/DynamicNotchKit/NotchlessView.swift index 2565f96..196e100 100644 --- a/Tuneful/DynamicNotchKit/NotchlessView.swift +++ b/Tuneful/DynamicNotchKit/NotchlessView.swift @@ -17,8 +17,6 @@ struct NotchlessView: View where Content: View { Spacer() VStack(spacing: 0) { - Spacer(minLength: 20) - NotchlessInfoView( playerManager: dynamicNotch.playerManager, notchHeight: dynamicNotch.notchHeight @@ -75,9 +73,8 @@ struct NotchlessView: View where Content: View { } } } - .offset(y: dynamicNotch.isVisible ? -25 : -windowHeight + 10) + .offset(y: dynamicNotch.isVisible ? 0 : -windowHeight) .animation(dynamicNotch.animation, value: dynamicNotch.contentID) - .opacity(dynamicNotch.isVisible ? 1 : 0.025) Spacer() } diff --git a/Tuneful/Models/MiniPlayerType.swift b/Tuneful/Models/MiniPlayerType.swift index 3889f8a..7642ff8 100644 --- a/Tuneful/Models/MiniPlayerType.swift +++ b/Tuneful/Models/MiniPlayerType.swift @@ -22,10 +22,12 @@ enum MiniPlayerType: String, Equatable, CaseIterable, Defaults.Serializable { } } - func getWindowSize() -> NSSize { + var size: CGSize { switch self { - case .full: return NSSize(width: 300, height: 145) - case .minimal: return NSSize(width: 145, height: 145) + case .full: + return MiniPlayerView().size + case .minimal: + return CompactMiniPlayerView().size } } } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index bfe0c58..cf4e9bb 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -402,8 +402,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { let windowPosition = miniPlayerWindow.frame.origin setupMiniPlayerWindow( - size: Defaults[.miniPlayerType].getWindowSize(), position: windowPosition, + size: Defaults[.miniPlayerType].size, view: Defaults[.miniPlayerType].view ) @@ -426,7 +426,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } } - private func setupMiniPlayerWindow(size: NSSize, position: CGPoint, view: Content) { + private func setupMiniPlayerWindow(position: CGPoint, size: CGSize, view: Content) { DispatchQueue.main.async { // Calculate new position that maintains the same vertical alignment let currentFrame = self.miniPlayerWindow.frame @@ -447,6 +447,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { miniPlayerWindow.contentView = miniPlayerView toggleMiniPlayerWindowLevel() } + // MARK: New settings diff --git a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift index 688f1f8..fcac6b1 100644 --- a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift @@ -9,9 +9,11 @@ import SwiftUI import MediaPlayer import Defaults -struct CompactMiniPlayerView: View { +struct CompactMiniPlayerView: View, MiniPlayerViewProtocol { @EnvironmentObject var playerManager: PlayerManager @State private var isShowingPlaybackControls = false + @State var size = CGSize(width: 150, height: 150) + @Default(.miniPlayerBackground) private var miniPlayerBackground private var imageSize: CGFloat = 140.0 @@ -21,8 +23,6 @@ struct CompactMiniPlayerView: View { var body: some View { ZStack { - BackgroundView(background: miniPlayerBackground) - if !playerManager.isRunning || playerManager.track.isEmpty() { Text("Please open \(playerManager.name) to use Tuneful") .foregroundColor(.primary.opacity(0.4)) @@ -35,7 +35,7 @@ struct CompactMiniPlayerView: View { AlbumArtView(imageSize: self.imageSize) .shadow(color: .black.opacity(0.2), radius: 4, x: 0, y: 2) .dragWindowWithClick() - + PlaybackButtonsView(playButtonSize: 17.5, hideShuffleAndRepeat: true, spacing: 17.5) .padding(15) .background( @@ -49,7 +49,7 @@ struct CompactMiniPlayerView: View { .opacity(isShowingPlaybackControls ? 1 : 0) } } - .frame(width: 155, height: 155) + .padding(7.5) .onHover { _ in withAnimation(.linear(duration: 0.2)) { self.isShowingPlaybackControls.toggle() @@ -59,7 +59,15 @@ struct CompactMiniPlayerView: View { NotificationView() ) .background( - VisualEffectView(material: .popover, blendingMode: .behindWindow) + GeometryReader { proxy in + ZStack { + VisualEffectView(material: .popover, blendingMode: .behindWindow) + BackgroundView(background: miniPlayerBackground, xOffset: -80) + } + .onAppear { + size = proxy.size + } + } ) .overlay { RoundedRectangle(cornerRadius: 10, style: .continuous) diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 3f18ab2..272cf36 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -9,18 +9,17 @@ import SwiftUI import MediaPlayer import Defaults -struct MiniPlayerView: View { +struct MiniPlayerView: View, MiniPlayerViewProtocol { @EnvironmentObject var playerManager: PlayerManager @State private var isShowingPlaybackControls = false + @State var size = CGSize(width: 200, height: 150) + @Default(.miniPlayerBackground) private var miniPlayerBackground private var imageSize: CGFloat = 140.0 var body: some View { - ZStack { - BackgroundView(background: miniPlayerBackground, xOffset: -80) - if !playerManager.isRunning || playerManager.track.isEmpty() { Text("Please open \(playerManager.name) to use Tuneful") .foregroundColor(.primary.opacity(0.4)) @@ -30,7 +29,7 @@ struct MiniPlayerView: View { .padding(15) .padding(.bottom, 20) } else { - HStack(spacing: 0) { + HStack(spacing: 10) { ZStack { AlbumArtView(imageSize: self.imageSize) .dragWindowWithClick() @@ -68,18 +67,25 @@ struct MiniPlayerView: View { PlaybackButtonsView(playButtonSize: 17.5, spacing: 12.5) } - .padding() - .opacity(0.8) + .frame(width: imageSize) // Both sides should be the same + .opacity(0.75) } - .padding(.leading, 8) } } - .frame(width: 310, height: 155) + .padding(7.5) .overlay( NotificationView() ) .background( - VisualEffectView(material: .popover, blendingMode: .behindWindow) + GeometryReader { proxy in + ZStack { + VisualEffectView(material: .popover, blendingMode: .behindWindow) + BackgroundView(background: miniPlayerBackground, xOffset: -80) + } + .onAppear { + size = proxy.size + } + } ) .overlay { RoundedRectangle(cornerRadius: 10, style: .continuous) diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerViewProtocol.swift b/Tuneful/Views/MiniPlayer/MiniPlayerViewProtocol.swift new file mode 100644 index 0000000..45d0e0a --- /dev/null +++ b/Tuneful/Views/MiniPlayer/MiniPlayerViewProtocol.swift @@ -0,0 +1,12 @@ +// +// MiniPlayerViewProtocol.swift +// Tuneful +// +// Created by Martin Fekete on 21/12/2024. +// + +import SwiftUI + +protocol MiniPlayerViewProtocol { + var size: CGSize { get } +} From 45c3e09e9a449b23059ef31cd6f2761eb96f4083 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sat, 21 Dec 2024 22:53:30 +0100 Subject: [PATCH 36/73] Mini player scaling --- Tuneful.xcodeproj/project.pbxproj | 8 ++ Tuneful/Defaults/Defaults+Extensions.swift | 1 + Tuneful/Models/MiniPlayerScaleFactor.swift | 23 +++++ Tuneful/Models/MiniPlayerType.swift | 4 + Tuneful/Models/PopoverType.swift | 1 - Tuneful/Tuneful.swift | 25 +++--- .../MiniPlayer/CompactMiniPlayerView.swift | 13 ++- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 17 ++-- .../MiniPlayer/VerticalMiniPlayerView.swift | 87 +++++++++++++++++++ .../Settings/AppearanceSettingsView.swift | 21 +++++ Tuneful/Windows/MiniPlayerWindow.swift | 14 ++- 11 files changed, 178 insertions(+), 36 deletions(-) create mode 100644 Tuneful/Models/MiniPlayerScaleFactor.swift create mode 100644 Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 610f91c..c5a490a 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -71,6 +71,8 @@ FE9FCF252CAEC2780015DF4D /* AppleMusicManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */; }; FEA6FB232B04169B00DACC43 /* AudioDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA6FB222B04169B00DACC43 /* AudioDevice.swift */; }; FEBA35E82D172B7F0081A3F2 /* MiniPlayerViewProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35E72D172B760081A3F2 /* MiniPlayerViewProtocol.swift */; }; + FEBA35EA2D17566E0081A3F2 /* VerticalMiniPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */; }; + FEBA35EC2D1766790081A3F2 /* MiniPlayerScaleFactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */; }; FEBA3D022B5824D700E25A67 /* BackgroundType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA3D012B5824D700E25A67 /* BackgroundType.swift */; }; FEBA3D042B58303A00E25A67 /* View+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA3D032B58303A00E25A67 /* View+Extension.swift */; }; FEDD311A2CBE4DAD00653956 /* PlayerAppProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEDD31192CBE4DA500653956 /* PlayerAppProvider.swift */; }; @@ -177,6 +179,8 @@ FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppleMusicManager.swift; sourceTree = ""; }; FEA6FB222B04169B00DACC43 /* AudioDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioDevice.swift; sourceTree = ""; }; FEBA35E72D172B760081A3F2 /* MiniPlayerViewProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerViewProtocol.swift; sourceTree = ""; }; + FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerticalMiniPlayerView.swift; sourceTree = ""; }; + FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerScaleFactor.swift; sourceTree = ""; }; FEBA3D012B5824D700E25A67 /* BackgroundType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundType.swift; sourceTree = ""; }; FEBA3D032B58303A00E25A67 /* View+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Extension.swift"; sourceTree = ""; }; FEDD31192CBE4DA500653956 /* PlayerAppProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerAppProvider.swift; sourceTree = ""; }; @@ -370,6 +374,7 @@ FE6BFCF92A73A7CA00D3321F /* Models */ = { isa = PBXGroup; children = ( + FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */, FE1A62EF2CBBE3ED001C13CE /* FetchedAlbumArt.swift */, FEF53A6D2AEFF42300CE4981 /* AlertItem.swift */, FE6BFCFA2A73A7CA00D3321F /* SupportedApps.swift */, @@ -445,6 +450,7 @@ children = ( FEBA35E72D172B760081A3F2 /* MiniPlayerViewProtocol.swift */, FE6BFCE82A72F37800D3321F /* MiniPlayerView.swift */, + FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */, FEE486E42B5D174F00AB712F /* CompactMiniPlayerView.swift */, ); path = MiniPlayer; @@ -595,6 +601,7 @@ FE1A62F02CBBE3F4001C13CE /* FetchedAlbumArt.swift in Sources */, FEBA35E82D172B7F0081A3F2 /* MiniPlayerViewProtocol.swift in Sources */, FE445FE42A977D0E001CA55A /* Double+Extension.swift in Sources */, + FEBA35EA2D17566E0081A3F2 /* VerticalMiniPlayerView.swift in Sources */, FE37A0332A829623006FBA5B /* MusicControl.swift in Sources */, FEF53A6E2AEFF42300CE4981 /* AlertItem.swift in Sources */, FE5B56EC2D0386EC0077527C /* Defaults+Extensions.swift in Sources */, @@ -613,6 +620,7 @@ FE6BFD0C2A73B2D400D3321F /* NSImage+Extension.swift in Sources */, FE6BFD022A73AB9A00D3321F /* MusicApplication.swift in Sources */, FEBA3D042B58303A00E25A67 /* View+Extension.swift in Sources */, + FEBA35EC2D1766790081A3F2 /* MiniPlayerScaleFactor.swift in Sources */, FE6BFD032A73AB9A00D3321F /* SpotifyApplication.swift in Sources */, FE31AEDC2CFBCB76002818ED /* SettingsView.swift in Sources */, FE3189FD2A7C3D01006B2D59 /* OnboardingWindow.swift in Sources */, diff --git a/Tuneful/Defaults/Defaults+Extensions.swift b/Tuneful/Defaults/Defaults+Extensions.swift index 778c181..64d83e9 100644 --- a/Tuneful/Defaults/Defaults+Extensions.swift +++ b/Tuneful/Defaults/Defaults+Extensions.swift @@ -27,6 +27,7 @@ extension Defaults.Keys { static let notificationDuration = Key("notificationDuration", default: 2) // Mini player + static let miniPlayerScaleFactor = Key("miniPlayerScaleFactor", default: .normal) static let showPlayerWindow = Key("showPlayerWindow", default: true) static let miniPlayerType = Key("miniPlayerType", default: .minimal) static let miniPlayerWindowOnTop = Key("miniPlayerWindowOnTop", default: true) diff --git a/Tuneful/Models/MiniPlayerScaleFactor.swift b/Tuneful/Models/MiniPlayerScaleFactor.swift new file mode 100644 index 0000000..efe8b1f --- /dev/null +++ b/Tuneful/Models/MiniPlayerScaleFactor.swift @@ -0,0 +1,23 @@ +// +// MiniPlayerScaleFactor.swift +// Tuneful +// +// Created by Martin Fekete on 21/12/2024. +// + +import Defaults +import SwiftUICore + +enum MiniPlayerScaleFactor: Double, Equatable, CaseIterable, Defaults.Serializable { + case small = 0.75 + case normal = 1 + case large = 1.25 + + var localizedName: String { + switch self { + case .small: return "Small" + case .normal: return "Normal" + case .large: return "Large" + } + } +} diff --git a/Tuneful/Models/MiniPlayerType.swift b/Tuneful/Models/MiniPlayerType.swift index 7642ff8..4432bc3 100644 --- a/Tuneful/Models/MiniPlayerType.swift +++ b/Tuneful/Models/MiniPlayerType.swift @@ -11,6 +11,7 @@ import Defaults enum MiniPlayerType: String, Equatable, CaseIterable, Defaults.Serializable { case full = "Full" case minimal = "Minimal" + case vertical = "Vertical" var localizedName: LocalizedStringKey { LocalizedStringKey(rawValue) } @@ -19,6 +20,7 @@ enum MiniPlayerType: String, Equatable, CaseIterable, Defaults.Serializable { switch self { case .full: MiniPlayerView() case .minimal: CompactMiniPlayerView() + case .vertical: VerticalMiniPlayerView() } } @@ -28,6 +30,8 @@ enum MiniPlayerType: String, Equatable, CaseIterable, Defaults.Serializable { return MiniPlayerView().size case .minimal: return CompactMiniPlayerView().size + case .vertical: + return VerticalMiniPlayerView().size } } } diff --git a/Tuneful/Models/PopoverType.swift b/Tuneful/Models/PopoverType.swift index 7f59372..3acf193 100644 --- a/Tuneful/Models/PopoverType.swift +++ b/Tuneful/Models/PopoverType.swift @@ -9,7 +9,6 @@ import SwiftUI import Defaults enum PopoverType: String, Equatable, CaseIterable, Defaults.Serializable { - case full = "Full" case minimal = "Minimal" diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index cf4e9bb..d271704 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -427,20 +427,17 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } private func setupMiniPlayerWindow(position: CGPoint, size: CGSize, view: Content) { - DispatchQueue.main.async { - // Calculate new position that maintains the same vertical alignment - let currentFrame = self.miniPlayerWindow.frame - let newPosition = NSPoint( - x: position.x, - y: position.y + (currentFrame.height - size.height) // Adjust Y position to maintain top alignment - ) - - self.miniPlayerWindow.setFrame( - NSRect(origin: newPosition, size: size), - display: true, - animate: true - ) - } + let currentFrame = self.miniPlayerWindow.frame + let newPosition = NSPoint( + x: position.x, + y: position.y + (currentFrame.height - size.height) + ) + + self.miniPlayerWindow.setFrame( + NSRect(origin: newPosition, size: size), + display: true, + animate: false + ) let rootView = view.cornerRadius(15).environmentObject(self.playerManager) let miniPlayerView = NSHostingView(rootView: rootView) diff --git a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift index fcac6b1..e24cc95 100644 --- a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift @@ -14,6 +14,7 @@ struct CompactMiniPlayerView: View, MiniPlayerViewProtocol { @State private var isShowingPlaybackControls = false @State var size = CGSize(width: 150, height: 150) + @Default(.miniPlayerScaleFactor) private var miniPlayerScaleFactor @Default(.miniPlayerBackground) private var miniPlayerBackground private var imageSize: CGFloat = 140.0 @@ -32,12 +33,12 @@ struct CompactMiniPlayerView: View, MiniPlayerViewProtocol { .padding(15) .padding(.bottom, 20) } else { - AlbumArtView(imageSize: self.imageSize) + AlbumArtView(imageSize: self.imageSize * miniPlayerScaleFactor.rawValue) .shadow(color: .black.opacity(0.2), radius: 4, x: 0, y: 2) .dragWindowWithClick() - PlaybackButtonsView(playButtonSize: 17.5, hideShuffleAndRepeat: true, spacing: 17.5) - .padding(15) + PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, hideShuffleAndRepeat: true, spacing: 17.5 * miniPlayerScaleFactor.rawValue) + .padding(15 * miniPlayerScaleFactor.rawValue) .background( VisualEffectView(material: .popover, blendingMode: .withinWindow) .overlay { @@ -49,7 +50,7 @@ struct CompactMiniPlayerView: View, MiniPlayerViewProtocol { .opacity(isShowingPlaybackControls ? 1 : 0) } } - .padding(7.5) + .padding(7.5 * miniPlayerScaleFactor.rawValue) .onHover { _ in withAnimation(.linear(duration: 0.2)) { self.isShowingPlaybackControls.toggle() @@ -69,9 +70,5 @@ struct CompactMiniPlayerView: View, MiniPlayerViewProtocol { } } ) - .overlay { - RoundedRectangle(cornerRadius: 10, style: .continuous) - .strokeBorder(.quaternary, lineWidth: 1) - } } } diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 272cf36..f64fe4e 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -14,6 +14,7 @@ struct MiniPlayerView: View, MiniPlayerViewProtocol { @State private var isShowingPlaybackControls = false @State var size = CGSize(width: 200, height: 150) + @Default(.miniPlayerScaleFactor) private var miniPlayerScaleFactor @Default(.miniPlayerBackground) private var miniPlayerBackground private var imageSize: CGFloat = 140.0 @@ -29,9 +30,9 @@ struct MiniPlayerView: View, MiniPlayerViewProtocol { .padding(15) .padding(.bottom, 20) } else { - HStack(spacing: 10) { + HStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { ZStack { - AlbumArtView(imageSize: self.imageSize) + AlbumArtView(imageSize: self.imageSize * miniPlayerScaleFactor.rawValue) .dragWindowWithClick() AddToFavoritesView() @@ -43,7 +44,7 @@ struct MiniPlayerView: View, MiniPlayerViewProtocol { } } - VStack(spacing: 10) { + VStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { Button(action: playerManager.openMusicApp) { VStack { Text(playerManager.track.title) @@ -65,14 +66,14 @@ struct MiniPlayerView: View, MiniPlayerViewProtocol { PlaybackPositionView() } - PlaybackButtonsView(playButtonSize: 17.5, spacing: 12.5) + PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, spacing: 12.5 * miniPlayerScaleFactor.rawValue) } - .frame(width: imageSize) // Both sides should be the same + .frame(width: imageSize * miniPlayerScaleFactor.rawValue) // Both sides should be the same .opacity(0.75) } } } - .padding(7.5) + .padding(7.5 * miniPlayerScaleFactor.rawValue) .overlay( NotificationView() ) @@ -87,9 +88,5 @@ struct MiniPlayerView: View, MiniPlayerViewProtocol { } } ) - .overlay { - RoundedRectangle(cornerRadius: 10, style: .continuous) - .strokeBorder(.quaternary, lineWidth: 1) - } } } diff --git a/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift new file mode 100644 index 0000000..48e5443 --- /dev/null +++ b/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift @@ -0,0 +1,87 @@ +// +// ContentView.swift +// Tuneful +// +// Created by Martin Fekete on 27/07/2023. +// + +import SwiftUI +import MediaPlayer +import Defaults + +struct VerticalMiniPlayerView: View, MiniPlayerViewProtocol { + @EnvironmentObject var playerManager: PlayerManager + @State private var isShowingPlaybackControls = false + @State var size = CGSize(width: 150, height: 300) + + @Default(.miniPlayerScaleFactor) private var miniPlayerScaleFactor + @Default(.miniPlayerBackground) private var miniPlayerBackground + + private var imageSize: CGFloat = 140.0 + + var body: some View { + ZStack { + if !playerManager.isRunning || playerManager.track.isEmpty() { + Text("Please open \(playerManager.name) to use Tuneful") + .foregroundColor(.primary.opacity(0.4)) + .font(.system(size: 14, weight: .regular)) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .multilineTextAlignment(.center) + .padding(15) + .padding(.bottom, 20) + } else { + VStack(spacing: 10) { + ZStack { + AlbumArtView(imageSize: self.imageSize * miniPlayerScaleFactor.rawValue) + .dragWindowWithClick() + + AddToFavoritesView() + .opacity(isShowingPlaybackControls ? 1 : 0) + } + .onHover { _ in + withAnimation(.linear(duration: 0.1)) { + self.isShowingPlaybackControls.toggle() + } + } + + VStack(spacing: 10) { + PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, hideShuffleAndRepeat: true, spacing: 17.5 * miniPlayerScaleFactor.rawValue) + + Button(action: playerManager.openMusicApp) { + VStack { + Text(playerManager.track.title) + .font(.body) + .bold() + .lineLimit(1) + + Text(playerManager.track.artist) + .font(.body) + .lineLimit(1) + } + .tapAnimation() { + self.playerManager.openMusicApp() + } + } + .pressButtonStyle() + } + .opacity(0.75) + } + } + } + .padding(7.5 * miniPlayerScaleFactor.rawValue) + .overlay( + NotificationView() + ) + .background( + GeometryReader { proxy in + ZStack { + VisualEffectView(material: .popover, blendingMode: .behindWindow) + BackgroundView(background: miniPlayerBackground, yOffset: -80) + } + .onAppear { + size = proxy.size + } + } + ) + } +} diff --git a/Tuneful/Views/Settings/AppearanceSettingsView.swift b/Tuneful/Views/Settings/AppearanceSettingsView.swift index b78b57e..7310733 100644 --- a/Tuneful/Views/Settings/AppearanceSettingsView.swift +++ b/Tuneful/Views/Settings/AppearanceSettingsView.swift @@ -19,6 +19,7 @@ struct AppearanceSettingsView: View { @Default(.miniPlayerWindowOnTop) private var miniPlayerWindowOnTop @Default(.miniPlayerType) private var miniPlayerType @Default(.miniPlayerBackground) private var miniPlayerBackground + @Default(.miniPlayerScaleFactor) private var miniPlayerScaleFactor var body: some View { Settings.Container(contentWidth: 400) { @@ -125,6 +126,26 @@ struct AppearanceSettingsView: View { .disabled(!showPlayerWindow) } .padding(8) + + HStack { + Text("Size") + .foregroundStyle(showPlayerWindow ? .primary : .tertiary) + + Spacer() + + Picker("", selection: $miniPlayerScaleFactor) { + ForEach(MiniPlayerScaleFactor.allCases, id: \.self) { value in + Text(value.localizedName).tag(value) + } + } + .pickerStyle(.segmented) + .onChange(of: miniPlayerScaleFactor) { _ in + NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) + } + .frame(width: 150) + .disabled(!showPlayerWindow) + } + .padding(8) } } } diff --git a/Tuneful/Windows/MiniPlayerWindow.swift b/Tuneful/Windows/MiniPlayerWindow.swift index 1efe6a5..4bb0d59 100644 --- a/Tuneful/Windows/MiniPlayerWindow.swift +++ b/Tuneful/Windows/MiniPlayerWindow.swift @@ -25,7 +25,7 @@ class MiniPlayerWindow: NSWindow { self.collectionBehavior = [.canJoinAllSpaces, .fullScreenNone] self.isReleasedWhenClosed = false self.backgroundColor = NSColor.clear - self.hasShadow = true + self.hasShadow = false NotificationCenter.default.addObserver( self, @@ -46,8 +46,11 @@ class MiniPlayerWindow: NSWindow { .addItem(withTitle: "Full", action: #selector(setFullPlayer(_:)), keyEquivalent: "") .state = Defaults[.miniPlayerType] == .full ? .on : .off customizeMenu - .addItem(withTitle: "Minimal", action: #selector(setAlbumArtPlayer(_:)), keyEquivalent: "") + .addItem(withTitle: "Minimal", action: #selector(setCompactMiniPlayer(_:)), keyEquivalent: "") .state = Defaults[.miniPlayerType] == .minimal ? .on : .off + customizeMenu + .addItem(withTitle: "Vertical", action: #selector(setVerticalMiniPlayer(_:)), keyEquivalent: "") + .state = Defaults[.miniPlayerType] == .vertical ? .on : .off customizeMenuItem.submenu = customizeMenu menu.addItem(customizeMenuItem) @@ -65,11 +68,16 @@ class MiniPlayerWindow: NSWindow { NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) } - @objc func setAlbumArtPlayer(_ sender: Any) { + @objc func setCompactMiniPlayer(_ sender: Any) { Defaults[.miniPlayerType] = .minimal NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) } + @objc func setVerticalMiniPlayer(_ sender: Any) { + Defaults[.miniPlayerType] = .vertical + NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) + } + @objc func hideWindow(_ sender: Any?) { NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayer), to: nil, from: nil) } From 4a457710bc32704d245e03efaacdc361a0be2095 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sat, 21 Dec 2024 23:20:42 +0100 Subject: [PATCH 37/73] More refactoring + UI details --- Tuneful.xcodeproj/project.pbxproj | 8 +-- Tuneful/Models/MiniPlayerType.swift | 16 ++++-- .../MiniPlayer/CompactMiniPlayerView.swift | 2 +- ...w.swift => HorizontalMiniPlayerView.swift} | 4 +- .../MiniPlayer/VerticalMiniPlayerView.swift | 4 +- Tuneful/Windows/MiniPlayerWindow.swift | 56 ++++++++++++++----- 6 files changed, 61 insertions(+), 29 deletions(-) rename Tuneful/Views/MiniPlayer/{MiniPlayerView.swift => HorizontalMiniPlayerView.swift} (96%) diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index c5a490a..329470b 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -48,7 +48,7 @@ FE5B56EC2D0386EC0077527C /* Defaults+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE5B56EA2D0386EC0077527C /* Defaults+Extensions.swift */; }; FE5B56F22D059B4F0077527C /* BackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE5B56F12D059B350077527C /* BackgroundView.swift */; }; FE6BFCE72A72F37800D3321F /* Tuneful.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE6BFCE62A72F37800D3321F /* Tuneful.swift */; }; - FE6BFCE92A72F37800D3321F /* MiniPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE6BFCE82A72F37800D3321F /* MiniPlayerView.swift */; }; + FE6BFCE92A72F37800D3321F /* HorizontalMiniPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE6BFCE82A72F37800D3321F /* HorizontalMiniPlayerView.swift */; }; FE6BFCEB2A72F37900D3321F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FE6BFCEA2A72F37900D3321F /* Assets.xcassets */; }; FE6BFCEE2A72F37900D3321F /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FE6BFCED2A72F37900D3321F /* Preview Assets.xcassets */; }; FE6BFCFB2A73A7CA00D3321F /* SupportedApps.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE6BFCFA2A73A7CA00D3321F /* SupportedApps.swift */; }; @@ -153,7 +153,7 @@ FE5B56F12D059B350077527C /* BackgroundView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundView.swift; sourceTree = ""; }; FE6BFCE32A72F37800D3321F /* Tuneful.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Tuneful.app; sourceTree = BUILT_PRODUCTS_DIR; }; FE6BFCE62A72F37800D3321F /* Tuneful.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tuneful.swift; sourceTree = ""; }; - FE6BFCE82A72F37800D3321F /* MiniPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerView.swift; sourceTree = ""; }; + FE6BFCE82A72F37800D3321F /* HorizontalMiniPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HorizontalMiniPlayerView.swift; sourceTree = ""; }; FE6BFCEA2A72F37900D3321F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; FE6BFCED2A72F37900D3321F /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; FE6BFCEF2A72F37900D3321F /* Tuneful.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Tuneful.entitlements; sourceTree = ""; }; @@ -449,7 +449,7 @@ isa = PBXGroup; children = ( FEBA35E72D172B760081A3F2 /* MiniPlayerViewProtocol.swift */, - FE6BFCE82A72F37800D3321F /* MiniPlayerView.swift */, + FE6BFCE82A72F37800D3321F /* HorizontalMiniPlayerView.swift */, FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */, FEE486E42B5D174F00AB712F /* CompactMiniPlayerView.swift */, ); @@ -635,7 +635,7 @@ FE6BFD082A73AE5E00D3321F /* Track.swift in Sources */, FE2AEE2E2A8FBE3200E8D576 /* MiniPlayerWindow.swift in Sources */, FE4C92172B61459F00FF79BE /* String+Extension.swift in Sources */, - FE6BFCE92A72F37800D3321F /* MiniPlayerView.swift in Sources */, + FE6BFCE92A72F37800D3321F /* HorizontalMiniPlayerView.swift in Sources */, FE5B56F22D059B4F0077527C /* BackgroundView.swift in Sources */, FEFFE5492B488951000887B5 /* StatusBarItemManager.swift in Sources */, FE2AEE322A8FE08500E8D576 /* CustomSliderView.swift in Sources */, diff --git a/Tuneful/Models/MiniPlayerType.swift b/Tuneful/Models/MiniPlayerType.swift index 4432bc3..ac256c9 100644 --- a/Tuneful/Models/MiniPlayerType.swift +++ b/Tuneful/Models/MiniPlayerType.swift @@ -9,27 +9,33 @@ import SwiftUI import Defaults enum MiniPlayerType: String, Equatable, CaseIterable, Defaults.Serializable { - case full = "Full" case minimal = "Minimal" + case horizontal = "Full" case vertical = "Vertical" - var localizedName: LocalizedStringKey { LocalizedStringKey(rawValue) } + var localizedName: String { + switch self { + case .minimal: "Minimal" + case .horizontal: "Horizontal" + case .vertical: "Vertical" + } + } @ViewBuilder var view: some View { switch self { - case .full: MiniPlayerView() case .minimal: CompactMiniPlayerView() + case .horizontal: HorizontalMiniPlayerView() case .vertical: VerticalMiniPlayerView() } } var size: CGSize { switch self { - case .full: - return MiniPlayerView().size case .minimal: return CompactMiniPlayerView().size + case .horizontal: + return HorizontalMiniPlayerView().size case .vertical: return VerticalMiniPlayerView().size } diff --git a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift index e24cc95..63ae602 100644 --- a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift @@ -50,7 +50,7 @@ struct CompactMiniPlayerView: View, MiniPlayerViewProtocol { .opacity(isShowingPlaybackControls ? 1 : 0) } } - .padding(7.5 * miniPlayerScaleFactor.rawValue) + .padding(10 * miniPlayerScaleFactor.rawValue) .onHover { _ in withAnimation(.linear(duration: 0.2)) { self.isShowingPlaybackControls.toggle() diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift similarity index 96% rename from Tuneful/Views/MiniPlayer/MiniPlayerView.swift rename to Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift index f64fe4e..c05f346 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift @@ -9,7 +9,7 @@ import SwiftUI import MediaPlayer import Defaults -struct MiniPlayerView: View, MiniPlayerViewProtocol { +struct HorizontalMiniPlayerView: View, MiniPlayerViewProtocol { @EnvironmentObject var playerManager: PlayerManager @State private var isShowingPlaybackControls = false @State var size = CGSize(width: 200, height: 150) @@ -73,7 +73,7 @@ struct MiniPlayerView: View, MiniPlayerViewProtocol { } } } - .padding(7.5 * miniPlayerScaleFactor.rawValue) + .padding(10 * miniPlayerScaleFactor.rawValue) .overlay( NotificationView() ) diff --git a/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift index 48e5443..086e92e 100644 --- a/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift @@ -30,7 +30,7 @@ struct VerticalMiniPlayerView: View, MiniPlayerViewProtocol { .padding(15) .padding(.bottom, 20) } else { - VStack(spacing: 10) { + VStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { ZStack { AlbumArtView(imageSize: self.imageSize * miniPlayerScaleFactor.rawValue) .dragWindowWithClick() @@ -44,7 +44,7 @@ struct VerticalMiniPlayerView: View, MiniPlayerViewProtocol { } } - VStack(spacing: 10) { + VStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, hideShuffleAndRepeat: true, spacing: 17.5 * miniPlayerScaleFactor.rawValue) Button(action: playerManager.openMusicApp) { diff --git a/Tuneful/Windows/MiniPlayerWindow.swift b/Tuneful/Windows/MiniPlayerWindow.swift index 4bb0d59..efd247e 100644 --- a/Tuneful/Windows/MiniPlayerWindow.swift +++ b/Tuneful/Windows/MiniPlayerWindow.swift @@ -35,36 +35,50 @@ class MiniPlayerWindow: NSWindow { ) } + override var canBecomeKey: Bool { + return true + } + override func rightMouseDown(with event: NSEvent) { let menu = NSMenu() menu.addItem(withTitle: "Hide window", action: #selector(hideWindow(_:)), keyEquivalent: "") - let customizeMenuItem = NSMenuItem(title: "Window style", action: nil, keyEquivalent: "") - let customizeMenu = NSMenu() - customizeMenu - .addItem(withTitle: "Full", action: #selector(setFullPlayer(_:)), keyEquivalent: "") - .state = Defaults[.miniPlayerType] == .full ? .on : .off - customizeMenu + let windowStyleMenuItem = NSMenuItem(title: "Window style", action: nil, keyEquivalent: "") + let windowMenu = NSMenu() + windowMenu .addItem(withTitle: "Minimal", action: #selector(setCompactMiniPlayer(_:)), keyEquivalent: "") .state = Defaults[.miniPlayerType] == .minimal ? .on : .off - customizeMenu + windowMenu + .addItem(withTitle: "Horizontal", action: #selector(setHorizontalMiniPlayer(_:)), keyEquivalent: "") + .state = Defaults[.miniPlayerType] == .horizontal ? .on : .off + windowMenu .addItem(withTitle: "Vertical", action: #selector(setVerticalMiniPlayer(_:)), keyEquivalent: "") .state = Defaults[.miniPlayerType] == .vertical ? .on : .off - customizeMenuItem.submenu = customizeMenu + windowStyleMenuItem.submenu = windowMenu + menu.addItem(windowStyleMenuItem) + + let backgroundStyleMenuItem = NSMenuItem(title: "Background style", action: nil, keyEquivalent: "") + let backgroundMenu = NSMenu() + backgroundMenu + .addItem(withTitle: "Tint", action: #selector(setTintBg(_:)), keyEquivalent: "") + .state = Defaults[.miniPlayerBackground] == .glow ? .on : .off + backgroundMenu + .addItem(withTitle: "Transparent", action: #selector(setTransparentBg(_:)), keyEquivalent: "") + .state = Defaults[.miniPlayerBackground] == .transparent ? .on : .off + backgroundMenu + .addItem(withTitle: "Album art", action: #selector(setAlbumArtBg(_:)), keyEquivalent: "") + .state = Defaults[.miniPlayerBackground] == .albumArt ? .on : .off + backgroundStyleMenuItem.submenu = backgroundMenu + menu.addItem(backgroundStyleMenuItem) - menu.addItem(customizeMenuItem) menu.addItem(withTitle: "Settings...", action: #selector(settings(_:)), keyEquivalent: "") NSMenu.popUpContextMenu(menu, with: event, for: self.contentView!) } - - override var canBecomeKey: Bool { - return true - } - @objc func setFullPlayer(_ sender: Any) { - Defaults[.miniPlayerType] = .full + @objc func setHorizontalMiniPlayer(_ sender: Any) { + Defaults[.miniPlayerType] = .horizontal NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) } @@ -78,6 +92,18 @@ class MiniPlayerWindow: NSWindow { NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) } + @objc func setTintBg(_ sender: Any) { + Defaults[.miniPlayerBackground] = .glow + } + + @objc func setAlbumArtBg(_ sender: Any) { + Defaults[.miniPlayerBackground] = .albumArt + } + + @objc func setTransparentBg(_ sender: Any) { + Defaults[.miniPlayerBackground] = .transparent + } + @objc func hideWindow(_ sender: Any?) { NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayer), to: nil, from: nil) } From 124a14ccc28279587c9970b14808a501f656088d Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sat, 21 Dec 2024 23:33:20 +0100 Subject: [PATCH 38/73] Player relaunched after quit when mini player was opened --- Tuneful/Defaults/Defaults+Extensions.swift | 2 +- Tuneful/Managers/PlayerManager.swift | 3 ++- Tuneful/Models/MiniPlayerScaleFactor.swift | 4 ++-- Tuneful/Views/Settings/AppearanceSettingsView.swift | 1 - release_notes.md | 6 ++++-- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Tuneful/Defaults/Defaults+Extensions.swift b/Tuneful/Defaults/Defaults+Extensions.swift index 64d83e9..51085a8 100644 --- a/Tuneful/Defaults/Defaults+Extensions.swift +++ b/Tuneful/Defaults/Defaults+Extensions.swift @@ -27,7 +27,7 @@ extension Defaults.Keys { static let notificationDuration = Key("notificationDuration", default: 2) // Mini player - static let miniPlayerScaleFactor = Key("miniPlayerScaleFactor", default: .normal) + static let miniPlayerScaleFactor = Key("miniPlayerScaleFactor", default: .regular) static let showPlayerWindow = Key("showPlayerWindow", default: true) static let miniPlayerType = Key("miniPlayerType", default: .minimal) static let miniPlayerWindowOnTop = Key("miniPlayerWindowOnTop", default: true) diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index 715685a..6629ca8 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -353,7 +353,7 @@ public class PlayerManager: ObservableObject { // MARK: Seeker func getCurrentSeekerPosition() { - if !isRunning { return } + if !musicApp.isRunning() { return } if isDraggingPlaybackPositionView { return } musicApp.refreshInfo { @@ -403,6 +403,7 @@ public class PlayerManager: ObservableObject { // MARK: Volume func getVolume() { + if !musicApp.isRunning() { return } volume = musicApp.volume } diff --git a/Tuneful/Models/MiniPlayerScaleFactor.swift b/Tuneful/Models/MiniPlayerScaleFactor.swift index efe8b1f..41bb8fd 100644 --- a/Tuneful/Models/MiniPlayerScaleFactor.swift +++ b/Tuneful/Models/MiniPlayerScaleFactor.swift @@ -10,13 +10,13 @@ import SwiftUICore enum MiniPlayerScaleFactor: Double, Equatable, CaseIterable, Defaults.Serializable { case small = 0.75 - case normal = 1 + case regular = 1 case large = 1.25 var localizedName: String { switch self { case .small: return "Small" - case .normal: return "Normal" + case .regular: return "Regular" case .large: return "Large" } } diff --git a/Tuneful/Views/Settings/AppearanceSettingsView.swift b/Tuneful/Views/Settings/AppearanceSettingsView.swift index 7310733..aeda366 100644 --- a/Tuneful/Views/Settings/AppearanceSettingsView.swift +++ b/Tuneful/Views/Settings/AppearanceSettingsView.swift @@ -138,7 +138,6 @@ struct AppearanceSettingsView: View { Text(value.localizedName).tag(value) } } - .pickerStyle(.segmented) .onChange(of: miniPlayerScaleFactor) { _ in NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) } diff --git a/release_notes.md b/release_notes.md index b3dd513..f127944 100644 --- a/release_notes.md +++ b/release_notes.md @@ -1,10 +1,12 @@ -# 1.8.0 - Notch integration, sleeker UI and others +# 2.0.0 - Notch integration, new mini player, sleeker UI and much more - New notch integration now allows you to control the music from notch. For non-notch Macs, this is available on hovering over new song notification - New music slider which now looks and feels native - New popover and mini player background type - New UI animations so the app feels more fluid -- Enhanced onboarding +- New horizontal mini player type +- New ability to resize mini player to 3 sizes - regular, small, and large +- Enhanced onboarding experience - Refactored the logic that fetches song information which makes the app feel snappier - Fixed the bug when Spotify was opened in the background even if killed by the user - Fixed the bug when mini player floating preference was ignored on app restart From 2cfda8545452911d8e82f949c71b9def3df08459 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 22 Dec 2024 14:52:45 +0100 Subject: [PATCH 39/73] Mini player font resizing based on scale factor --- Tuneful.xcodeproj/project.pbxproj | 8 ++++---- Tuneful/Models/MiniPlayerScaleFactor.swift | 8 ++++++++ .../{Helper.swift => PermissionHelper.swift} | 2 +- .../Views/MiniPlayer/VerticalMiniPlayerView.swift | 13 +++++++++---- Tuneful/Views/OnboardingView.swift | 2 +- Tuneful/Views/Settings/GeneralSettingsView.swift | 2 +- 6 files changed, 24 insertions(+), 11 deletions(-) rename Tuneful/Utilities/{Helper.swift => PermissionHelper.swift} (97%) diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 329470b..b4b6814 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -28,7 +28,7 @@ FE2AEE322A8FE08500E8D576 /* CustomSliderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE2AEE312A8FE08500E8D576 /* CustomSliderView.swift */; }; FE2AEE342A8FE0F200E8D576 /* Settings+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE2AEE332A8FE0F200E8D576 /* Settings+Extension.swift */; }; FE2AEE392A93A50900E8D576 /* PressButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE2AEE382A93A50900E8D576 /* PressButtonStyle.swift */; }; - FE3189F82A7C3B1A006B2D59 /* Helper.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189F72A7C3B1A006B2D59 /* Helper.swift */; }; + FE3189F82A7C3B1A006B2D59 /* PermissionHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189F72A7C3B1A006B2D59 /* PermissionHelper.swift */; }; FE3189FA2A7C3B8C006B2D59 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189F92A7C3B8C006B2D59 /* OnboardingView.swift */; }; FE3189FD2A7C3D01006B2D59 /* OnboardingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */; }; FE31AED02CF50708002818ED /* PlaybackPositionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */; }; @@ -134,7 +134,7 @@ FE2AEE312A8FE08500E8D576 /* CustomSliderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomSliderView.swift; sourceTree = ""; }; FE2AEE332A8FE0F200E8D576 /* Settings+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Settings+Extension.swift"; sourceTree = ""; }; FE2AEE382A93A50900E8D576 /* PressButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PressButtonStyle.swift; sourceTree = ""; }; - FE3189F72A7C3B1A006B2D59 /* Helper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Helper.swift; sourceTree = ""; }; + FE3189F72A7C3B1A006B2D59 /* PermissionHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionHelper.swift; sourceTree = ""; }; FE3189F92A7C3B8C006B2D59 /* OnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = ""; }; FE3189FC2A7C3D01006B2D59 /* OnboardingWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingWindow.swift; sourceTree = ""; }; FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackPositionView.swift; sourceTree = ""; }; @@ -414,7 +414,7 @@ children = ( FE7B09D12CB997F300FBB6F8 /* AppIcons.swift */, FE6BFD052A73ACFD00D3321F /* Constants.swift */, - FE3189F72A7C3B1A006B2D59 /* Helper.swift */, + FE3189F72A7C3B1A006B2D59 /* PermissionHelper.swift */, ); path = Utilities; sourceTree = ""; @@ -591,7 +591,7 @@ FEF0660C2B51907200A514F2 /* KeyboardShortcutSettingsView.swift in Sources */, FEA6FB232B04169B00DACC43 /* AudioDevice.swift in Sources */, FE08CE192CFCC76E00F047CB /* AppearanceSettingsView.swift in Sources */, - FE3189F82A7C3B1A006B2D59 /* Helper.swift in Sources */, + FE3189F82A7C3B1A006B2D59 /* PermissionHelper.swift in Sources */, FE2368A02B62EB7400B43D8B /* ShowStatusBarTrackInfo.swift in Sources */, FE2AEE392A93A50900E8D576 /* PressButtonStyle.swift in Sources */, FEE486E52B5D174F00AB712F /* CompactMiniPlayerView.swift in Sources */, diff --git a/Tuneful/Models/MiniPlayerScaleFactor.swift b/Tuneful/Models/MiniPlayerScaleFactor.swift index 41bb8fd..cbd1c8b 100644 --- a/Tuneful/Models/MiniPlayerScaleFactor.swift +++ b/Tuneful/Models/MiniPlayerScaleFactor.swift @@ -20,4 +20,12 @@ enum MiniPlayerScaleFactor: Double, Equatable, CaseIterable, Defaults.Serializab case .large: return "Large" } } + + var trackFontSize: Font { + switch self { + case .small: return .system(size: 10) + case .regular: return .system(size: 13) + case .large: return .system(size: 16) + } + } } diff --git a/Tuneful/Utilities/Helper.swift b/Tuneful/Utilities/PermissionHelper.swift similarity index 97% rename from Tuneful/Utilities/Helper.swift rename to Tuneful/Utilities/PermissionHelper.swift index 44c3ce6..d51748b 100644 --- a/Tuneful/Utilities/Helper.swift +++ b/Tuneful/Utilities/PermissionHelper.swift @@ -7,7 +7,7 @@ import Foundation -class Helper { +class PermissionHelper { enum PermissionStatus { case closed, granted, notPrompted, denied } diff --git a/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift index 086e92e..9405c2c 100644 --- a/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift @@ -32,7 +32,7 @@ struct VerticalMiniPlayerView: View, MiniPlayerViewProtocol { } else { VStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { ZStack { - AlbumArtView(imageSize: self.imageSize * miniPlayerScaleFactor.rawValue) + AlbumArtView(imageSize: imageSize * miniPlayerScaleFactor.rawValue) .dragWindowWithClick() AddToFavoritesView() @@ -50,12 +50,12 @@ struct VerticalMiniPlayerView: View, MiniPlayerViewProtocol { Button(action: playerManager.openMusicApp) { VStack { Text(playerManager.track.title) - .font(.body) + .font(miniPlayerScaleFactor.trackFontSize) .bold() .lineLimit(1) Text(playerManager.track.artist) - .font(.body) + .font(miniPlayerScaleFactor.trackFontSize) .lineLimit(1) } .tapAnimation() { @@ -63,6 +63,7 @@ struct VerticalMiniPlayerView: View, MiniPlayerViewProtocol { } } .pressButtonStyle() + .frame(maxWidth: self.imageSize * miniPlayerScaleFactor.rawValue) } .opacity(0.75) } @@ -76,7 +77,11 @@ struct VerticalMiniPlayerView: View, MiniPlayerViewProtocol { GeometryReader { proxy in ZStack { VisualEffectView(material: .popover, blendingMode: .behindWindow) - BackgroundView(background: miniPlayerBackground, yOffset: -80) + BackgroundView( + background: miniPlayerBackground, + albumArtSize: imageSize * miniPlayerScaleFactor.rawValue, + yOffset: -80 * miniPlayerScaleFactor.rawValue + ) } .onAppear { size = proxy.size diff --git a/Tuneful/Views/OnboardingView.swift b/Tuneful/Views/OnboardingView.swift index 8c10a5c..02ba0b6 100644 --- a/Tuneful/Views/OnboardingView.swift +++ b/Tuneful/Views/OnboardingView.swift @@ -178,7 +178,7 @@ struct Details: View { .multilineTextAlignment(.center) Button("Enable permissions") { - let consent = Helper.promptUserForConsent(for: connectedApp == .spotify ? Constants.Spotify.bundleID : Constants.AppleMusic.bundleID) + let consent = PermissionHelper.promptUserForConsent(for: connectedApp == .spotify ? Constants.Spotify.bundleID : Constants.AppleMusic.bundleID) switch consent { case .granted: alertTitle = Text("You are all set up!") diff --git a/Tuneful/Views/Settings/GeneralSettingsView.swift b/Tuneful/Views/Settings/GeneralSettingsView.swift index 3cd3e91..3256421 100644 --- a/Tuneful/Views/Settings/GeneralSettingsView.swift +++ b/Tuneful/Views/Settings/GeneralSettingsView.swift @@ -60,7 +60,7 @@ struct GeneralSettingsView: View { .frame(width: 150) Button { - let consent = Helper.promptUserForConsent(for: connectedApp == .spotify ? Constants.Spotify.bundleID : Constants.AppleMusic.bundleID) + let consent = PermissionHelper.promptUserForConsent(for: connectedApp == .spotify ? Constants.Spotify.bundleID : Constants.AppleMusic.bundleID) switch consent { case .closed: alertTitle = Text("\(Text(connectedApp.localizedName)) is not opened") From 9c40145632cc65b8a2c9ccd9daa881bc0b219257 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 22 Dec 2024 16:29:18 +0100 Subject: [PATCH 40/73] Miniplayer optimisations and more refactoring --- Tuneful.xcodeproj/project.pbxproj | 8 +- Tuneful/Models/MiniPlayerType.swift | 11 -- Tuneful/Tuneful.swift | 39 +++---- .../MiniPlayer/CompactMiniPlayerView.swift | 59 +++------- .../MiniPlayer/HorizontalMiniPlayerView.swift | 101 +++++++----------- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 60 +++++++++++ .../MiniPlayer/MiniPlayerViewProtocol.swift | 12 --- .../MiniPlayer/VerticalMiniPlayerView.swift | 97 ++++++----------- .../Settings/AppearanceSettingsView.swift | 3 - Tuneful/Windows/MiniPlayerWindow.swift | 5 +- 10 files changed, 161 insertions(+), 234 deletions(-) create mode 100644 Tuneful/Views/MiniPlayer/MiniPlayerView.swift delete mode 100644 Tuneful/Views/MiniPlayer/MiniPlayerViewProtocol.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index b4b6814..0e2d3b0 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -64,13 +64,13 @@ FE79554E2CA34BF0002026AA /* Logger+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE79554D2CA34BE6002026AA /* Logger+Extension.swift */; }; FE7B09D22CB997F600FBB6F8 /* AppIcons.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE7B09D12CB997F300FBB6F8 /* AppIcons.swift */; }; FE7C5BDA2AC050E000D1C253 /* AlbumArtView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE7C5BD92AC050E000D1C253 /* AlbumArtView.swift */; }; + FE81179B2D1851400038DC27 /* MiniPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE81179A2D18513B0038DC27 /* MiniPlayerView.swift */; }; FE8CE1542C1E03F30053FDEA /* CompactPopoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8CE1532C1E03F30053FDEA /* CompactPopoverView.swift */; }; FE8CE1582C1E0B140053FDEA /* PopoverType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8CE1572C1E0B140053FDEA /* PopoverType.swift */; }; FE9FCF212CAEC0290015DF4D /* PlayerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF202CAEC0260015DF4D /* PlayerProtocol.swift */; }; FE9FCF232CAEC0C90015DF4D /* SpotifyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF222CAEC0C50015DF4D /* SpotifyManager.swift */; }; FE9FCF252CAEC2780015DF4D /* AppleMusicManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */; }; FEA6FB232B04169B00DACC43 /* AudioDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA6FB222B04169B00DACC43 /* AudioDevice.swift */; }; - FEBA35E82D172B7F0081A3F2 /* MiniPlayerViewProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35E72D172B760081A3F2 /* MiniPlayerViewProtocol.swift */; }; FEBA35EA2D17566E0081A3F2 /* VerticalMiniPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */; }; FEBA35EC2D1766790081A3F2 /* MiniPlayerScaleFactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */; }; FEBA3D022B5824D700E25A67 /* BackgroundType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA3D012B5824D700E25A67 /* BackgroundType.swift */; }; @@ -170,6 +170,7 @@ FE79554D2CA34BE6002026AA /* Logger+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Logger+Extension.swift"; sourceTree = ""; }; FE7B09D12CB997F300FBB6F8 /* AppIcons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppIcons.swift; sourceTree = ""; }; FE7C5BD92AC050E000D1C253 /* AlbumArtView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlbumArtView.swift; sourceTree = ""; }; + FE81179A2D18513B0038DC27 /* MiniPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerView.swift; sourceTree = ""; }; FE8CE1532C1E03F30053FDEA /* CompactPopoverView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactPopoverView.swift; sourceTree = ""; }; FE8CE1572C1E0B140053FDEA /* PopoverType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverType.swift; sourceTree = ""; }; FE9781822C0CC1A0007217A1 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; @@ -178,7 +179,6 @@ FE9FCF222CAEC0C50015DF4D /* SpotifyManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpotifyManager.swift; sourceTree = ""; }; FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppleMusicManager.swift; sourceTree = ""; }; FEA6FB222B04169B00DACC43 /* AudioDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioDevice.swift; sourceTree = ""; }; - FEBA35E72D172B760081A3F2 /* MiniPlayerViewProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerViewProtocol.swift; sourceTree = ""; }; FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerticalMiniPlayerView.swift; sourceTree = ""; }; FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerScaleFactor.swift; sourceTree = ""; }; FEBA3D012B5824D700E25A67 /* BackgroundType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundType.swift; sourceTree = ""; }; @@ -448,7 +448,7 @@ FEE486E32B5D173A00AB712F /* MiniPlayer */ = { isa = PBXGroup; children = ( - FEBA35E72D172B760081A3F2 /* MiniPlayerViewProtocol.swift */, + FE81179A2D18513B0038DC27 /* MiniPlayerView.swift */, FE6BFCE82A72F37800D3321F /* HorizontalMiniPlayerView.swift */, FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */, FEE486E42B5D174F00AB712F /* CompactMiniPlayerView.swift */, @@ -599,7 +599,6 @@ FEFFE54D2B49EF97000887B5 /* MenuBarSettingsView.swift in Sources */, FEF066112B51914900A514F2 /* KeyboardShortcuts+Extension.swift in Sources */, FE1A62F02CBBE3F4001C13CE /* FetchedAlbumArt.swift in Sources */, - FEBA35E82D172B7F0081A3F2 /* MiniPlayerViewProtocol.swift in Sources */, FE445FE42A977D0E001CA55A /* Double+Extension.swift in Sources */, FEBA35EA2D17566E0081A3F2 /* VerticalMiniPlayerView.swift in Sources */, FE37A0332A829623006FBA5B /* MusicControl.swift in Sources */, @@ -644,6 +643,7 @@ FE4808F12B51BA400077BDAA /* AboutSettingsView.swift in Sources */, FEE486E92B5D677400AB712F /* MiniPlayerType.swift in Sources */, FE7C5BDA2AC050E000D1C253 /* AlbumArtView.swift in Sources */, + FE81179B2D1851400038DC27 /* MiniPlayerView.swift in Sources */, FEFFE5552B4FDF96000887B5 /* CGFloat+Extension.swift in Sources */, FE6BFD0A2A73B23700D3321F /* UserDefaults+Extension.swift in Sources */, FE6BFD062A73ACFD00D3321F /* Constants.swift in Sources */, diff --git a/Tuneful/Models/MiniPlayerType.swift b/Tuneful/Models/MiniPlayerType.swift index ac256c9..87c9d1d 100644 --- a/Tuneful/Models/MiniPlayerType.swift +++ b/Tuneful/Models/MiniPlayerType.swift @@ -29,16 +29,5 @@ enum MiniPlayerType: String, Equatable, CaseIterable, Defaults.Serializable { case .vertical: VerticalMiniPlayerView() } } - - var size: CGSize { - switch self { - case .minimal: - return CompactMiniPlayerView().size - case .horizontal: - return HorizontalMiniPlayerView().size - case .vertical: - return VerticalMiniPlayerView().size - } - } } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index d271704..3304326 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -399,19 +399,24 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // MARK: Mini player @objc func setupMiniPlayer() { - let windowPosition = miniPlayerWindow.frame.origin - - setupMiniPlayerWindow( - position: windowPosition, - size: Defaults[.miniPlayerType].size, - view: Defaults[.miniPlayerType].view + let windowFrame = miniPlayerWindow.frame + let windowPosition = windowFrame.origin + let windowSize = windowFrame.size + + miniPlayerWindow.setFrame( + NSRect(origin: windowPosition, size: windowSize), + display: true, + animate: false ) + let rootView = MiniPlayerView().cornerRadius(15).environmentObject(self.playerManager) + miniPlayerWindow.contentView = NSHostingView(rootView: rootView) + toggleMiniPlayerWindowLevel() + miniPlayerWindow.makeKeyAndOrderFront(nil) NSApplication.shared.activate(ignoringOtherApps: true) playerManager.timerStartSignal.send() - if !Defaults[.showPlayerWindow] { playerManager.timerStopSignal.send() miniPlayerWindow.close() @@ -425,27 +430,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { self.miniPlayerWindow.level = .normal } } - - private func setupMiniPlayerWindow(position: CGPoint, size: CGSize, view: Content) { - let currentFrame = self.miniPlayerWindow.frame - let newPosition = NSPoint( - x: position.x, - y: position.y + (currentFrame.height - size.height) - ) - - self.miniPlayerWindow.setFrame( - NSRect(origin: newPosition, size: size), - display: true, - animate: false - ) - - let rootView = view.cornerRadius(15).environmentObject(self.playerManager) - let miniPlayerView = NSHostingView(rootView: rootView) - miniPlayerWindow.contentView = miniPlayerView - toggleMiniPlayerWindowLevel() - } - // MARK: New settings @objc func openNewSettings() { diff --git a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift index 63ae602..8cd2f1c 100644 --- a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift @@ -6,13 +6,11 @@ // import SwiftUI -import MediaPlayer import Defaults -struct CompactMiniPlayerView: View, MiniPlayerViewProtocol { +struct CompactMiniPlayerView: View { @EnvironmentObject var playerManager: PlayerManager @State private var isShowingPlaybackControls = false - @State var size = CGSize(width: 150, height: 150) @Default(.miniPlayerScaleFactor) private var miniPlayerScaleFactor @Default(.miniPlayerBackground) private var miniPlayerBackground @@ -24,51 +22,26 @@ struct CompactMiniPlayerView: View, MiniPlayerViewProtocol { var body: some View { ZStack { - if !playerManager.isRunning || playerManager.track.isEmpty() { - Text("Please open \(playerManager.name) to use Tuneful") - .foregroundColor(.primary.opacity(0.4)) - .font(.system(size: 14, weight: .regular)) - .frame(maxWidth: .infinity, maxHeight: .infinity) - .multilineTextAlignment(.center) - .padding(15) - .padding(.bottom, 20) - } else { - AlbumArtView(imageSize: self.imageSize * miniPlayerScaleFactor.rawValue) - .shadow(color: .black.opacity(0.2), radius: 4, x: 0, y: 2) - .dragWindowWithClick() - - PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, hideShuffleAndRepeat: true, spacing: 17.5 * miniPlayerScaleFactor.rawValue) - .padding(15 * miniPlayerScaleFactor.rawValue) - .background( - VisualEffectView(material: .popover, blendingMode: .withinWindow) - .overlay { - RoundedRectangle(cornerRadius: cornerRadius, style: .continuous) - .strokeBorder(.quaternary, lineWidth: 1) - } - ) - .cornerRadius(cornerRadius) - .opacity(isShowingPlaybackControls ? 1 : 0) - } + AlbumArtView(imageSize: self.imageSize * miniPlayerScaleFactor.rawValue) + .shadow(color: .black.opacity(0.2), radius: 4, x: 0, y: 2) + .dragWindowWithClick() + + PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, hideShuffleAndRepeat: true, spacing: 17.5 * miniPlayerScaleFactor.rawValue) + .padding(15 * miniPlayerScaleFactor.rawValue) + .background( + VisualEffectView(material: .popover, blendingMode: .withinWindow) + .overlay { + RoundedRectangle(cornerRadius: cornerRadius, style: .continuous) + .strokeBorder(.quaternary, lineWidth: 1) + } + ) + .cornerRadius(cornerRadius) + .opacity(isShowingPlaybackControls ? 1 : 0) } - .padding(10 * miniPlayerScaleFactor.rawValue) .onHover { _ in withAnimation(.linear(duration: 0.2)) { self.isShowingPlaybackControls.toggle() } } - .overlay( - NotificationView() - ) - .background( - GeometryReader { proxy in - ZStack { - VisualEffectView(material: .popover, blendingMode: .behindWindow) - BackgroundView(background: miniPlayerBackground, xOffset: -80) - } - .onAppear { - size = proxy.size - } - } - ) } } diff --git a/Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift index c05f346..4d34648 100644 --- a/Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift @@ -6,13 +6,11 @@ // import SwiftUI -import MediaPlayer import Defaults -struct HorizontalMiniPlayerView: View, MiniPlayerViewProtocol { +struct HorizontalMiniPlayerView: View { @EnvironmentObject var playerManager: PlayerManager @State private var isShowingPlaybackControls = false - @State var size = CGSize(width: 200, height: 150) @Default(.miniPlayerScaleFactor) private var miniPlayerScaleFactor @Default(.miniPlayerBackground) private var miniPlayerBackground @@ -20,73 +18,46 @@ struct HorizontalMiniPlayerView: View, MiniPlayerViewProtocol { private var imageSize: CGFloat = 140.0 var body: some View { - ZStack { - if !playerManager.isRunning || playerManager.track.isEmpty() { - Text("Please open \(playerManager.name) to use Tuneful") - .foregroundColor(.primary.opacity(0.4)) - .font(.system(size: 14, weight: .regular)) - .frame(maxWidth: .infinity, maxHeight: .infinity) - .multilineTextAlignment(.center) - .padding(15) - .padding(.bottom, 20) - } else { - HStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { - ZStack { - AlbumArtView(imageSize: self.imageSize * miniPlayerScaleFactor.rawValue) - .dragWindowWithClick() + HStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { + ZStack { + AlbumArtView(imageSize: self.imageSize * miniPlayerScaleFactor.rawValue) + .dragWindowWithClick() + + AddToFavoritesView() + .opacity(isShowingPlaybackControls ? 1 : 0) + } + .onHover { _ in + withAnimation(.linear(duration: 0.1)) { + self.isShowingPlaybackControls.toggle() + } + } + + VStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { + Button(action: playerManager.openMusicApp) { + VStack { + Text(playerManager.track.title) + .font(.body) + .bold() + .lineLimit(1) - AddToFavoritesView() - .opacity(isShowingPlaybackControls ? 1 : 0) + Text(playerManager.track.artist) + .font(.body) + .lineLimit(1) } - .onHover { _ in - withAnimation(.linear(duration: 0.1)) { - self.isShowingPlaybackControls.toggle() - } - } - - VStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { - Button(action: playerManager.openMusicApp) { - VStack { - Text(playerManager.track.title) - .font(.body) - .bold() - .lineLimit(1) - - Text(playerManager.track.artist) - .font(.body) - .lineLimit(1) - } - .tapAnimation() { - self.playerManager.openMusicApp() - } - } - .pressButtonStyle() - - if playerManager.musicApp.playbackSeekerEnabled { - PlaybackPositionView() - } - - PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, spacing: 12.5 * miniPlayerScaleFactor.rawValue) + .tapAnimation() { + self.playerManager.openMusicApp() } - .frame(width: imageSize * miniPlayerScaleFactor.rawValue) // Both sides should be the same - .opacity(0.75) } - } - } - .padding(10 * miniPlayerScaleFactor.rawValue) - .overlay( - NotificationView() - ) - .background( - GeometryReader { proxy in - ZStack { - VisualEffectView(material: .popover, blendingMode: .behindWindow) - BackgroundView(background: miniPlayerBackground, xOffset: -80) - } - .onAppear { - size = proxy.size + .pressButtonStyle() + + if playerManager.musicApp.playbackSeekerEnabled { + PlaybackPositionView() } + + PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, spacing: 12.5 * miniPlayerScaleFactor.rawValue) } - ) + .frame(width: imageSize * miniPlayerScaleFactor.rawValue) // Both sides should be the same + .opacity(0.75) + } } } diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift new file mode 100644 index 0000000..26bbfe1 --- /dev/null +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -0,0 +1,60 @@ +// +// MiniPlayerView.swift +// Tuneful +// +// Created by Martin Fekete on 22/12/2024. +// + +import SwiftUI +import Defaults + +struct MiniPlayerView: View { + @EnvironmentObject var playerManager: PlayerManager + + @Default(.miniPlayerType) private var miniPlayerType + @Default(.miniPlayerScaleFactor) private var miniPlayerScaleFactor + @Default(.miniPlayerBackground) private var miniPlayerBackground + + private var imageSize: CGFloat = 140.0 + + var body: some View { + ZStack { + if !playerManager.isRunning || playerManager.track.isEmpty() { + Text("Please open \(playerManager.name) to use Tuneful") + .foregroundColor(.primary.opacity(0.4)) + .font(.system(size: 14, weight: .regular)) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .multilineTextAlignment(.center) + .padding(15) + .padding(.bottom, 20) + } else { + switch miniPlayerType { + case .horizontal: + HorizontalMiniPlayerView() + case .vertical: + VerticalMiniPlayerView() + case .minimal: + CompactMiniPlayerView() + } + } + } + .padding(10 * miniPlayerScaleFactor.rawValue) + .overlay( + NotificationView() + ) + .background( + ZStack { + VisualEffectView(material: .popover, blendingMode: .behindWindow) + BackgroundView( + background: miniPlayerBackground, + albumArtSize: imageSize * miniPlayerScaleFactor.rawValue, + yOffset: -80 * miniPlayerScaleFactor.rawValue + ) + } + .overlay { + RoundedRectangle(cornerRadius: 15, style: .continuous) + .strokeBorder(.quaternary, lineWidth: 1.5) + } + ) + } +} diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerViewProtocol.swift b/Tuneful/Views/MiniPlayer/MiniPlayerViewProtocol.swift deleted file mode 100644 index 45d0e0a..0000000 --- a/Tuneful/Views/MiniPlayer/MiniPlayerViewProtocol.swift +++ /dev/null @@ -1,12 +0,0 @@ -// -// MiniPlayerViewProtocol.swift -// Tuneful -// -// Created by Martin Fekete on 21/12/2024. -// - -import SwiftUI - -protocol MiniPlayerViewProtocol { - var size: CGSize { get } -} diff --git a/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift index 9405c2c..ab4aa37 100644 --- a/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift @@ -6,13 +6,11 @@ // import SwiftUI -import MediaPlayer import Defaults -struct VerticalMiniPlayerView: View, MiniPlayerViewProtocol { +struct VerticalMiniPlayerView: View { @EnvironmentObject var playerManager: PlayerManager @State private var isShowingPlaybackControls = false - @State var size = CGSize(width: 150, height: 300) @Default(.miniPlayerScaleFactor) private var miniPlayerScaleFactor @Default(.miniPlayerBackground) private var miniPlayerBackground @@ -20,73 +18,42 @@ struct VerticalMiniPlayerView: View, MiniPlayerViewProtocol { private var imageSize: CGFloat = 140.0 var body: some View { - ZStack { - if !playerManager.isRunning || playerManager.track.isEmpty() { - Text("Please open \(playerManager.name) to use Tuneful") - .foregroundColor(.primary.opacity(0.4)) - .font(.system(size: 14, weight: .regular)) - .frame(maxWidth: .infinity, maxHeight: .infinity) - .multilineTextAlignment(.center) - .padding(15) - .padding(.bottom, 20) - } else { - VStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { - ZStack { - AlbumArtView(imageSize: imageSize * miniPlayerScaleFactor.rawValue) - .dragWindowWithClick() + VStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { + ZStack { + AlbumArtView(imageSize: imageSize * miniPlayerScaleFactor.rawValue) + .dragWindowWithClick() + + AddToFavoritesView() + .opacity(isShowingPlaybackControls ? 1 : 0) + } + .onHover { _ in + withAnimation(.linear(duration: 0.1)) { + self.isShowingPlaybackControls.toggle() + } + } + + VStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { + PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, hideShuffleAndRepeat: true, spacing: 17.5 * miniPlayerScaleFactor.rawValue) + + Button(action: playerManager.openMusicApp) { + VStack { + Text(playerManager.track.title) + .font(miniPlayerScaleFactor.trackFontSize) + .bold() + .lineLimit(1) - AddToFavoritesView() - .opacity(isShowingPlaybackControls ? 1 : 0) - } - .onHover { _ in - withAnimation(.linear(duration: 0.1)) { - self.isShowingPlaybackControls.toggle() - } + Text(playerManager.track.artist) + .font(miniPlayerScaleFactor.trackFontSize) + .lineLimit(1) } - - VStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { - PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, hideShuffleAndRepeat: true, spacing: 17.5 * miniPlayerScaleFactor.rawValue) - - Button(action: playerManager.openMusicApp) { - VStack { - Text(playerManager.track.title) - .font(miniPlayerScaleFactor.trackFontSize) - .bold() - .lineLimit(1) - - Text(playerManager.track.artist) - .font(miniPlayerScaleFactor.trackFontSize) - .lineLimit(1) - } - .tapAnimation() { - self.playerManager.openMusicApp() - } - } - .pressButtonStyle() - .frame(maxWidth: self.imageSize * miniPlayerScaleFactor.rawValue) + .tapAnimation() { + self.playerManager.openMusicApp() } - .opacity(0.75) } + .pressButtonStyle() } + .frame(width: self.imageSize * miniPlayerScaleFactor.rawValue) + .opacity(0.75) } - .padding(7.5 * miniPlayerScaleFactor.rawValue) - .overlay( - NotificationView() - ) - .background( - GeometryReader { proxy in - ZStack { - VisualEffectView(material: .popover, blendingMode: .behindWindow) - BackgroundView( - background: miniPlayerBackground, - albumArtSize: imageSize * miniPlayerScaleFactor.rawValue, - yOffset: -80 * miniPlayerScaleFactor.rawValue - ) - } - .onAppear { - size = proxy.size - } - } - ) } } diff --git a/Tuneful/Views/Settings/AppearanceSettingsView.swift b/Tuneful/Views/Settings/AppearanceSettingsView.swift index aeda366..c49ba25 100644 --- a/Tuneful/Views/Settings/AppearanceSettingsView.swift +++ b/Tuneful/Views/Settings/AppearanceSettingsView.swift @@ -104,9 +104,6 @@ struct AppearanceSettingsView: View { } } .frame(width: 150) - .onChange(of: miniPlayerType) { _ in - NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) - } .disabled(!showPlayerWindow) } .padding(8) diff --git a/Tuneful/Windows/MiniPlayerWindow.swift b/Tuneful/Windows/MiniPlayerWindow.swift index efd247e..490cffd 100644 --- a/Tuneful/Windows/MiniPlayerWindow.swift +++ b/Tuneful/Windows/MiniPlayerWindow.swift @@ -25,7 +25,7 @@ class MiniPlayerWindow: NSWindow { self.collectionBehavior = [.canJoinAllSpaces, .fullScreenNone] self.isReleasedWhenClosed = false self.backgroundColor = NSColor.clear - self.hasShadow = false + self.hasShadow = true NotificationCenter.default.addObserver( self, @@ -79,17 +79,14 @@ class MiniPlayerWindow: NSWindow { @objc func setHorizontalMiniPlayer(_ sender: Any) { Defaults[.miniPlayerType] = .horizontal - NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) } @objc func setCompactMiniPlayer(_ sender: Any) { Defaults[.miniPlayerType] = .minimal - NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) } @objc func setVerticalMiniPlayer(_ sender: Any) { Defaults[.miniPlayerType] = .vertical - NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) } @objc func setTintBg(_ sender: Any) { From 97644868a6bf843ca3c90d84039e3e8dc7e778de Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 22 Dec 2024 16:44:19 +0100 Subject: [PATCH 41/73] Font scaling in mini player --- .../Views/MiniPlayer/HorizontalMiniPlayerView.swift | 4 ++-- Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift index 4d34648..6c87411 100644 --- a/Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift @@ -36,12 +36,12 @@ struct HorizontalMiniPlayerView: View { Button(action: playerManager.openMusicApp) { VStack { Text(playerManager.track.title) - .font(.body) + .font(miniPlayerScaleFactor.trackFontSize) .bold() .lineLimit(1) Text(playerManager.track.artist) - .font(.body) + .font(miniPlayerScaleFactor.trackFontSize) .lineLimit(1) } .tapAnimation() { diff --git a/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift index ab4aa37..be8fee6 100644 --- a/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift @@ -32,9 +32,7 @@ struct VerticalMiniPlayerView: View { } } - VStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { - PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, hideShuffleAndRepeat: true, spacing: 17.5 * miniPlayerScaleFactor.rawValue) - + VStack(spacing: 5 * miniPlayerScaleFactor.rawValue) { Button(action: playerManager.openMusicApp) { VStack { Text(playerManager.track.title) @@ -51,7 +49,14 @@ struct VerticalMiniPlayerView: View { } } .pressButtonStyle() + + if playerManager.musicApp.playbackSeekerEnabled { + PlaybackPositionView() + } + + PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, spacing: 15 * miniPlayerScaleFactor.rawValue) } + .padding(.bottom, 5) .frame(width: self.imageSize * miniPlayerScaleFactor.rawValue) .opacity(0.75) } From 997a8b5c2dcb4ba417476b275e6bf4659159a767 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 22 Dec 2024 23:10:16 +0100 Subject: [PATCH 42/73] New miniplayer window positioning --- Tuneful/Models/MiniPlayerType.swift | 9 ---- Tuneful/Tuneful.swift | 50 +++++++++---------- .../MiniPlayer/CompactMiniPlayerView.swift | 34 +++++++------ .../MiniPlayer/HorizontalMiniPlayerView.swift | 1 - .../MiniPlayer/VerticalMiniPlayerView.swift | 3 +- .../Settings/AppearanceSettingsView.swift | 3 -- Tuneful/Windows/MiniPlayerWindow.swift | 8 ++- 7 files changed, 47 insertions(+), 61 deletions(-) diff --git a/Tuneful/Models/MiniPlayerType.swift b/Tuneful/Models/MiniPlayerType.swift index 87c9d1d..73a1ffa 100644 --- a/Tuneful/Models/MiniPlayerType.swift +++ b/Tuneful/Models/MiniPlayerType.swift @@ -20,14 +20,5 @@ enum MiniPlayerType: String, Equatable, CaseIterable, Defaults.Serializable { case .vertical: "Vertical" } } - - @ViewBuilder - var view: some View { - switch self { - case .minimal: CompactMiniPlayerView() - case .horizontal: HorizontalMiniPlayerView() - case .vertical: VerticalMiniPlayerView() - } - } } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 3304326..6c65039 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -17,7 +17,7 @@ import Defaults class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // Windows private var onboardingWindow: OnboardingWindow! - private var miniPlayerWindow: MiniPlayerWindow = MiniPlayerWindow() + private var miniPlayerWindow: MiniPlayerWindow! // Popover private var popover: NSPopover! @@ -125,6 +125,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { self.playerManager = PlayerManager() self.statusBarItemManager = StatusBarItemManager(playerManager: playerManager) self.statusBarPlaybackManager = StatusBarPlaybackManager(playerManager: playerManager) + self.miniPlayerWindow = MiniPlayerWindow(playerManager: playerManager) NotificationCenter.default.addObserver( self, @@ -272,19 +273,28 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } @objc func toggleMiniPlayer() { - self.showHideMiniPlayer(self.statusBarMenu.item(withTitle: "Show mini player")!) + showHideMiniPlayer(statusBarMenu.item(withTitle: "Show mini player")!) } @IBAction func showHideMiniPlayer(_ sender: NSMenuItem) { if sender.state == .on { sender.state = .off - Defaults[.showPlayerWindow] = false - self.playerManager.timerStopSignal.send() - self.miniPlayerWindow.close() + shouldShowMiniPlayer(show: false) } else { sender.state = .on + shouldShowMiniPlayer(show: true) + } + } + + private func shouldShowMiniPlayer(show: Bool) { + if !show { + Defaults[.showPlayerWindow] = false + playerManager.timerStopSignal.send() + miniPlayerWindow.close() + } else { Defaults[.showPlayerWindow] = true - self.setupMiniPlayer() + miniPlayerWindow.makeKeyAndOrderFront(nil) + NSApplication.shared.activate(ignoringOtherApps: true) } } @@ -399,27 +409,17 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // MARK: Mini player @objc func setupMiniPlayer() { - let windowFrame = miniPlayerWindow.frame - let windowPosition = windowFrame.origin - let windowSize = windowFrame.size - - miniPlayerWindow.setFrame( - NSRect(origin: windowPosition, size: windowSize), - display: true, - animate: false - ) - - let rootView = MiniPlayerView().cornerRadius(15).environmentObject(self.playerManager) + let rootView = MiniPlayerView() + .cornerRadius(15) + .environmentObject(playerManager) miniPlayerWindow.contentView = NSHostingView(rootView: rootView) - toggleMiniPlayerWindowLevel() - miniPlayerWindow.makeKeyAndOrderFront(nil) - NSApplication.shared.activate(ignoringOtherApps: true) - - playerManager.timerStartSignal.send() - if !Defaults[.showPlayerWindow] { - playerManager.timerStopSignal.send() - miniPlayerWindow.close() + // This is ugly but we can't correctly set the frame as window is not fully loaded + // Running this one sec later should ensure we have the window fully loaded -> correctly placed + DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { + let position = NSPoint.fromString(Defaults[.windowPosition]) ?? NSPoint(x: 10, y: 10) + self.miniPlayerWindow.setFrameOrigin(position) + self.shouldShowMiniPlayer(show: Defaults[.showPlayerWindow]) } } diff --git a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift index 8cd2f1c..f3ecc9d 100644 --- a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift @@ -21,22 +21,24 @@ struct CompactMiniPlayerView: View { private var playPauseButtonSize: CGFloat = 25.0 var body: some View { - ZStack { - AlbumArtView(imageSize: self.imageSize * miniPlayerScaleFactor.rawValue) - .shadow(color: .black.opacity(0.2), radius: 4, x: 0, y: 2) - .dragWindowWithClick() - - PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, hideShuffleAndRepeat: true, spacing: 17.5 * miniPlayerScaleFactor.rawValue) - .padding(15 * miniPlayerScaleFactor.rawValue) - .background( - VisualEffectView(material: .popover, blendingMode: .withinWindow) - .overlay { - RoundedRectangle(cornerRadius: cornerRadius, style: .continuous) - .strokeBorder(.quaternary, lineWidth: 1) - } - ) - .cornerRadius(cornerRadius) - .opacity(isShowingPlaybackControls ? 1 : 0) + VStack { + ZStack { + AlbumArtView(imageSize: self.imageSize * miniPlayerScaleFactor.rawValue) + .shadow(color: .black.opacity(0.2), radius: 4, x: 0, y: 2) + .dragWindowWithClick() + + PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, hideShuffleAndRepeat: true, spacing: 17.5 * miniPlayerScaleFactor.rawValue) + .padding(15 * miniPlayerScaleFactor.rawValue) + .background( + VisualEffectView(material: .popover, blendingMode: .withinWindow) + .overlay { + RoundedRectangle(cornerRadius: cornerRadius, style: .continuous) + .strokeBorder(.quaternary, lineWidth: 1) + } + ) + .cornerRadius(cornerRadius) + .opacity(isShowingPlaybackControls ? 1 : 0) + } } .onHover { _ in withAnimation(.linear(duration: 0.2)) { diff --git a/Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift index 6c87411..c6c27c0 100644 --- a/Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/HorizontalMiniPlayerView.swift @@ -57,7 +57,6 @@ struct HorizontalMiniPlayerView: View { PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, spacing: 12.5 * miniPlayerScaleFactor.rawValue) } .frame(width: imageSize * miniPlayerScaleFactor.rawValue) // Both sides should be the same - .opacity(0.75) } } } diff --git a/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift index be8fee6..6e56d18 100644 --- a/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/VerticalMiniPlayerView.swift @@ -32,7 +32,7 @@ struct VerticalMiniPlayerView: View { } } - VStack(spacing: 5 * miniPlayerScaleFactor.rawValue) { + VStack(spacing: 10 * miniPlayerScaleFactor.rawValue) { Button(action: playerManager.openMusicApp) { VStack { Text(playerManager.track.title) @@ -58,7 +58,6 @@ struct VerticalMiniPlayerView: View { } .padding(.bottom, 5) .frame(width: self.imageSize * miniPlayerScaleFactor.rawValue) - .opacity(0.75) } } } diff --git a/Tuneful/Views/Settings/AppearanceSettingsView.swift b/Tuneful/Views/Settings/AppearanceSettingsView.swift index c49ba25..cb0d939 100644 --- a/Tuneful/Views/Settings/AppearanceSettingsView.swift +++ b/Tuneful/Views/Settings/AppearanceSettingsView.swift @@ -135,9 +135,6 @@ struct AppearanceSettingsView: View { Text(value.localizedName).tag(value) } } - .onChange(of: miniPlayerScaleFactor) { _ in - NSApplication.shared.sendAction(#selector(AppDelegate.setupMiniPlayer), to: nil, from: nil) - } .frame(width: 150) .disabled(!showPlayerWindow) } diff --git a/Tuneful/Windows/MiniPlayerWindow.swift b/Tuneful/Windows/MiniPlayerWindow.swift index 490cffd..bb907e2 100644 --- a/Tuneful/Windows/MiniPlayerWindow.swift +++ b/Tuneful/Windows/MiniPlayerWindow.swift @@ -10,18 +10,16 @@ import AppKit import Defaults class MiniPlayerWindow: NSWindow { - init() { - let position = NSPoint.fromString(Defaults[.windowPosition]) ?? NSPoint(x: 10, y: 10) - + init(playerManager: PlayerManager) { super.init( - contentRect: NSRect(x: position.x, y: position.y, width: 300, height: 145), + contentRect: .zero, styleMask: [.borderless], backing: .buffered, defer: false ) self.isMovableByWindowBackground = true - self.level = .floating + self.level = Defaults[.miniPlayerWindowOnTop] ? .floating : .normal self.collectionBehavior = [.canJoinAllSpaces, .fullScreenNone] self.isReleasedWhenClosed = false self.backgroundColor = NSColor.clear From 03d7a9fde0c3ba91e8df71c539fa79901ae4776a Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 22 Dec 2024 23:20:00 +0100 Subject: [PATCH 43/73] Animations --- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 26bbfe1..3de6164 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -31,10 +31,13 @@ struct MiniPlayerView: View { switch miniPlayerType { case .horizontal: HorizontalMiniPlayerView() + .transition(.blur.animation(.bouncy)) case .vertical: VerticalMiniPlayerView() + .transition(.blur.animation(.bouncy)) case .minimal: CompactMiniPlayerView() + .transition(.blur.animation(.bouncy)) } } } From b64ae5726d297084765eb02210822969ba936b06 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Mon, 23 Dec 2024 11:20:44 +0100 Subject: [PATCH 44/73] Window sizing menu on rigtclick --- Tuneful/Tuneful.swift | 7 +- .../MiniPlayer/CompactMiniPlayerView.swift | 2 +- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 103 +++++++++++------- Tuneful/Windows/MiniPlayerWindow.swift | 33 +++++- 4 files changed, 99 insertions(+), 46 deletions(-) diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 6c65039..5be4869 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -293,6 +293,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { miniPlayerWindow.close() } else { Defaults[.showPlayerWindow] = true + playerManager.timerStartSignal.send() miniPlayerWindow.makeKeyAndOrderFront(nil) NSApplication.shared.activate(ignoringOtherApps: true) } @@ -409,9 +410,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // MARK: Mini player @objc func setupMiniPlayer() { - let rootView = MiniPlayerView() - .cornerRadius(15) - .environmentObject(playerManager) + let rootView = MiniPlayerView().environmentObject(playerManager) miniPlayerWindow.contentView = NSHostingView(rootView: rootView) // This is ugly but we can't correctly set the frame as window is not fully loaded @@ -419,6 +418,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { let position = NSPoint.fromString(Defaults[.windowPosition]) ?? NSPoint(x: 10, y: 10) self.miniPlayerWindow.setFrameOrigin(position) + self.miniPlayerWindow.contentView?.layer?.cornerRadius = 15 + self.miniPlayerWindow.contentView?.layer?.masksToBounds = true self.shouldShowMiniPlayer(show: Defaults[.showPlayerWindow]) } } diff --git a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift index f3ecc9d..b278912 100644 --- a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift @@ -41,7 +41,7 @@ struct CompactMiniPlayerView: View { } } .onHover { _ in - withAnimation(.linear(duration: 0.2)) { + withAnimation(Animation.timingCurve(0.16, 1, 0.3, 1, duration: 0.7)) { self.isShowingPlaybackControls.toggle() } } diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 3de6164..5107922 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -16,48 +16,73 @@ struct MiniPlayerView: View { @Default(.miniPlayerBackground) private var miniPlayerBackground private var imageSize: CGFloat = 140.0 - + var body: some View { - ZStack { - if !playerManager.isRunning || playerManager.track.isEmpty() { - Text("Please open \(playerManager.name) to use Tuneful") - .foregroundColor(.primary.opacity(0.4)) - .font(.system(size: 14, weight: .regular)) - .frame(maxWidth: .infinity, maxHeight: .infinity) - .multilineTextAlignment(.center) - .padding(15) - .padding(.bottom, 20) - } else { - switch miniPlayerType { - case .horizontal: - HorizontalMiniPlayerView() - .transition(.blur.animation(.bouncy)) - case .vertical: - VerticalMiniPlayerView() - .transition(.blur.animation(.bouncy)) - case .minimal: - CompactMiniPlayerView() - .transition(.blur.animation(.bouncy)) + VStack(spacing: 0) { + HStack(spacing: 0) { + ZStack { + if !playerManager.isRunning || playerManager.track.isEmpty() { + Text("Please open \(playerManager.name) to use Tuneful") + .foregroundColor(.primary.opacity(0.4)) + .font(.system(size: 14, weight: .regular)) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .multilineTextAlignment(.center) + .padding(15) + .padding(.bottom, 20) + } else { + switch miniPlayerType { + case .horizontal: + HorizontalMiniPlayerView() + .transition(.blur.animation(.bouncy)) + case .vertical: + VerticalMiniPlayerView() + .transition(.blur.animation(.bouncy)) + case .minimal: + CompactMiniPlayerView() + .transition(.blur.animation(.bouncy)) + } + } } - } - } - .padding(10 * miniPlayerScaleFactor.rawValue) - .overlay( - NotificationView() - ) - .background( - ZStack { - VisualEffectView(material: .popover, blendingMode: .behindWindow) - BackgroundView( - background: miniPlayerBackground, - albumArtSize: imageSize * miniPlayerScaleFactor.rawValue, - yOffset: -80 * miniPlayerScaleFactor.rawValue + .fixedSize() + .clipShape(.rect(cornerRadius: 15)) + .padding(10 * miniPlayerScaleFactor.rawValue) + .overlay( + NotificationView() + ) + .background( + ZStack { + VisualEffectView(material: .popover, blendingMode: .behindWindow) + getBackgroundView() + } + .overlay { + RoundedRectangle(cornerRadius: 15, style: .continuous) + .strokeBorder(.quaternary, lineWidth: 1.5) + } ) } - .overlay { - RoundedRectangle(cornerRadius: 15, style: .continuous) - .strokeBorder(.quaternary, lineWidth: 1.5) - } - ) + } + } + + @ViewBuilder + func getBackgroundView() -> some View { + switch miniPlayerType { + case .minimal: + BackgroundView( + background: miniPlayerBackground, + albumArtSize: imageSize * miniPlayerScaleFactor.rawValue * 0.9 + ) + case .horizontal: + BackgroundView( + background: miniPlayerBackground, + albumArtSize: imageSize * miniPlayerScaleFactor.rawValue, + xOffset: -75 * miniPlayerScaleFactor.rawValue + ) + case .vertical: + BackgroundView( + background: miniPlayerBackground, + albumArtSize: imageSize * miniPlayerScaleFactor.rawValue, + yOffset: -45 * miniPlayerScaleFactor.rawValue + ) + } } } diff --git a/Tuneful/Windows/MiniPlayerWindow.swift b/Tuneful/Windows/MiniPlayerWindow.swift index bb907e2..f12006a 100644 --- a/Tuneful/Windows/MiniPlayerWindow.swift +++ b/Tuneful/Windows/MiniPlayerWindow.swift @@ -13,11 +13,12 @@ class MiniPlayerWindow: NSWindow { init(playerManager: PlayerManager) { super.init( contentRect: .zero, - styleMask: [.borderless], + styleMask: [.fullSizeContentView, .borderless, .utilityWindow, .nonactivatingPanel], backing: .buffered, - defer: false + defer: true ) + self.isOpaque = false self.isMovableByWindowBackground = true self.level = Defaults[.miniPlayerWindowOnTop] ? .floating : .normal self.collectionBehavior = [.canJoinAllSpaces, .fullScreenNone] @@ -56,7 +57,7 @@ class MiniPlayerWindow: NSWindow { windowStyleMenuItem.submenu = windowMenu menu.addItem(windowStyleMenuItem) - let backgroundStyleMenuItem = NSMenuItem(title: "Background style", action: nil, keyEquivalent: "") + let backgroundStyleMenuItem = NSMenuItem(title: "Background", action: nil, keyEquivalent: "") let backgroundMenu = NSMenu() backgroundMenu .addItem(withTitle: "Tint", action: #selector(setTintBg(_:)), keyEquivalent: "") @@ -70,6 +71,20 @@ class MiniPlayerWindow: NSWindow { backgroundStyleMenuItem.submenu = backgroundMenu menu.addItem(backgroundStyleMenuItem) + let sizeMenuItem = NSMenuItem(title: "Size", action: nil, keyEquivalent: "") + let sizeMenu = NSMenu() + sizeMenu + .addItem(withTitle: "Small", action: #selector(setSmallWindow(_:)), keyEquivalent: "") + .state = Defaults[.miniPlayerScaleFactor] == .small ? .on : .off + sizeMenu + .addItem(withTitle: "Regular", action: #selector(setRegularWindow(_:)), keyEquivalent: "") + .state = Defaults[.miniPlayerScaleFactor] == .regular ? .on : .off + sizeMenu + .addItem(withTitle: "Large", action: #selector(setLargeWindow(_:)), keyEquivalent: "") + .state = Defaults[.miniPlayerScaleFactor] == .large ? .on : .off + sizeMenuItem.submenu = sizeMenu + menu.addItem(sizeMenuItem) + menu.addItem(withTitle: "Settings...", action: #selector(settings(_:)), keyEquivalent: "") NSMenu.popUpContextMenu(menu, with: event, for: self.contentView!) @@ -99,6 +114,18 @@ class MiniPlayerWindow: NSWindow { Defaults[.miniPlayerBackground] = .transparent } + @objc func setSmallWindow(_ sender: Any) { + Defaults[.miniPlayerScaleFactor] = .small + } + + @objc func setRegularWindow(_ sender: Any) { + Defaults[.miniPlayerScaleFactor] = .regular + } + + @objc func setLargeWindow(_ sender: Any) { + Defaults[.miniPlayerScaleFactor] = .large + } + @objc func hideWindow(_ sender: Any?) { NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayer), to: nil, from: nil) } From d696a7184ae510c0ed4dbe2233cd661f36f727c6 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 24 Dec 2024 10:39:26 +0100 Subject: [PATCH 45/73] Changed BundleId and other minor fixes --- Tuneful.xcodeproj/project.pbxproj | 4 ++-- Tuneful/Info.plist | 4 ---- Tuneful/Tuneful.entitlements | 7 ------- Tuneful/Tuneful.swift | 2 +- Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift | 3 +-- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 4 ++-- Tuneful/Views/Playback/AlbumArtView.swift | 2 +- 7 files changed, 7 insertions(+), 19 deletions(-) diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 0e2d3b0..00a78cd 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -816,7 +816,7 @@ ); MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = 0.9.0; - PRODUCT_BUNDLE_IDENTIFIER = "com.Martin-Fekete.Tuneful"; + PRODUCT_BUNDLE_IDENTIFIER = com.martinfekete.tuneful; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_EMIT_LOC_STRINGS = YES; @@ -854,7 +854,7 @@ ); MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = 0.9.0; - PRODUCT_BUNDLE_IDENTIFIER = "com.Martin-Fekete.Tuneful"; + PRODUCT_BUNDLE_IDENTIFIER = com.martinfekete.tuneful; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_EMIT_LOC_STRINGS = YES; diff --git a/Tuneful/Info.plist b/Tuneful/Info.plist index 06ed151..5a70673 100644 --- a/Tuneful/Info.plist +++ b/Tuneful/Info.plist @@ -2,10 +2,6 @@ - CFBundleIdentifier - com.Martin-Fekete.Tuneful - LSUIElement - SUFeedURL https://martinfekete10.github.io/Tuneful/Support/appcast.xml SUPublicEDKey diff --git a/Tuneful/Tuneful.entitlements b/Tuneful/Tuneful.entitlements index b333a29..c566296 100644 --- a/Tuneful/Tuneful.entitlements +++ b/Tuneful/Tuneful.entitlements @@ -8,17 +8,10 @@ com.apple.security.network.client - com.apple.security.network.server - com.apple.security.temporary-exception.apple-events com.apple.Music com.spotify.client - com.apple.security.temporary-exception.mach-lookup.global-name - - $(PRODUCT_BUNDLE_IDENTIFIER)-spks - $(PRODUCT_BUNDLE_IDENTIFIER)-spki - diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 5be4869..8e686ff 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -418,7 +418,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { let position = NSPoint.fromString(Defaults[.windowPosition]) ?? NSPoint(x: 10, y: 10) self.miniPlayerWindow.setFrameOrigin(position) - self.miniPlayerWindow.contentView?.layer?.cornerRadius = 15 + self.miniPlayerWindow.contentView?.layer?.cornerRadius = 12.5 self.miniPlayerWindow.contentView?.layer?.masksToBounds = true self.shouldShowMiniPlayer(show: Defaults[.showPlayerWindow]) } diff --git a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift index b278912..e675235 100644 --- a/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/CompactMiniPlayerView.swift @@ -16,7 +16,7 @@ struct CompactMiniPlayerView: View { @Default(.miniPlayerBackground) private var miniPlayerBackground private var imageSize: CGFloat = 140.0 - private var cornerRadius: CGFloat = 12.5 + private var cornerRadius: CGFloat = 15 private var playbackButtonSize: CGFloat = 15.0 private var playPauseButtonSize: CGFloat = 25.0 @@ -24,7 +24,6 @@ struct CompactMiniPlayerView: View { VStack { ZStack { AlbumArtView(imageSize: self.imageSize * miniPlayerScaleFactor.rawValue) - .shadow(color: .black.opacity(0.2), radius: 4, x: 0, y: 2) .dragWindowWithClick() PlaybackButtonsView(playButtonSize: 17.5 * miniPlayerScaleFactor.rawValue, hideShuffleAndRepeat: true, spacing: 17.5 * miniPlayerScaleFactor.rawValue) diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 5107922..106ba3e 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -44,7 +44,7 @@ struct MiniPlayerView: View { } } .fixedSize() - .clipShape(.rect(cornerRadius: 15)) + .clipShape(.rect(cornerRadius: 12.5)) .padding(10 * miniPlayerScaleFactor.rawValue) .overlay( NotificationView() @@ -55,7 +55,7 @@ struct MiniPlayerView: View { getBackgroundView() } .overlay { - RoundedRectangle(cornerRadius: 15, style: .continuous) + RoundedRectangle(cornerRadius: 12.5, style: .continuous) .strokeBorder(.quaternary, lineWidth: 1.5) } ) diff --git a/Tuneful/Views/Playback/AlbumArtView.swift b/Tuneful/Views/Playback/AlbumArtView.swift index 962e034..1c3f5c0 100644 --- a/Tuneful/Views/Playback/AlbumArtView.swift +++ b/Tuneful/Views/Playback/AlbumArtView.swift @@ -17,7 +17,7 @@ struct AlbumArtView: View { playerManager.track.albumArt .resizable() .frame(width: self.imageSize, height: self.imageSize) - .cornerRadius(10) + .cornerRadius(12.5) .shadow(color: .black.opacity(0.3), radius: 5, x: 0, y: 2) .tapAnimation(scale: 1.2, duration: 0.4) { self.playerManager.openMusicApp() From a59e979a06d0cdb2d9dc5b3eca3475506b55400d Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 24 Dec 2024 10:56:17 +0100 Subject: [PATCH 46/73] Deprecating Sparkle and GitHub Actions --- .github/workflows/release.yml | 253 ------------------ Configuration/LICENSE | 134 ---------- Configuration/README.md | 5 - Configuration/export_options.plist | 12 - Configuration/generate_appcast | Bin 4204896 -> 0 bytes .../generate_html_for_sparkle_release.py | 23 -- Configuration/generate_latest_changes.py | 29 -- Configuration/remove_last_item_appcast.py | 41 --- Configuration/requirements.txt | 1 - Tuneful.xcodeproj/project.pbxproj | 17 -- .../xcshareddata/swiftpm/Package.resolved | 11 +- Tuneful/Tuneful.swift | 16 -- .../Views/Settings/AboutSettingsView.swift | 12 - 13 files changed, 1 insertion(+), 553 deletions(-) delete mode 100644 .github/workflows/release.yml delete mode 100644 Configuration/LICENSE delete mode 100644 Configuration/README.md delete mode 100644 Configuration/export_options.plist delete mode 100755 Configuration/generate_appcast delete mode 100644 Configuration/generate_html_for_sparkle_release.py delete mode 100644 Configuration/generate_latest_changes.py delete mode 100644 Configuration/remove_last_item_appcast.py delete mode 100644 Configuration/requirements.txt diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 53f14f5..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,253 +0,0 @@ -name: "Create Release" -on: - issue_comment: - types: [created] - -concurrency: - group: publish-release${{ github.ref }} - cancel-in-progress: true - -env: - projname: Tuneful - -jobs: - preparation: - name: Preparation job - if: ${{ github.event.issue.pull_request && contains(github.event.comment.body, '/release') && github.event.comment.user.login == github.repository_owner }} - runs-on: ubuntu-latest - steps: - - name: Add reactions # adding reactions to the comment to show that the action is running - uses: peter-evans/create-or-update-comment@v2 - with: - comment-id: ${{ github.event.comment.id }} - reactions: eyes - - uses: actions/github-script@v6 # check if the PR is ready to be merged - with: - result-encoding: string - script: | - const pr = await github.rest.pulls.get({ - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: context.issue.number, - }); - if (pr.data.draft || pr.data.mergeable_state !== "clean") { - core.setFailed("PR is not ready to be merged"); - } - - uses: xt0rted/pull-request-comment-branch@v1 # check out branch of PR - id: comment-branch - - uses: actions/checkout@v3 - if: success() - with: - ref: ${{ steps.comment-branch.outputs.head_ref }} - - name: Extract latest changes # generate release notes, version and title to use in the release - id: latest_changes - run: | - python3 ./Configuration/generate_latest_changes.py - - name: Check if version already released # prevent releasing the same version twice - run: | - if [[ $(xcrun agvtool what-version -terse) == $(cat new_version) ]]; then - echo "Version already released" >> $GITHUB_STEP_SUMMARY - exit 1 - fi - - name: Check if release notes are empty # prevent releasing without release notes - run: | - if [[ $(cat latest_changes) == "" ]]; then - echo "Release notes are empty" >> $GITHUB_STEP_SUMMARY - exit 1 - fi - - name: Save generated info - uses: actions/upload-artifact@master - with: - path: | - new_version - title - latest_changes - - name: Clean up generated files for sync - run: | - rm latest_changes - rm title - rm new_version - - name: Sync branch - uses: devmasx/merge-branch@master - with: - type: now - from_branch: ${{ steps.comment-branch.outputs.base_ref }} - target_branch: ${{ steps.comment-branch.outputs.head_ref }} - github_token: ${{ github.token }} - - archive: - name: Build and export app - runs-on: macos-14 - needs: preparation - steps: - - uses: actions/download-artifact@master # download all previously generated artifacts - with: - path: artifacts - - name: Parse info generated in preparation job - id: info - run: | - echo "new_version=$(cat artifacts/artifact/new_version)" >> $GITHUB_OUTPUT - echo "title=$(cat artifacts/artifact/title)" >> $GITHUB_OUTPUT - - uses: xt0rted/pull-request-comment-branch@v1 # check out branch of PR - id: comment-branch - - uses: actions/checkout@v3 - if: success() - with: - ref: ${{ steps.comment-branch.outputs.head_ref }} - - name: Override versions in project # set new version in project - run: | - sed -i '' "s/_VERSION = $(xcrun agvtool what-version -terse)/_VERSION = ${{ steps.info.outputs.new_version }}/g" ${{ env.projname }}.xcodeproj/project.pbxproj; - - name: - Install the Apple certificate and provisioning profile - # install the Apple certificate and provisioning profile - # following https://docs.github.com/en/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development - env: - BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} - P12_PASSWORD: ${{ secrets.P12_PASSWORD }} - KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} - run: | - # create variables - CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 - KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db - - # import certificate and provisioning profile from secrets - echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode > $CERTIFICATE_PATH - - # create temporary keychain - security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH - security set-keychain-settings -lut 21600 $KEYCHAIN_PATH - security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH - - # import certificate to keychain - security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH - security list-keychain -d user -s $KEYCHAIN_PATH - - name: Switch Xcode version # Force Xcode version (macOS runner has multiple Xcode versions installed) - run: | - sudo xcode-select -s "/Applications/Xcode_16.app" - /usr/bin/xcodebuild -version - - name: Build and archive # create archive - run: xcodebuild clean archive -project ${{ env.projname }}.xcodeproj -scheme ${{ env.projname }} -archivePath ${{ env.projname }} - - name: Export app # create .app - run: xcodebuild -exportArchive -archivePath "${{ env.projname }}.xcarchive" -exportPath Release -exportOptionsPlist "Configuration/export_options.plist" - - name: Dmg app # dmg .app - run: | - brew install create-dmg - cd Release - create-dmg \ - --volname "Tuneful" \ - --volicon "${{ github.workspace }}/docs/images/icon.icns" \ - --background "${{ github.workspace }}/docs/images/installer-bg.png" \ - --window-pos 200 120 \ - --window-size 835 600 \ - --icon-size 128 \ - --icon "Tuneful.app" 230 285 \ - --hide-extension "Tuneful.app" \ - --app-drop-link 593 285 \ - "./Tuneful.dmg" \ - "./Tuneful.app" - - name: Upload archived dmg app - uses: actions/upload-artifact@master - with: - name: app - path: Release/${{ env.projname }}.dmg - - release: - name: "Create release" - runs-on: macos-14 - environment: deploy-release - needs: archive - steps: - - uses: xt0rted/pull-request-comment-branch@v1 # check out branch of PR - id: comment-branch - - uses: actions/checkout@v3 - if: success() - with: - ref: ${{ steps.comment-branch.outputs.head_ref }} - - uses: actions/download-artifact@master # download all previously generated artifacts - with: - path: artifacts - - name: Parse info generated in preparation job - id: info - run: | - echo "new_version=$(cat artifacts/artifact/new_version)" >> $GITHUB_OUTPUT - echo "title=$(cat artifacts/artifact/title)" >> $GITHUB_OUTPUT - mv artifacts/artifact/new_version new_version - mv artifacts/artifact/title title - mv artifacts/artifact/latest_changes latest_changes - mkdir Release - mv artifacts/app/${{ env.projname }}.dmg Release/ - - name: Prepare Sparkle update creation # Import Sparkle private key, remove unnecessary files in Release folder - env: - PRIVATE_SPARKLE_KEY: ${{ secrets.PRIVATE_SPARKLE_KEY }} - run: | - echo -n "$PRIVATE_SPARKLE_KEY" > ./Configuration/sparkle_private_key - rm -rf Release/*.app - rm -rf Release/*.log - rm -rf Release/*.plist - - name: Preparate Sparkle # generate Sparkle release notes (convert Markdown to HTML) - run: | - pip3 install --break-system-packages -r Configuration/requirements.txt - python3 ./Configuration/generate_html_for_sparkle_release.py - mv Release/latest_changes.html Release/${{ env.projname }}.html - python3 ./Configuration/remove_last_item_appcast.py - - name: Update appcast # generate / update appcast.xml with edDSA key - run: | - ./Configuration/generate_appcast \ - --ed-key-file Configuration/sparkle_private_key \ - --link https://github.com/${{ github.repository_owner }}/${{ github.event.repository.name }}/releases \ - --download-url-prefix https://github.com/${{ github.repository_owner }}/${{ github.event.repository.name }}/releases/download/v${{ steps.info.outputs.new_version }}/ \ - -o docs/Support/appcast.xml \ - Release/ - - name: Create GitHub release # Upload .dmg to GitHub release - uses: softprops/action-gh-release@v1 - with: - name: v${{ steps.info.outputs.new_version }} - ${{ steps.info.outputs.title }} - tag_name: v${{ steps.info.outputs.new_version }} - fail_on_unmatched_files: true - body_path: latest_changes - files: Release/${{ env.projname }}.dmg - - name: Saving changes # commits changes to branch (version bump, appcast.xml) - uses: stefanzweifel/git-auto-commit-action@v4 - with: - file_pattern: | - docs/Support/appcast.xml - ${{ env.projname }}.xcodeproj/project.pbxproj - commit_message: "Update version to v${{ steps.info.outputs.new_version }}" - - name: Create summary # create summary for PR - run: | - echo "Release v${{ steps.info.outputs.new_version }} created." > $GITHUB_STEP_SUMMARY - - ending: - name: Ending job - if: always() - runs-on: ubuntu-latest - needs: release - steps: - - uses: xt0rted/pull-request-comment-branch@v1 # check out branch of PR - id: comment-branch - - uses: actions/checkout@v3 # checkout again, because the previous checkout is detached - with: - ref: ${{ steps.comment-branch.outputs.head_ref }} - - name: Merge PR # merge PR - uses: devmasx/merge-branch@master - with: - type: now - from_branch: ${{ steps.comment-branch.outputs.head_ref }} - target_branch: ${{ steps.comment-branch.outputs.base_ref }} - github_token: ${{ github.token }} - message: "Release version v${{ steps.info.outputs.new_version }}" - - uses: geekyeggo/delete-artifact@v2 - with: - name: "*" - - name: Add success reactions # Adding reactions to comment depending on result - if: ${{ contains(join(needs.*.result, ','), 'success') }} - uses: peter-evans/create-or-update-comment@v2 - with: - comment-id: ${{ github.event.comment.id }} - reactions: rocket - - name: Add negative reaction - if: ${{ contains(join(needs.*.result, ','), 'failure') }} - uses: peter-evans/create-or-update-comment@v2 - with: - comment-id: ${{ github.event.comment.id }} - reactions: confused diff --git a/Configuration/LICENSE b/Configuration/LICENSE deleted file mode 100644 index 75e73f5..0000000 --- a/Configuration/LICENSE +++ /dev/null @@ -1,134 +0,0 @@ -Copyright (c) 2006-2013 Andy Matuschak. -Copyright (c) 2009-2013 Elgato Systems GmbH. -Copyright (c) 2011-2014 Kornel Lesiński. -Copyright (c) 2015-2017 Mayur Pawashe. -Copyright (c) 2014 C.W. Betts. -Copyright (c) 2014 Petroules Corporation. -Copyright (c) 2014 Big Nerd Ranch. -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -================= -EXTERNAL LICENSES -================= - -bspatch.c and bsdiff.c, from bsdiff 4.3 : - -Copyright 2003-2005 Colin Percival -All rights reserved - -Redistribution and use in source and binary forms, with or without -modification, are permitted providing that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - --- - -sais.c and sais.c, from sais-lite (2010/08/07) : - -The sais-lite copyright is as follows: - -Copyright (c) 2008-2010 Yuta Mori All Rights Reserved. - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - --- - -Portable C implementation of Ed25519, from https://github.com/orlp/ed25519 - -Copyright (c) 2015 Orson Peters - -This software is provided 'as-is', without any express or implied warranty. In no event will the -authors be held liable for any damages arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, including commercial -applications, and to alter it and redistribute it freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not claim that you wrote the - original software. If you use this software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not be misrepresented as - being the original software. - -3. This notice may not be removed or altered from any source distribution. - --- - -SUSignatureVerifier.m: - -Copyright (c) 2011 Mark Hamlin. - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted providing that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. diff --git a/Configuration/README.md b/Configuration/README.md deleted file mode 100644 index 77c4297..0000000 --- a/Configuration/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The following files in this directory were copied from the `Sparkle-for-Swift-Package-Manager`: - -* `generate_appcast` - -See [their license](LICENSE) \ No newline at end of file diff --git a/Configuration/export_options.plist b/Configuration/export_options.plist deleted file mode 100644 index 513e7b6..0000000 --- a/Configuration/export_options.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - method - developer-id - signingCertificate - Apple Development - signingStyle - manual - - diff --git a/Configuration/generate_appcast b/Configuration/generate_appcast deleted file mode 100755 index 1e2df3fc2cc34ecc959b3de534ffbb158761239a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4204896 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 z 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

JiT*$wivH(+ua??J9h4olt|+Q5@bTqOqPn$iAEX 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

DW#NG|87oBAs#T0EQhPcV(Hx1A!1tp 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

  • V1kZT!VH#Pns3!^E_oq%G);?PKH8`JmMW+i9JD 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%0D9|Oz*ev%;D;c0|F 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 z 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�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

    `Olo2f^Su6KHlRwXHMh}0hu2Q@M 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

    06GQ-! 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�&Q?(U}P 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�v4sWW4)im@w9QS;-15a{V#)L} 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%0A?%&t1#=ISB;X~1R@*NMMDWW_g36`!0$5OM3E(Aw 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 z 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ð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

    >LU^?gRmffHow`;3-@@O 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 z


    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

    NBQNufKvje62zGTgJ)V8u<2CBhTFJ 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%0AL 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 z
    Gp4C6h#%P@S}Fg0nbtUKlpM1R=bV-=f;vLWG6k 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 diff --git a/Configuration/generate_html_for_sparkle_release.py b/Configuration/generate_html_for_sparkle_release.py deleted file mode 100644 index 8d4bf53..0000000 --- a/Configuration/generate_html_for_sparkle_release.py +++ /dev/null @@ -1,23 +0,0 @@ - -# Takes as input two files: -# 1. File "title" contains the title of the release -# 2. File "latest_changes" contains the latest changes in the release in markdown format - -# The output is a file "Release/latest_changes.html" which contains the latest changes in html format - -import markdown - -def generate_html_for_latest_changes(): - with open('title', 'r') as f: - title = f.read() - with open('latest_changes', 'r') as f: - changes = f.read() - - text = '# ' + title + '\n\n' + changes - html = markdown.markdown(text) - - with open('Release/latest_changes.html', 'w') as f: - f.write(html) - -if __name__ == '__main__': - generate_html_for_latest_changes() \ No newline at end of file diff --git a/Configuration/generate_latest_changes.py b/Configuration/generate_latest_changes.py deleted file mode 100644 index 0579100..0000000 --- a/Configuration/generate_latest_changes.py +++ /dev/null @@ -1,29 +0,0 @@ - -# Look at file release_notes.md, take all bullet points under the top header. Also return the value of the first and second headers -# The format in the header: # version - title - -def get_latest_release_notes(): - with open('release_notes.md', 'r') as f: - lines = f.readlines() - first_header = lines[0].strip() - title = first_header.split(' - ')[1] - new_version = first_header.split(' - ')[0].replace('# ', '') - lines = lines[2:] - latest_changes = "" - for line in lines: - if line.strip().startswith('-'): - latest_changes += line.strip() + "\n" - elif line.strip().startswith('#'): - break - return title, new_version, latest_changes - -if __name__ == '__main__': - title, new_version, latest_changes = get_latest_release_notes() - print(title, new_version, latest_changes, sep='\n') - # write each value to a file - with open('new_version', 'w') as f: - f.write(new_version) - with open('latest_changes', 'w') as f: - f.write(latest_changes) - with open('title', 'w') as f: - f.write(title) diff --git a/Configuration/remove_last_item_appcast.py b/Configuration/remove_last_item_appcast.py deleted file mode 100644 index f89afb0..0000000 --- a/Configuration/remove_last_item_appcast.py +++ /dev/null @@ -1,41 +0,0 @@ - -def appcast_contains_version(version): - with open('docs/Support/appcast.xml', 'r') as f: - return version in f.read() - -def get_first(str, lines): - for line in lines: - if str in line: - return lines.index(line) - -def remove_last_item_in_appcast(): - lines = [] - with open('docs/Support/appcast.xml', 'r') as f: - lines = f.readlines() - start_index = get_first("", lines) - end_index = get_first("", lines) - lines = lines[:start_index] + lines[end_index+1:] - with open('docs/Support/appcast.xml', 'w') as f: - f.writelines(lines) - -def get_last_item_in_appcast(): - with open('docs/Support/appcast.xml', 'r') as f: - lines = f.readlines() - start_index = get_first("", lines) - end_index = get_first("", lines) - return ' '.join(lines[start_index:end_index+1]) - -def item_channel_is_beta(item): - return "beta" in item - -if __name__ == '__main__': - with open('new_version', 'r') as new_version_file: - new_version = new_version_file.read() - last_item = get_last_item_in_appcast() - if(new_version in last_item): - print("Last item in appcast.xml contains new_version") - if(item_channel_is_beta(last_item)): - remove_last_item_in_appcast() - print("removed last item in appcast.xml") - else: - print("last item is not new_version") diff --git a/Configuration/requirements.txt b/Configuration/requirements.txt deleted file mode 100644 index 3cda9eb..0000000 --- a/Configuration/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -markdown \ No newline at end of file diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 00a78cd..86fec24 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -87,7 +87,6 @@ FEF53A6A2AEEAC0D00CE4981 /* ISSoundAdditions in Frameworks */ = {isa = PBXBuildFile; productRef = FEF53A692AEEAC0D00CE4981 /* ISSoundAdditions */; }; FEF53A6C2AEFF3D600CE4981 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEF53A6B2AEFF3D600CE4981 /* NotificationView.swift */; }; FEF53A6E2AEFF42300CE4981 /* AlertItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEF53A6D2AEFF42300CE4981 /* AlertItem.swift */; }; - FEF53A752AF8010300CE4981 /* Sparkle in Frameworks */ = {isa = PBXBuildFile; productRef = FEF53A742AF8010300CE4981 /* Sparkle */; }; FEFFE5492B488951000887B5 /* StatusBarItemManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEFFE5482B488951000887B5 /* StatusBarItemManager.swift */; }; FEFFE54B2B4997BB000887B5 /* StatusBarIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEFFE54A2B4997BB000887B5 /* StatusBarIcon.swift */; }; FEFFE54D2B49EF97000887B5 /* MenuBarSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEFFE54C2B49EF97000887B5 /* MenuBarSettingsView.swift */; }; @@ -207,7 +206,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - FEF53A752AF8010300CE4981 /* Sparkle in Frameworks */, FEF32F9E2CBD49610084BDAD /* Luminare in Frameworks */, FEFFE5502B4AA04B000887B5 /* Settings in Frameworks */, FE5B56E82D037EEF0077527C /* DefaultsMacros in Frameworks */, @@ -510,7 +508,6 @@ packageProductDependencies = ( FE3F67FD2AAD02D100CCE841 /* LaunchAtLogin */, FEF53A692AEEAC0D00CE4981 /* ISSoundAdditions */, - FEF53A742AF8010300CE4981 /* Sparkle */, FEFFE54F2B4AA04B000887B5 /* Settings */, FEF0660E2B51910700A514F2 /* KeyboardShortcuts */, FEF32F9D2CBD49610084BDAD /* Luminare */, @@ -549,7 +546,6 @@ packageReferences = ( FE3F67FC2AAD02D100CCE841 /* XCRemoteSwiftPackageReference "LaunchAtLogin" */, FEF53A682AEEAC0D00CE4981 /* XCRemoteSwiftPackageReference "ISSoundAdditions" */, - FEF53A732AF8010300CE4981 /* XCRemoteSwiftPackageReference "Sparkle" */, FEFFE54E2B4AA04B000887B5 /* XCRemoteSwiftPackageReference "Settings" */, FEF0660D2B51910700A514F2 /* XCRemoteSwiftPackageReference "KeyboardShortcuts" */, FEF32F9C2CBD49610084BDAD /* XCRemoteSwiftPackageReference "Luminare" */, @@ -926,14 +922,6 @@ kind = branch; }; }; - FEF53A732AF8010300CE4981 /* XCRemoteSwiftPackageReference "Sparkle" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/sparkle-project/Sparkle"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 2.5.1; - }; - }; FEFFE54E2B4AA04B000887B5 /* XCRemoteSwiftPackageReference "Settings" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/sindresorhus/Settings"; @@ -975,11 +963,6 @@ package = FEF53A682AEEAC0D00CE4981 /* XCRemoteSwiftPackageReference "ISSoundAdditions" */; productName = ISSoundAdditions; }; - FEF53A742AF8010300CE4981 /* Sparkle */ = { - isa = XCSwiftPackageProductDependency; - package = FEF53A732AF8010300CE4981 /* XCRemoteSwiftPackageReference "Sparkle" */; - productName = Sparkle; - }; FEFFE54F2B4AA04B000887B5 /* Settings */ = { isa = XCSwiftPackageProductDependency; package = FEFFE54E2B4AA04B000887B5 /* XCRemoteSwiftPackageReference "Settings" */; diff --git a/Tuneful.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Tuneful.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index acc979c..305cc5e 100644 --- a/Tuneful.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Tuneful.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "65163de07630725f7d7a408243fd7c343eee3adeef75f7df73a63ca64834ec28", + "originHash" : "ad92d9010f4569238efa3e12fe62d24dddc7e27fae21ccfa8a1e815cae43f377", "pins" : [ { "identity" : "defaults", @@ -55,15 +55,6 @@ "version" : "3.1.1" } }, - { - "identity" : "sparkle", - "kind" : "remoteSourceControl", - "location" : "https://github.com/sparkle-project/Sparkle", - "state" : { - "revision" : "1f07f4096e52f19b5e7abaa697b7fc592b7ff57c", - "version" : "2.5.1" - } - }, { "identity" : "swift-syntax", "kind" : "remoteSourceControl", diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 8e686ff..f6c1ff9 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -7,7 +7,6 @@ import os import SwiftUI -import Sparkle import KeyboardShortcuts import Settings import Luminare @@ -32,12 +31,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { private var statusBarItemManager: StatusBarItemManager! private var statusBarPlaybackManager: StatusBarPlaybackManager! - private let updateController = SPUStandardUpdaterController( - startingUpdater: true, - updaterDelegate: nil, - userDriverDelegate: nil - ) - // MARK: Settings private var settingsWindow = LuminareTrafficLightedWindow(view: { SettingsView() }) @@ -237,15 +230,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { keyEquivalent: "" ) - - let updates = NSMenuItem( - title: "Check for updates...", - action: #selector(updateController.updater.checkForUpdates), - keyEquivalent: "" - ) - updates.target = updateController.updater - statusBarMenu.addItem(updates) - statusBarMenu.addItem(.separator()) statusBarMenu.addItem( diff --git a/Tuneful/Views/Settings/AboutSettingsView.swift b/Tuneful/Views/Settings/AboutSettingsView.swift index e28eb2b..31970c2 100644 --- a/Tuneful/Views/Settings/AboutSettingsView.swift +++ b/Tuneful/Views/Settings/AboutSettingsView.swift @@ -8,15 +8,8 @@ import SwiftUI import Settings import Luminare -import Sparkle struct AboutSettingsView: View { - private let updateController = SPUStandardUpdaterController( - startingUpdater: true, - updaterDelegate: nil, - userDriverDelegate: nil - ) - var body: some View { Settings.Container(contentWidth: 400) { Settings.Section(title: "") { @@ -34,11 +27,6 @@ struct AboutSettingsView: View { .font(.subheadline) .foregroundColor(.secondary) .frame(maxWidth: .infinity, alignment: .center) - - Button("Check for updates...") { - updateController.checkForUpdates(nil) - } - .buttonStyle(LuminareCompactButtonStyle()) } .frame(maxWidth: .infinity, alignment: .center) From cbd75221245ae00338b4fedf67cdc2c6c19cede4 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 24 Dec 2024 10:58:33 +0100 Subject: [PATCH 47/73] Deprecating Sparkle - deleted Info.plist --- Tuneful/Info.plist | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 Tuneful/Info.plist diff --git a/Tuneful/Info.plist b/Tuneful/Info.plist deleted file mode 100644 index 5a70673..0000000 --- a/Tuneful/Info.plist +++ /dev/null @@ -1,10 +0,0 @@ - - - - - SUFeedURL - https://martinfekete10.github.io/Tuneful/Support/appcast.xml - SUPublicEDKey - QKWHklCXwSX+2xNgAy9ySM9gl7PQZZiy6a59E6sH2ag= - - From 44dd18417aa1463e1ac69e6b9273b8772eb492ee Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 24 Dec 2024 11:03:44 +0100 Subject: [PATCH 48/73] Revert "Deprecating Sparkle - deleted Info.plist" This reverts commit cbd75221245ae00338b4fedf67cdc2c6c19cede4. --- Tuneful/Info.plist | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Tuneful/Info.plist diff --git a/Tuneful/Info.plist b/Tuneful/Info.plist new file mode 100644 index 0000000..5a70673 --- /dev/null +++ b/Tuneful/Info.plist @@ -0,0 +1,10 @@ + + + + + SUFeedURL + https://martinfekete10.github.io/Tuneful/Support/appcast.xml + SUPublicEDKey + QKWHklCXwSX+2xNgAy9ySM9gl7PQZZiy6a59E6sH2ag= + + From e59743357860e8e9b4015fbeca4d219bab509357 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 24 Dec 2024 11:05:11 +0100 Subject: [PATCH 49/73] Delete unused values in Info.plist --- Tuneful/Info.plist | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Tuneful/Info.plist b/Tuneful/Info.plist index 5a70673..0c67376 100644 --- a/Tuneful/Info.plist +++ b/Tuneful/Info.plist @@ -1,10 +1,5 @@ - - SUFeedURL - https://martinfekete10.github.io/Tuneful/Support/appcast.xml - SUPublicEDKey - QKWHklCXwSX+2xNgAy9ySM9gl7PQZZiy6a59E6sH2ag= - + From 8e0843931beb551984547d4e47196a746c38fd23 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 24 Dec 2024 11:06:39 +0100 Subject: [PATCH 50/73] Version updated to 2.0.0 --- Tuneful.xcodeproj/project.pbxproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 86fec24..4132812 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -793,7 +793,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 0.9.0; + CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_ASSET_PATHS = "\"Tuneful/Preview Content\""; DEVELOPMENT_TEAM = RM399ZL5B5; @@ -811,7 +811,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 0.9.0; + MARKETING_VERSION = 2.0.0; PRODUCT_BUNDLE_IDENTIFIER = com.martinfekete.tuneful; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -831,7 +831,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 0.9.0; + CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_ASSET_PATHS = "\"Tuneful/Preview Content\""; DEVELOPMENT_TEAM = RM399ZL5B5; @@ -849,7 +849,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 0.9.0; + MARKETING_VERSION = 2.0.0; PRODUCT_BUNDLE_IDENTIFIER = com.martinfekete.tuneful; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; From be109cb8d15de348ff0db021526cecea01a0ae2e Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 24 Dec 2024 11:31:35 +0100 Subject: [PATCH 51/73] Updated release notes format --- release_notes.md => CHANGELOG.md | 180 ++++++++++++++++++++++--------- 1 file changed, 128 insertions(+), 52 deletions(-) rename release_notes.md => CHANGELOG.md (78%) diff --git a/release_notes.md b/CHANGELOG.md similarity index 78% rename from release_notes.md rename to CHANGELOG.md index f127944..5f59a64 100644 --- a/release_notes.md +++ b/CHANGELOG.md @@ -1,40 +1,76 @@ -# 2.0.0 - Notch integration, new mini player, sleeker UI and much more +## 2.0.0 + +> This is a big release that adds a lot of new features, such as notch integration, new mini player, sleeker UI and contains a lot of bug fixes and performance improvements. + +### New Features - New notch integration now allows you to control the music from notch. For non-notch Macs, this is available on hovering over new song notification +- New ability to resize mini player to 3 sizes - regular, small, and large - New music slider which now looks and feels native - New popover and mini player background type - New UI animations so the app feels more fluid -- New horizontal mini player type -- New ability to resize mini player to 3 sizes - regular, small, and large -- Enhanced onboarding experience -- Refactored the logic that fetches song information which makes the app feel snappier +- New vertical mini player type +- New enhanced onboarding experience + +### Bug Fixes + - Fixed the bug when Spotify was opened in the background even if killed by the user - Fixed the bug when mini player floating preference was ignored on app restart - Fixed the bug when Tuneful wasn't fetching Apple Music song favorite info correctly when changing songs - Fixed the bug when previous song button didn't rewind the song to the beginning if some part already played for Apple Music -# 1.7.1 - Mini player improvement and various bug fixes +### Performance Improvements + +- Refactored the logic that fetches song information which makes the app feel snappier +- Tuneful uses fewer calls when customising UI in the Tuneful settings and relies more on native SwiftUI + +## 1.7.1 + +> Mini player improvement and various bug fixes + +### Bug Fixes - Fixed issue when Tuneful was crashing on launch if Spotify is not installed - Fixed notch notification appearance for Light Mode - Fixed accent color in settings window - Mini player now remembers its position after relaunching Tuneful, huge thanks to @itssali + +### Performance Improvements + - Minor player manager optimisation -# 1.7.0 - Song change notifications, UI improvements and others +## 1.7.0 + +> Song change notifications, UI improvements and others + +### New Features - New feature to display notification when song changes. For Macbooks with notch, this is displayed as beautiful notch animation; for non-notch Macs, its shown as a small floating window - Redesigned settings with sleaker UI + +### Bug Fixes + - Fixed coloring of playback buttons in light mode - Fixed menu bar playback buttons + +### Other Improvements + - Updated icon with better resolution on retina and non-retina displays -# 1.6.7 - Small fixes +## 1.6.7 + +> Small fixes + +### Bug Fixes - Fixed issue when opening Apple Music via menu bar click - Fixed menu bar icon behvaiour when set to Hidden setting -# 1.6.6 - Better podcast handling, more native UI and more +## 1.6.6 + +> Better podcast handling, more native UI and more + +### New Features - When podcast is playing, 15-sec rewind buttons are displayed instead of forwads/backwards buttons - Updated playback buttons to use more native icons @@ -42,116 +78,156 @@ - Improved hadnling of menu bar information for podcasts - New keyboard shortcut to show/hide popover - Lowered minimum menu bar item width from 100px to 75px + +### Performance Improvements + - Code is a bit more optimised to make less background calls to Spotify/Apple Music - Background code maintenance and cleanup -# 1.6.5 - Bug fixes and minor improvements +## 1.6.5 + +> Bug fixes and minor improvements + +### Bug Fixes - Fixed a bug where menu bar info wasn't currently updated when music player was killed - Fixed a bug where equaliser animation preference wasn't correctly udpated on the settings window + +### Other Improvements + - Made a small improvement to equaliser animation - Settings window spacing is a bit improved -# 1.6.4 - Colored menu bar equaliser +## 1.6.4 + +> Colored menu bar equaliser + +### New Features - Menu bar equaliser animation is now colored based on album art -# 1.6.3 - Various smaller features and bug fixes +## 1.6.3 + +> Various smaller features and bug fixes + +### New Features - New option to show animated equaliser in menubar (instead of albumart/app icon) when music is playing - New ability to add keyboard shortcut to show/hide menu bar item - New option to disable popover window altogether - when enabled, music player will be opened insted of the popover window + +### Other Improvements + - Fixed bug with scrolling Open Apple Music text when Apple Music is quit - Smaller under the hood improvements -# 1.6.2 - Fixed blank window on launch +## 1.6.2 + +> Fixed blank window on launch + +### Bug Fixes - Fixed opening a blank window when starting Tuneful -# 1.6.1 - Option to disable scrolling menu bar text +## 1.6.1 + +> Option to disable scrolling menu bar text + +### New Features - Added new option to disable scrolling menu bar text as it may be distracting + +### Bug Fixes + - Fixed bug when the text was scrolling even if the width of menu bar item was large enough -# 1.6.0 - New popover style option, menu bar customization and more +## 1.6.0 + +> New popover style option, menu bar customization and more + +### New Features - New minimalist popover option - you can now customize the look of the popover by selecting from 2 styles - New option to hide menu bar item when the music is not playing - New option to hide the icon/album art in the menu bar item and only display currently playing song info - Slight improvement to the look of a full-sized mini player, making the controls a bit wider - Slight improvement to the look of menu bar items + +### Bug Fixes + - Fixed behaviour when closing the popover by clicking on the menu bar item, which would close and re-open the popover before - thanks to @robbiewxyz for fixing this! -# 1.5.0 - Playback controls in menu bar +## 1.5.0 + +> Playback controls in menu bar + +### New Features - New feature to control playback by new menu bar control buttons - Ability to set behaviour of mini player window to act as a normal window - Menu bar item width now resizes when the song information is smaller than max width set in settings to avoid empty bezels on the sides -# 1.4.0 - Scrolling menu bar text +## 1.4.0 + +> Scrolling menu bar text + +### New Features - Menu bar text is now scrolling if it does not fit the max width - New option to hide menu bar text when nothing is currently playing - New keyboard shortcut to quickly switch between Spotify and Apple Music - Ability to switch between Spotify and Apple Music from new menu bar submenu -- Fixed an issue when incremental volume increase would break the UI on max volume -- Fixed an issue when progress bar would not update until the mini player window is displayed for the first time - Minor settings improvements - Minor mini player improvements -# 1.3.0 - New mini player options and volume adjustments +### Bug Fixes + +- Fixed an issue when incremental volume increase would break the UI on max volume +- Fixed an issue when progress bar would not update until the mini player window is displayed for the first time + +## 1.3.0 + +> New mini player options and volume adjustments + +### New Features - New feature to customize the look of mini player - you can now choose from 2 styles - You can now hide mini player window by right-clicking and choosing Hide window option - Mini player is now easier to move around - Volume slider now adjusts Apple Music/Spotify instead of a system volume -# 1.2.0 - More customization and Apple Music favorites fix +## 1.2.0 + +> More customization and Apple Music favorites fix + +### New Features - You can now choose if you want to have a transparent background or blurred artwork of current song as a background, both in menu bar popover and mini player window - Fixed a bug where songs were not being added to Apple Music favorites after clicking heart button - Changed Add to Favorites icon from heart to star to make it consistent with Apple Music -# 1.1.0 - Keyboard shortcuts +## 1.1.0 + +> Keyboard shortcuts + +### New Features - New feature to setup global keyboard shortcuts to control music and toggle mini player window + +### Bug Fixes + - Fixed a bug where opening settings would crash the app for some users - Fixed a bug where the app did not open for some users - Other minor bug fixes and improvements -# 1.0.0 - Song information in menu bar +## 1.0.0 + +> Song information in menu bar + +### New Features - New feature to display song information directly in menu bar - New settings window with ability to customize information displayed in menu bar - Fixed a bug where progress bar and play time were not sometimes updated - Popover UI tweaks - Other minor bug fixes and improvements - -# 0.9.6 - Minor fixes - -- Fixed "About..." menu item behaviour - -# 0.9.5 - UI fixes - -- New icon -- Minor popover UI spacing improvements - -# 0.9.4 - Sparkle fix v2 - -- Test Sparkle update - -# 0.9.3 - Sparkle fix maybe - -- Test Sparkle update - -# 0.9.2 - Sparkle test - -- Test Sparkle update - -# 0.9.1 - Update test - -- Test the runner and Sparkle update - -# 0.9.0 - -- Initial release From bf530802516df9205411f9a02e1021c79ef0c9e6 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 24 Dec 2024 11:56:30 +0100 Subject: [PATCH 52/73] Split mini player settings and popover settings --- Tuneful.xcodeproj/project.pbxproj | 12 ++-- Tuneful/Extensions/Settings+Extension.swift | 3 +- Tuneful/Tuneful.swift | 25 +++++-- ...iew.swift => MiniPlayerSettingsView.swift} | 51 +-------------- .../Views/Settings/PopoverSettingsView.swift | 65 +++++++++++++++++++ 5 files changed, 96 insertions(+), 60 deletions(-) rename Tuneful/Views/Settings/{AppearanceSettingsView.swift => MiniPlayerSettingsView.swift} (64%) create mode 100644 Tuneful/Views/Settings/PopoverSettingsView.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 4132812..77ca0b0 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -9,7 +9,7 @@ /* Begin PBXBuildFile section */ FE08CE132CFC74E200F047CB /* SettingsWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE08CE122CFC74DE00F047CB /* SettingsWindow.swift */; }; FE08CE172CFCC53500F047CB /* NotchSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE08CE162CFCC51900F047CB /* NotchSettingsView.swift */; }; - FE08CE192CFCC76E00F047CB /* AppearanceSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE08CE182CFCC76700F047CB /* AppearanceSettingsView.swift */; }; + FE08CE192CFCC76E00F047CB /* MiniPlayerSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE08CE182CFCC76700F047CB /* MiniPlayerSettingsView.swift */; }; FE1A62F02CBBE3F4001C13CE /* FetchedAlbumArt.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE1A62EF2CBBE3ED001C13CE /* FetchedAlbumArt.swift */; }; FE1A62FB2CBC1B09001C13CE /* DynamicNotch.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE1A62F22CBC1B09001C13CE /* DynamicNotch.swift */; }; FE1A62FC2CBC1B09001C13CE /* NSScreen+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE1A62F82CBC1B09001C13CE /* NSScreen+Extensions.swift */; }; @@ -71,6 +71,7 @@ FE9FCF232CAEC0C90015DF4D /* SpotifyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF222CAEC0C50015DF4D /* SpotifyManager.swift */; }; FE9FCF252CAEC2780015DF4D /* AppleMusicManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */; }; FEA6FB232B04169B00DACC43 /* AudioDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA6FB222B04169B00DACC43 /* AudioDevice.swift */; }; + FEB21FB82D1AC71400849679 /* PopoverSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEB21FB72D1AC71400849679 /* PopoverSettingsView.swift */; }; FEBA35EA2D17566E0081A3F2 /* VerticalMiniPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */; }; FEBA35EC2D1766790081A3F2 /* MiniPlayerScaleFactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */; }; FEBA3D022B5824D700E25A67 /* BackgroundType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA3D012B5824D700E25A67 /* BackgroundType.swift */; }; @@ -114,7 +115,7 @@ /* Begin PBXFileReference section */ FE08CE122CFC74DE00F047CB /* SettingsWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsWindow.swift; sourceTree = ""; }; FE08CE162CFCC51900F047CB /* NotchSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotchSettingsView.swift; sourceTree = ""; }; - FE08CE182CFCC76700F047CB /* AppearanceSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppearanceSettingsView.swift; sourceTree = ""; }; + FE08CE182CFCC76700F047CB /* MiniPlayerSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerSettingsView.swift; sourceTree = ""; }; FE1A62EF2CBBE3ED001C13CE /* FetchedAlbumArt.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchedAlbumArt.swift; sourceTree = ""; }; FE1A62F12CBC1B09001C13CE /* BlurModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlurModifier.swift; sourceTree = ""; }; FE1A62F22CBC1B09001C13CE /* DynamicNotch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DynamicNotch.swift; sourceTree = ""; }; @@ -178,6 +179,7 @@ FE9FCF222CAEC0C50015DF4D /* SpotifyManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpotifyManager.swift; sourceTree = ""; }; FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppleMusicManager.swift; sourceTree = ""; }; FEA6FB222B04169B00DACC43 /* AudioDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioDevice.swift; sourceTree = ""; }; + FEB21FB72D1AC71400849679 /* PopoverSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverSettingsView.swift; sourceTree = ""; }; FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerticalMiniPlayerView.swift; sourceTree = ""; }; FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerScaleFactor.swift; sourceTree = ""; }; FEBA3D012B5824D700E25A67 /* BackgroundType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundType.swift; sourceTree = ""; }; @@ -457,7 +459,8 @@ FEF0660A2B51905200A514F2 /* Settings */ = { isa = PBXGroup; children = ( - FE08CE182CFCC76700F047CB /* AppearanceSettingsView.swift */, + FE08CE182CFCC76700F047CB /* MiniPlayerSettingsView.swift */, + FEB21FB72D1AC71400849679 /* PopoverSettingsView.swift */, FE08CE162CFCC51900F047CB /* NotchSettingsView.swift */, FEFFE54C2B49EF97000887B5 /* MenuBarSettingsView.swift */, FEF0660B2B51907200A514F2 /* KeyboardShortcutSettingsView.swift */, @@ -586,7 +589,7 @@ FE7B09D22CB997F600FBB6F8 /* AppIcons.swift in Sources */, FEF0660C2B51907200A514F2 /* KeyboardShortcutSettingsView.swift in Sources */, FEA6FB232B04169B00DACC43 /* AudioDevice.swift in Sources */, - FE08CE192CFCC76E00F047CB /* AppearanceSettingsView.swift in Sources */, + FE08CE192CFCC76E00F047CB /* MiniPlayerSettingsView.swift in Sources */, FE3189F82A7C3B1A006B2D59 /* PermissionHelper.swift in Sources */, FE2368A02B62EB7400B43D8B /* ShowStatusBarTrackInfo.swift in Sources */, FE2AEE392A93A50900E8D576 /* PressButtonStyle.swift in Sources */, @@ -650,6 +653,7 @@ FE25549B2CA95F87003DAB77 /* AddToFavoritesView.swift in Sources */, FE3189FA2A7C3B8C006B2D59 /* OnboardingView.swift in Sources */, FE8CE1542C1E03F30053FDEA /* CompactPopoverView.swift in Sources */, + FEB21FB82D1AC71400849679 /* PopoverSettingsView.swift in Sources */, FE2AEE342A8FE0F200E8D576 /* Settings+Extension.swift in Sources */, FE4808F42B51C3870077BDAA /* GeneralSettingsView.swift in Sources */, FE1F7E952B89E92A00B702AD /* StatusBarPlaybackManager.swift in Sources */, diff --git a/Tuneful/Extensions/Settings+Extension.swift b/Tuneful/Extensions/Settings+Extension.swift index 2940dc9..833bc1a 100644 --- a/Tuneful/Extensions/Settings+Extension.swift +++ b/Tuneful/Extensions/Settings+Extension.swift @@ -12,7 +12,8 @@ import enum Settings.Settings extension Settings.PaneIdentifier { static let general = Self("general") static let menuBar = Self("menuBar") - static let appearance = Self("appearance") + static let popover = Self("popover") + static let miniPlayer = Self("miniPlayer") static let notch = Self("notch") static let keyboard = Self("keyboard") static let about = Self("about") diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index f6c1ff9..c0d430a 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -59,13 +59,25 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { return Settings.PaneHostingController(pane: paneView) } - let AppearanceSettingsViewController: () -> SettingsPane = { + let PopoverSettingsViewController: () -> SettingsPane = { let paneView = Settings.Pane( - identifier: .appearance, - title: "Appearance", - toolbarIcon: NSImage(systemSymbolName: "paintbrush", accessibilityDescription: "Appearance settings")! + identifier: .popover, + title: "Popover", + toolbarIcon: NSImage(systemSymbolName: "square", accessibilityDescription: "Popover settings")! ) { - AppearanceSettingsView() + PopoverSettingsView() + } + + return Settings.PaneHostingController(pane: paneView) + } + + let MiniPlayerSettingsViewController: () -> SettingsPane = { + let paneView = Settings.Pane( + identifier: .miniPlayer, + title: "Mini player", + toolbarIcon: NSImage(systemSymbolName: "play.rectangle.on.rectangle.fill", accessibilityDescription: "Mini player settings")! + ) { + MiniPlayerSettingsView() } return Settings.PaneHostingController(pane: paneView) @@ -430,7 +442,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { SettingsWindowController( panes: [ GeneralSettingsViewController(), - AppearanceSettingsViewController(), + PopoverSettingsViewController(), + MiniPlayerSettingsViewController(), MenuBarSettingsViewController(), NotchSettingsViewController(), KeyboardShortcutsSettingsViewController(), diff --git a/Tuneful/Views/Settings/AppearanceSettingsView.swift b/Tuneful/Views/Settings/MiniPlayerSettingsView.swift similarity index 64% rename from Tuneful/Views/Settings/AppearanceSettingsView.swift rename to Tuneful/Views/Settings/MiniPlayerSettingsView.swift index cb0d939..87c3ebb 100644 --- a/Tuneful/Views/Settings/AppearanceSettingsView.swift +++ b/Tuneful/Views/Settings/MiniPlayerSettingsView.swift @@ -10,11 +10,7 @@ import Settings import Luminare import Defaults -struct AppearanceSettingsView: View { - @Default(.popoverIsEnabled) private var popoverIsEnabled - @Default(.popoverType) private var popoverType - @Default(.popoverBackground) private var popoverBackground - +struct MiniPlayerSettingsView: View { @Default(.showPlayerWindow) private var showPlayerWindow @Default(.miniPlayerWindowOnTop) private var miniPlayerWindowOnTop @Default(.miniPlayerType) private var miniPlayerType @@ -24,50 +20,7 @@ struct AppearanceSettingsView: View { var body: some View { Settings.Container(contentWidth: 400) { Settings.Section(title: "") { - LuminareSection("Popover") { - LuminareToggle( - "Enable popover", - isOn: $popoverIsEnabled - ) - - HStack { - Text("Popover style") - .foregroundStyle(popoverIsEnabled ? .primary : .tertiary) - - Spacer() - - Picker("", selection: $popoverType) { - ForEach(PopoverType.allCases, id: \.self) { value in - Text(value.localizedName).tag(value) - } - } - .frame(width: 150) - .onChange(of: popoverType) { _ in - NSApplication.shared.sendAction(#selector(AppDelegate.setupPopover), to: nil, from: nil) - } - .disabled(!popoverIsEnabled) - } - .padding(8) - - HStack { - Text("Background") - .foregroundStyle(popoverIsEnabled ? .primary : .tertiary) - - Spacer() - - Picker("", selection: $popoverBackground) { - ForEach(BackgroundType.allCases, id: \.self) { value in - Text(value.localizedName).tag(value) - } - } - .frame(width: 150) - .disabled(!popoverIsEnabled) - } - .padding(8) - } - .padding(.bottom, 10) - - LuminareSection("Mini player") { + LuminareSection { LuminareToggle( "Show mini player", isOn: $showPlayerWindow diff --git a/Tuneful/Views/Settings/PopoverSettingsView.swift b/Tuneful/Views/Settings/PopoverSettingsView.swift new file mode 100644 index 0000000..5a31afc --- /dev/null +++ b/Tuneful/Views/Settings/PopoverSettingsView.swift @@ -0,0 +1,65 @@ +// +// AppearanceSettingsView.swift +// Tuneful +// +// Created by Martin Fekete on 01/12/2024. +// + +import SwiftUI +import Settings +import Luminare +import Defaults + +struct PopoverSettingsView: View { + @Default(.popoverIsEnabled) private var popoverIsEnabled + @Default(.popoverType) private var popoverType + @Default(.popoverBackground) private var popoverBackground + + var body: some View { + Settings.Container(contentWidth: 400) { + Settings.Section(title: "") { + LuminareSection { + LuminareToggle( + "Enable popover", + isOn: $popoverIsEnabled + ) + + HStack { + Text("Popover style") + .foregroundStyle(popoverIsEnabled ? .primary : .tertiary) + + Spacer() + + Picker("", selection: $popoverType) { + ForEach(PopoverType.allCases, id: \.self) { value in + Text(value.localizedName).tag(value) + } + } + .frame(width: 150) + .onChange(of: popoverType) { _ in + NSApplication.shared.sendAction(#selector(AppDelegate.setupPopover), to: nil, from: nil) + } + .disabled(!popoverIsEnabled) + } + .padding(8) + + HStack { + Text("Background") + .foregroundStyle(popoverIsEnabled ? .primary : .tertiary) + + Spacer() + + Picker("", selection: $popoverBackground) { + ForEach(BackgroundType.allCases, id: \.self) { value in + Text(value.localizedName).tag(value) + } + } + .frame(width: 150) + .disabled(!popoverIsEnabled) + } + .padding(8) + } + } + } + } +} From 814b0a3813dde42da4c4658580651c156a7df072 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Tue, 24 Dec 2024 12:29:54 +0100 Subject: [PATCH 53/73] Heart, GitHub and globe icons --- Tuneful.xcodeproj/project.pbxproj | 4 +++ .../github.imageset/Contents.json | 23 ++++++++++++ .../github.imageset/github 1.png | Bin 0 -> 8640 bytes .../github.imageset/github 2.png | Bin 0 -> 8640 bytes .../github.imageset/github.png | Bin 0 -> 8640 bytes .../globe.imageset/Contents.json | 23 ++++++++++++ .../globe.imageset/globe 1.png | Bin 0 -> 19820 bytes .../globe.imageset/globe 2.png | Bin 0 -> 19820 bytes .../Assets.xcassets/globe.imageset/globe.png | Bin 0 -> 19820 bytes .../heart.imageset/Contents.json | 23 ++++++++++++ .../heart.imageset/heart 1.png | Bin 0 -> 3040 bytes .../heart.imageset/heart 2.png | Bin 0 -> 3040 bytes .../Assets.xcassets/heart.imageset/heart.png | Bin 0 -> 3040 bytes Tuneful/Views/IconButton.swift | 33 ++++++++++++++++++ .../Views/Settings/AboutSettingsView.swift | 21 +++++++---- 15 files changed, 121 insertions(+), 6 deletions(-) create mode 100644 Tuneful/Assets.xcassets/github.imageset/Contents.json create mode 100644 Tuneful/Assets.xcassets/github.imageset/github 1.png create mode 100644 Tuneful/Assets.xcassets/github.imageset/github 2.png create mode 100644 Tuneful/Assets.xcassets/github.imageset/github.png create mode 100644 Tuneful/Assets.xcassets/globe.imageset/Contents.json create mode 100644 Tuneful/Assets.xcassets/globe.imageset/globe 1.png create mode 100644 Tuneful/Assets.xcassets/globe.imageset/globe 2.png create mode 100644 Tuneful/Assets.xcassets/globe.imageset/globe.png create mode 100644 Tuneful/Assets.xcassets/heart.imageset/Contents.json create mode 100644 Tuneful/Assets.xcassets/heart.imageset/heart 1.png create mode 100644 Tuneful/Assets.xcassets/heart.imageset/heart 2.png create mode 100644 Tuneful/Assets.xcassets/heart.imageset/heart.png create mode 100644 Tuneful/Views/IconButton.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 77ca0b0..a8478c2 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -72,6 +72,7 @@ FE9FCF252CAEC2780015DF4D /* AppleMusicManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */; }; FEA6FB232B04169B00DACC43 /* AudioDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA6FB222B04169B00DACC43 /* AudioDevice.swift */; }; FEB21FB82D1AC71400849679 /* PopoverSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEB21FB72D1AC71400849679 /* PopoverSettingsView.swift */; }; + FEB21FBA2D1ACDCD00849679 /* IconButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEB21FB92D1ACDCA00849679 /* IconButton.swift */; }; FEBA35EA2D17566E0081A3F2 /* VerticalMiniPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */; }; FEBA35EC2D1766790081A3F2 /* MiniPlayerScaleFactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */; }; FEBA3D022B5824D700E25A67 /* BackgroundType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA3D012B5824D700E25A67 /* BackgroundType.swift */; }; @@ -180,6 +181,7 @@ FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppleMusicManager.swift; sourceTree = ""; }; FEA6FB222B04169B00DACC43 /* AudioDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioDevice.swift; sourceTree = ""; }; FEB21FB72D1AC71400849679 /* PopoverSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverSettingsView.swift; sourceTree = ""; }; + FEB21FB92D1ACDCA00849679 /* IconButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconButton.swift; sourceTree = ""; }; FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerticalMiniPlayerView.swift; sourceTree = ""; }; FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerScaleFactor.swift; sourceTree = ""; }; FEBA3D012B5824D700E25A67 /* BackgroundType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundType.swift; sourceTree = ""; }; @@ -280,6 +282,7 @@ FE3189DB2A7B9D0B006B2D59 /* Views */ = { isa = PBXGroup; children = ( + FEB21FB92D1ACDCA00849679 /* IconButton.swift */, FE5B56F12D059B350077527C /* BackgroundView.swift */, FE31AEDB2CFBCB71002818ED /* SettingsView.swift */, FE2554A12CA9CA93003DAB77 /* HoverButton.swift */, @@ -648,6 +651,7 @@ FE6BFD062A73ACFD00D3321F /* Constants.swift in Sources */, FEFFE55B2B4FE028000887B5 /* DateComponentsFormatter+Extension.swift in Sources */, FEF53A642AEEA43600CE4981 /* VolumeControlView.swift in Sources */, + FEB21FBA2D1ACDCD00849679 /* IconButton.swift in Sources */, FE9FCF232CAEC0C90015DF4D /* SpotifyManager.swift in Sources */, FE31AED02CF50708002818ED /* PlaybackPositionView.swift in Sources */, FE25549B2CA95F87003DAB77 /* AddToFavoritesView.swift in Sources */, diff --git a/Tuneful/Assets.xcassets/github.imageset/Contents.json b/Tuneful/Assets.xcassets/github.imageset/Contents.json new file mode 100644 index 0000000..630a89b --- /dev/null +++ b/Tuneful/Assets.xcassets/github.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "github.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "github 1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "github 2.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Tuneful/Assets.xcassets/github.imageset/github 1.png b/Tuneful/Assets.xcassets/github.imageset/github 1.png new file mode 100644 index 0000000000000000000000000000000000000000..9490ffc6d2e158b266f719d58365905c1c5060cb GIT binary patch literal 8640 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 literal 0 HcmV?d00001 diff --git a/Tuneful/Assets.xcassets/github.imageset/github 2.png b/Tuneful/Assets.xcassets/github.imageset/github 2.png new file mode 100644 index 0000000000000000000000000000000000000000..9490ffc6d2e158b266f719d58365905c1c5060cb GIT binary patch literal 8640 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 literal 0 HcmV?d00001 diff --git a/Tuneful/Assets.xcassets/github.imageset/github.png b/Tuneful/Assets.xcassets/github.imageset/github.png new file mode 100644 index 0000000000000000000000000000000000000000..9490ffc6d2e158b266f719d58365905c1c5060cb GIT binary patch literal 8640 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 literal 0 HcmV?d00001 diff --git a/Tuneful/Assets.xcassets/globe.imageset/Contents.json b/Tuneful/Assets.xcassets/globe.imageset/Contents.json new file mode 100644 index 0000000..42301e7 --- /dev/null +++ b/Tuneful/Assets.xcassets/globe.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "globe.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "globe 1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "globe 2.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Tuneful/Assets.xcassets/globe.imageset/globe 1.png b/Tuneful/Assets.xcassets/globe.imageset/globe 1.png new file mode 100644 index 0000000000000000000000000000000000000000..853da5a68053412cf318eb69e6c0996db657fb8b GIT binary patch literal 19820 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 VFff5a@r?ig002ovPDHLkV1k!5-B$nr literal 0 HcmV?d00001 diff --git a/Tuneful/Assets.xcassets/globe.imageset/globe 2.png b/Tuneful/Assets.xcassets/globe.imageset/globe 2.png new file mode 100644 index 0000000000000000000000000000000000000000..853da5a68053412cf318eb69e6c0996db657fb8b GIT binary patch literal 19820 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 VFff5a@r?ig002ovPDHLkV1k!5-B$nr literal 0 HcmV?d00001 diff --git a/Tuneful/Assets.xcassets/globe.imageset/globe.png b/Tuneful/Assets.xcassets/globe.imageset/globe.png new file mode 100644 index 0000000000000000000000000000000000000000..853da5a68053412cf318eb69e6c0996db657fb8b GIT binary patch literal 19820 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 VFff5a@r?ig002ovPDHLkV1k!5-B$nr literal 0 HcmV?d00001 diff --git a/Tuneful/Assets.xcassets/heart.imageset/Contents.json b/Tuneful/Assets.xcassets/heart.imageset/Contents.json new file mode 100644 index 0000000..6686ec0 --- /dev/null +++ b/Tuneful/Assets.xcassets/heart.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "heart.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "heart 1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "heart 2.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Tuneful/Assets.xcassets/heart.imageset/heart 1.png b/Tuneful/Assets.xcassets/heart.imageset/heart 1.png new file mode 100644 index 0000000000000000000000000000000000000000..78f907a8a7752459a2ab9987a7ec822a0a113b32 GIT binary patch literal 3040 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 Date: Tue, 24 Dec 2024 13:14:38 +0100 Subject: [PATCH 54/73] Preview miniPlayers for screenshots --- Tuneful.xcodeproj/project.pbxproj | 26 +++++++++-------- Tuneful/{Utilities => Helpers}/AppIcons.swift | 0 .../{Utilities => Helpers}/Constants.swift | 0 Tuneful/Helpers/MiniPlayerPreviewHelper.swift | 28 +++++++++++++++++++ .../PermissionHelper.swift | 0 Tuneful/Tuneful.swift | 6 +++- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 6 +++- Tuneful/Windows/MiniPlayerWindow.swift | 2 +- 8 files changed, 54 insertions(+), 14 deletions(-) rename Tuneful/{Utilities => Helpers}/AppIcons.swift (100%) rename Tuneful/{Utilities => Helpers}/Constants.swift (100%) create mode 100644 Tuneful/Helpers/MiniPlayerPreviewHelper.swift rename Tuneful/{Utilities => Helpers}/PermissionHelper.swift (100%) diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index a8478c2..368e5b7 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -73,6 +73,7 @@ FEA6FB232B04169B00DACC43 /* AudioDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA6FB222B04169B00DACC43 /* AudioDevice.swift */; }; FEB21FB82D1AC71400849679 /* PopoverSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEB21FB72D1AC71400849679 /* PopoverSettingsView.swift */; }; FEB21FBA2D1ACDCD00849679 /* IconButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEB21FB92D1ACDCA00849679 /* IconButton.swift */; }; + FEB21FBD2D1AD6C400849679 /* MiniPlayerPreviewHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEB21FBC2D1AD6B400849679 /* MiniPlayerPreviewHelper.swift */; }; FEBA35EA2D17566E0081A3F2 /* VerticalMiniPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */; }; FEBA35EC2D1766790081A3F2 /* MiniPlayerScaleFactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */; }; FEBA3D022B5824D700E25A67 /* BackgroundType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA3D012B5824D700E25A67 /* BackgroundType.swift */; }; @@ -182,6 +183,7 @@ FEA6FB222B04169B00DACC43 /* AudioDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioDevice.swift; sourceTree = ""; }; FEB21FB72D1AC71400849679 /* PopoverSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverSettingsView.swift; sourceTree = ""; }; FEB21FB92D1ACDCA00849679 /* IconButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconButton.swift; sourceTree = ""; }; + FEB21FBC2D1AD6B400849679 /* MiniPlayerPreviewHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerPreviewHelper.swift; sourceTree = ""; }; FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerticalMiniPlayerView.swift; sourceTree = ""; }; FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerScaleFactor.swift; sourceTree = ""; }; FEBA3D012B5824D700E25A67 /* BackgroundType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundType.swift; sourceTree = ""; }; @@ -345,6 +347,7 @@ FE6BFCE52A72F37800D3321F /* Tuneful */ = { isa = PBXGroup; children = ( + FEB21FBB2D1AD66B00849679 /* Helpers */, FE5B56EB2D0386EC0077527C /* Defaults */, FEFFE5532B4FDDEA000887B5 /* Extensions */, FEA6FB212B04168000DACC43 /* AudioDevices */, @@ -354,7 +357,6 @@ FE37A0312A82960F006FBA5B /* Buttons */, FE3189FB2A7C3CEC006B2D59 /* Windows */, FE3189DB2A7B9D0B006B2D59 /* Views */, - FE6BFD042A73ACEE00D3321F /* Utilities */, FE6BFCFF2A73AB5800D3321F /* ScriptingBridge */, FE6BFCFC2A73A87600D3321F /* Managers */, FE6BFCF92A73A7CA00D3321F /* Models */, @@ -412,16 +414,6 @@ path = ScriptingBridge; sourceTree = ""; }; - FE6BFD042A73ACEE00D3321F /* Utilities */ = { - isa = PBXGroup; - children = ( - FE7B09D12CB997F300FBB6F8 /* AppIcons.swift */, - FE6BFD052A73ACFD00D3321F /* Constants.swift */, - FE3189F72A7C3B1A006B2D59 /* PermissionHelper.swift */, - ); - path = Utilities; - sourceTree = ""; - }; FE6F65F62AB62AFB00CE4D96 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -448,6 +440,17 @@ path = AudioDevices; sourceTree = ""; }; + FEB21FBB2D1AD66B00849679 /* Helpers */ = { + isa = PBXGroup; + children = ( + FEB21FBC2D1AD6B400849679 /* MiniPlayerPreviewHelper.swift */, + FE7B09D12CB997F300FBB6F8 /* AppIcons.swift */, + FE6BFD052A73ACFD00D3321F /* Constants.swift */, + FE3189F72A7C3B1A006B2D59 /* PermissionHelper.swift */, + ); + path = Helpers; + sourceTree = ""; + }; FEE486E32B5D173A00AB712F /* MiniPlayer */ = { isa = PBXGroup; children = ( @@ -619,6 +622,7 @@ FE9FCF252CAEC2780015DF4D /* AppleMusicManager.swift in Sources */, FE5B3CA22AB0AC700038B6E4 /* PopoverView.swift in Sources */, FE6BFD0C2A73B2D400D3321F /* NSImage+Extension.swift in Sources */, + FEB21FBD2D1AD6C400849679 /* MiniPlayerPreviewHelper.swift in Sources */, FE6BFD022A73AB9A00D3321F /* MusicApplication.swift in Sources */, FEBA3D042B58303A00E25A67 /* View+Extension.swift in Sources */, FEBA35EC2D1766790081A3F2 /* MiniPlayerScaleFactor.swift in Sources */, diff --git a/Tuneful/Utilities/AppIcons.swift b/Tuneful/Helpers/AppIcons.swift similarity index 100% rename from Tuneful/Utilities/AppIcons.swift rename to Tuneful/Helpers/AppIcons.swift diff --git a/Tuneful/Utilities/Constants.swift b/Tuneful/Helpers/Constants.swift similarity index 100% rename from Tuneful/Utilities/Constants.swift rename to Tuneful/Helpers/Constants.swift diff --git a/Tuneful/Helpers/MiniPlayerPreviewHelper.swift b/Tuneful/Helpers/MiniPlayerPreviewHelper.swift new file mode 100644 index 0000000..a607e28 --- /dev/null +++ b/Tuneful/Helpers/MiniPlayerPreviewHelper.swift @@ -0,0 +1,28 @@ +// +// MiniPlayerPreviewHelper.swift +// Tuneful +// +// Created by Martin Fekete on 24/12/2024. +// +#if DEBUG +import SwiftUI + +struct MiniPlayerPreviewHelper { + static func setupMiniPlayers(playerManager: PlayerManager) { + for type in MiniPlayerType.allCases { + let miniPlayerWindow = MiniPlayerWindow() + let rootView = MiniPlayerView(miniPlayerType: type).environmentObject(playerManager) + miniPlayerWindow.contentView = NSHostingView(rootView: rootView) + + // This is ugly but we can't correctly set the frame as window is not fully loaded + // Running this one sec later should ensure we have the window fully loaded -> correctly placed + DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { + miniPlayerWindow.contentView?.layer?.cornerRadius = 12.5 + miniPlayerWindow.contentView?.layer?.masksToBounds = true + miniPlayerWindow.makeKeyAndOrderFront(nil) + NSApplication.shared.activate(ignoringOtherApps: true) + } + } + } +} +#endif diff --git a/Tuneful/Utilities/PermissionHelper.swift b/Tuneful/Helpers/PermissionHelper.swift similarity index 100% rename from Tuneful/Utilities/PermissionHelper.swift rename to Tuneful/Helpers/PermissionHelper.swift diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index c0d430a..2cbf311 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -130,7 +130,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { self.playerManager = PlayerManager() self.statusBarItemManager = StatusBarItemManager(playerManager: playerManager) self.statusBarPlaybackManager = StatusBarPlaybackManager(playerManager: playerManager) - self.miniPlayerWindow = MiniPlayerWindow(playerManager: playerManager) + self.miniPlayerWindow = MiniPlayerWindow() NotificationCenter.default.addObserver( self, @@ -144,6 +144,10 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } else { self.mainSetup() } + + #if DEBUG + MiniPlayerPreviewHelper.setupMiniPlayers(playerManager: playerManager) + #endif } func windowShouldClose(_ sender: NSWindow) -> Bool { diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 106ba3e..7a265a7 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -11,11 +11,15 @@ import Defaults struct MiniPlayerView: View { @EnvironmentObject var playerManager: PlayerManager - @Default(.miniPlayerType) private var miniPlayerType @Default(.miniPlayerScaleFactor) private var miniPlayerScaleFactor @Default(.miniPlayerBackground) private var miniPlayerBackground + private var miniPlayerType: MiniPlayerType private var imageSize: CGFloat = 140.0 + + init(miniPlayerType: MiniPlayerType? = nil) { + self.miniPlayerType = miniPlayerType ?? Defaults[.miniPlayerType] + } var body: some View { VStack(spacing: 0) { diff --git a/Tuneful/Windows/MiniPlayerWindow.swift b/Tuneful/Windows/MiniPlayerWindow.swift index f12006a..c24ecc2 100644 --- a/Tuneful/Windows/MiniPlayerWindow.swift +++ b/Tuneful/Windows/MiniPlayerWindow.swift @@ -10,7 +10,7 @@ import AppKit import Defaults class MiniPlayerWindow: NSWindow { - init(playerManager: PlayerManager) { + init() { super.init( contentRect: .zero, styleMask: [.fullSizeContentView, .borderless, .utilityWindow, .nonactivatingPanel], From 67e956eb900d116ec78f5544a95d6b9ac9804dcc Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Thu, 26 Dec 2024 19:42:02 +0100 Subject: [PATCH 55/73] Notchless view offset --- Tuneful/DynamicNotchKit/NotchlessView.swift | 3 ++- Tuneful/Tuneful.swift | 18 +++++++++++------- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 2 +- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Tuneful/DynamicNotchKit/NotchlessView.swift b/Tuneful/DynamicNotchKit/NotchlessView.swift index 196e100..64b2e6d 100644 --- a/Tuneful/DynamicNotchKit/NotchlessView.swift +++ b/Tuneful/DynamicNotchKit/NotchlessView.swift @@ -73,8 +73,9 @@ struct NotchlessView: View where Content: View { } } } - .offset(y: dynamicNotch.isVisible ? 0 : -windowHeight) + .offset(y: dynamicNotch.isVisible ? dynamicNotch.notchHeight : -windowHeight) .animation(dynamicNotch.animation, value: dynamicNotch.contentID) + .transition(.blur.animation(.smooth)) Spacer() } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 2cbf311..69160c3 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -122,10 +122,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { func applicationDidFinishLaunching(_ notification: Notification) { NSApp.setActivationPolicy(.accessory) -// if let bundleID = Bundle.main.bundleIdentifier { -// UserDefaults.standard.removePersistentDomain(forName: bundleID) -// } - self.settingsWindow.isReleasedWhenClosed = false self.playerManager = PlayerManager() self.statusBarItemManager = StatusBarItemManager(playerManager: playerManager) @@ -145,9 +141,17 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { self.mainSetup() } - #if DEBUG - MiniPlayerPreviewHelper.setupMiniPlayers(playerManager: playerManager) - #endif +//#if DEBUG +// if let bundleID = Bundle.main.bundleIdentifier { +// UserDefaults.standard.removePersistentDomain(forName: bundleID) +// } +//#endif +//#if DEBUG +// MiniPlayerPreviewHelper.setupMiniPlayers(playerManager: playerManager) +//#endif +//#if DEBUG +// DynamicNotchInfo(playerManager: playerManager).show(for: 5) +//#endif } func windowShouldClose(_ sender: NSWindow) -> Bool { diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 7a265a7..e0a99e1 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -13,8 +13,8 @@ struct MiniPlayerView: View { @Default(.miniPlayerScaleFactor) private var miniPlayerScaleFactor @Default(.miniPlayerBackground) private var miniPlayerBackground + @Default(.miniPlayerType) private var miniPlayerType - private var miniPlayerType: MiniPlayerType private var imageSize: CGFloat = 140.0 init(miniPlayerType: MiniPlayerType? = nil) { From 48b5d0486ecad62cdcea458d24bca828db560020 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Thu, 26 Dec 2024 21:24:22 +0100 Subject: [PATCH 56/73] Removed MiniPlayerPreviewHelper --- Tuneful.xcodeproj/project.pbxproj | 4 --- Tuneful/Helpers/MiniPlayerPreviewHelper.swift | 28 ------------------- Tuneful/Tuneful.swift | 3 -- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 4 --- 4 files changed, 39 deletions(-) delete mode 100644 Tuneful/Helpers/MiniPlayerPreviewHelper.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 368e5b7..442fb69 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -73,7 +73,6 @@ FEA6FB232B04169B00DACC43 /* AudioDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA6FB222B04169B00DACC43 /* AudioDevice.swift */; }; FEB21FB82D1AC71400849679 /* PopoverSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEB21FB72D1AC71400849679 /* PopoverSettingsView.swift */; }; FEB21FBA2D1ACDCD00849679 /* IconButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEB21FB92D1ACDCA00849679 /* IconButton.swift */; }; - FEB21FBD2D1AD6C400849679 /* MiniPlayerPreviewHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEB21FBC2D1AD6B400849679 /* MiniPlayerPreviewHelper.swift */; }; FEBA35EA2D17566E0081A3F2 /* VerticalMiniPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */; }; FEBA35EC2D1766790081A3F2 /* MiniPlayerScaleFactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */; }; FEBA3D022B5824D700E25A67 /* BackgroundType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA3D012B5824D700E25A67 /* BackgroundType.swift */; }; @@ -183,7 +182,6 @@ FEA6FB222B04169B00DACC43 /* AudioDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioDevice.swift; sourceTree = ""; }; FEB21FB72D1AC71400849679 /* PopoverSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverSettingsView.swift; sourceTree = ""; }; FEB21FB92D1ACDCA00849679 /* IconButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconButton.swift; sourceTree = ""; }; - FEB21FBC2D1AD6B400849679 /* MiniPlayerPreviewHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerPreviewHelper.swift; sourceTree = ""; }; FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerticalMiniPlayerView.swift; sourceTree = ""; }; FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerScaleFactor.swift; sourceTree = ""; }; FEBA3D012B5824D700E25A67 /* BackgroundType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundType.swift; sourceTree = ""; }; @@ -443,7 +441,6 @@ FEB21FBB2D1AD66B00849679 /* Helpers */ = { isa = PBXGroup; children = ( - FEB21FBC2D1AD6B400849679 /* MiniPlayerPreviewHelper.swift */, FE7B09D12CB997F300FBB6F8 /* AppIcons.swift */, FE6BFD052A73ACFD00D3321F /* Constants.swift */, FE3189F72A7C3B1A006B2D59 /* PermissionHelper.swift */, @@ -622,7 +619,6 @@ FE9FCF252CAEC2780015DF4D /* AppleMusicManager.swift in Sources */, FE5B3CA22AB0AC700038B6E4 /* PopoverView.swift in Sources */, FE6BFD0C2A73B2D400D3321F /* NSImage+Extension.swift in Sources */, - FEB21FBD2D1AD6C400849679 /* MiniPlayerPreviewHelper.swift in Sources */, FE6BFD022A73AB9A00D3321F /* MusicApplication.swift in Sources */, FEBA3D042B58303A00E25A67 /* View+Extension.swift in Sources */, FEBA35EC2D1766790081A3F2 /* MiniPlayerScaleFactor.swift in Sources */, diff --git a/Tuneful/Helpers/MiniPlayerPreviewHelper.swift b/Tuneful/Helpers/MiniPlayerPreviewHelper.swift deleted file mode 100644 index a607e28..0000000 --- a/Tuneful/Helpers/MiniPlayerPreviewHelper.swift +++ /dev/null @@ -1,28 +0,0 @@ -// -// MiniPlayerPreviewHelper.swift -// Tuneful -// -// Created by Martin Fekete on 24/12/2024. -// -#if DEBUG -import SwiftUI - -struct MiniPlayerPreviewHelper { - static func setupMiniPlayers(playerManager: PlayerManager) { - for type in MiniPlayerType.allCases { - let miniPlayerWindow = MiniPlayerWindow() - let rootView = MiniPlayerView(miniPlayerType: type).environmentObject(playerManager) - miniPlayerWindow.contentView = NSHostingView(rootView: rootView) - - // This is ugly but we can't correctly set the frame as window is not fully loaded - // Running this one sec later should ensure we have the window fully loaded -> correctly placed - DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { - miniPlayerWindow.contentView?.layer?.cornerRadius = 12.5 - miniPlayerWindow.contentView?.layer?.masksToBounds = true - miniPlayerWindow.makeKeyAndOrderFront(nil) - NSApplication.shared.activate(ignoringOtherApps: true) - } - } - } -} -#endif diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 69160c3..16702e1 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -147,9 +147,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // } //#endif //#if DEBUG -// MiniPlayerPreviewHelper.setupMiniPlayers(playerManager: playerManager) -//#endif -//#if DEBUG // DynamicNotchInfo(playerManager: playerManager).show(for: 5) //#endif } diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index e0a99e1..87350cd 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -16,10 +16,6 @@ struct MiniPlayerView: View { @Default(.miniPlayerType) private var miniPlayerType private var imageSize: CGFloat = 140.0 - - init(miniPlayerType: MiniPlayerType? = nil) { - self.miniPlayerType = miniPlayerType ?? Defaults[.miniPlayerType] - } var body: some View { VStack(spacing: 0) { From 0319f95ac365cd84418dcfb7a004137351863fc7 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Fri, 27 Dec 2024 12:58:50 +0100 Subject: [PATCH 57/73] Fixed timer not starting when hovering over notch while popover is opened --- .../DynamicNotchKit/DynamicNotchInfo.swift | 3 ++ .../DynamicNotchKit/NSScreen+Extensions.swift | 4 +- Tuneful/Managers/PlayerManager.swift | 48 ++++++------------- 3 files changed, 20 insertions(+), 35 deletions(-) diff --git a/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift b/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift index b6f3b16..1344d69 100644 --- a/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift +++ b/Tuneful/DynamicNotchKit/DynamicNotchInfo.swift @@ -31,6 +31,9 @@ internal final class DynamicNotchInfoPublisher: ObservableObject { public class DynamicNotchInfo { @Published var playerManager: PlayerManager + public var isVisible: Bool { + get { internalDynamicNotch.isVisible } + } private var internalDynamicNotch: DynamicNotch public init(contentID: UUID = .init(), style: DynamicNotch.Style = .auto, playerManager: PlayerManager) { diff --git a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift index 11f2e49..8ed366e 100644 --- a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift +++ b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift @@ -18,8 +18,8 @@ extension NSScreen { var hasNotch: Bool { // return false -// return true - auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil + return true +// auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil } var notchSize: NSSize? { diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index 6629ca8..96f35a7 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -81,10 +81,6 @@ public class PlayerManager: ObservableObject { private var notchInfo: DynamicNotchInfo! init() { - // TODO: Media remote framework for other music players -// let bundle = CFBundleCreate(kCFAllocatorDefault, NSURL(fileURLWithPath: "/System/Library/PrivateFrameworks/MediaRemote.framework")) -// let MRMediaRemoteRegisterForNowPlayingNotificationsPointer = CFBundleGetFunctionPointerForName(bundle, "MRMediaRemoteRegisterForNowPlayingNotifications" as CFString) -// self.MRMediaRemoteRegisterForNowPlayingNotifications = unsafeBitCast(MRMediaRemoteRegisterForNowPlayingNotificationsPointer, to: (@convention(c) (DispatchQueue) -> Void).self) // Music app and observers self.playerAppProvider = PlayerAppProvider(notificationSubject: self.notificationSubject) @@ -95,6 +91,7 @@ public class PlayerManager: ObservableObject { // Updating player state every 1 sec self.timerStartSignal.sink { self.getCurrentSeekerPosition() + self.getVolume() self.updatePlayerStateCancellable = Timer.publish( every: 1, on: .main, in: .common ) @@ -130,25 +127,14 @@ public class PlayerManager: ObservableObject { // Clean up existing observers cleanupObservers() - - // TODO: System player -// if connectedApp == .system { -// MRMediaRemoteRegisterForNowPlayingNotifications(DispatchQueue.main) -// -// NotificationCenter.default.publisher(for: NSNotification.Name("kMRMediaRemoteNowPlayingInfoDidChangeNotification")) -// .sink { [weak self] _ in -// self!.playStateOrTrackDidChange(nil) -// } -// .store(in: &cancellables) -// } else { - DistributedNotificationCenter.default().addObserver( - self, - selector: #selector(playStateOrTrackDidChange), - name: NSNotification.Name(rawValue: musicApp.appNotification), - object: nil, - suspensionBehavior: .deliverImmediately - ) -// } + + DistributedNotificationCenter.default().addObserver( + self, + selector: #selector(playStateOrTrackDidChange), + name: NSNotification.Name(rawValue: musicApp.appNotification), + object: nil, + suspensionBehavior: .deliverImmediately + ) observer = UserDefaults.standard.observe(\.connectedApp, options: [.old, .new]) { defaults, change in @@ -180,21 +166,15 @@ public class PlayerManager: ObservableObject { } @objc private func popoverIsOpening(_ notification: NSNotification) { - if !Defaults[.showPlayerWindow] { - self.startTimer() - } + self.startTimer() self.audioDevices = AudioDevice.output.filter { $0.transportType != .virtual } self.getVolume() self.getPlaybackSettingInfo() - popoverIsShown = true } @objc private func popoverIsClosing(_ notification: NSNotification) { - if !Defaults[.showPlayerWindow] { - self.stopTimer() - } - + self.stopTimer() popoverIsShown = false } @@ -392,12 +372,14 @@ public class PlayerManager: ObservableObject { func startTimer() { if !musicApp.isRunning() { return } - self.timerStartSignal.send() + timerStopSignal.send() // So we don't invoke the timer more frequently + timerStartSignal.send() } func stopTimer() { if !musicApp.isRunning() { return } - self.timerStopSignal.send() + if popoverIsShown || notchInfo.isVisible || Defaults[.showPlayerWindow] { return } + timerStopSignal.send() } // MARK: Volume From b159a6b8433ff361e07ff85b3b76c4822b3cda80 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Fri, 27 Dec 2024 13:04:46 +0100 Subject: [PATCH 58/73] Fixed notch triggering few pixels below when mouse hover on notification --- Tuneful/DynamicNotchKit/NotchView.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Tuneful/DynamicNotchKit/NotchView.swift b/Tuneful/DynamicNotchKit/NotchView.swift index c7d87da..394e21b 100644 --- a/Tuneful/DynamicNotchKit/NotchView.swift +++ b/Tuneful/DynamicNotchKit/NotchView.swift @@ -20,7 +20,7 @@ struct NotchView: View where Content: View { Spacer() .frame(width: dynamicNotch.notchWidth, height: dynamicNotch.notchHeight) - if !dynamicNotch.isMouseInside && dynamicNotch.isNotificationVisible { + if dynamicNotch.isNotificationVisible { NotchInfoView(playerManager: dynamicNotch.playerManager, minimumNotchWidth: dynamicNotch.notchWidth) .safeAreaInset(edge: .bottom, spacing: 0) { Color.clear.frame(height: 15) } .safeAreaInset(edge: .leading, spacing: 0) { Color.clear.frame(width: 15) } @@ -55,6 +55,7 @@ struct NotchView: View where Content: View { .onChange(of: dynamicNotch.isMouseInside) { isMouseInside in if isMouseInside { dynamicNotch.playerManager.startTimer() + dynamicNotch.isNotificationVisible = false } else { dynamicNotch.playerManager.stopTimer() } From 4caba955f15cc6dee4f5d759d301df0a16002fdb Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Fri, 27 Dec 2024 14:25:59 +0100 Subject: [PATCH 59/73] Showing/hiding mini player using keys optimised --- .../DynamicNotchKit/NSScreen+Extensions.swift | 4 ++-- Tuneful/Managers/PlayerManager.swift | 3 --- Tuneful/Tuneful.swift | 20 ++++--------------- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 9 +++++++++ .../Settings/MiniPlayerSettingsView.swift | 15 ++++++++------ 5 files changed, 24 insertions(+), 27 deletions(-) diff --git a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift index 8ed366e..11f2e49 100644 --- a/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift +++ b/Tuneful/DynamicNotchKit/NSScreen+Extensions.swift @@ -18,8 +18,8 @@ extension NSScreen { var hasNotch: Bool { // return false - return true -// auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil +// return true + auxiliaryTopLeftArea?.width != nil && auxiliaryTopRightArea?.width != nil } var notchSize: NSSize? { diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index 96f35a7..ad9dd33 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -16,9 +16,6 @@ public class PlayerManager: ObservableObject { var musicApp: PlayerProtocol! var playerAppProvider: PlayerAppProvider! - // TODO: Media remote framework for other music players -// private let MRMediaRemoteRegisterForNowPlayingNotifications: @convention(c) (DispatchQueue) -> Void - var name: String { musicApp.appName } var isRunning: Bool { musicApp.isRunning() } var notification: String { musicApp.appNotification } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 16702e1..d86bfb3 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -196,7 +196,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } KeyboardShortcuts.onKeyUp(for: .showMiniPlayer) { - self.toggleMiniPlayer() + Defaults[.showPlayerWindow] = !Defaults[.showPlayerWindow] } KeyboardShortcuts.onKeyUp(for: .changeMusicPlayer) { @@ -280,23 +280,10 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { @IBAction func showHideMiniPlayer(_ sender: NSMenuItem) { if sender.state == .on { sender.state = .off - shouldShowMiniPlayer(show: false) - } else { - sender.state = .on - shouldShowMiniPlayer(show: true) - } - } - - private func shouldShowMiniPlayer(show: Bool) { - if !show { Defaults[.showPlayerWindow] = false - playerManager.timerStopSignal.send() - miniPlayerWindow.close() } else { + sender.state = .on Defaults[.showPlayerWindow] = true - playerManager.timerStartSignal.send() - miniPlayerWindow.makeKeyAndOrderFront(nil) - NSApplication.shared.activate(ignoringOtherApps: true) } } @@ -421,7 +408,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { self.miniPlayerWindow.setFrameOrigin(position) self.miniPlayerWindow.contentView?.layer?.cornerRadius = 12.5 self.miniPlayerWindow.contentView?.layer?.masksToBounds = true - self.shouldShowMiniPlayer(show: Defaults[.showPlayerWindow]) + self.miniPlayerWindow.makeKeyAndOrderFront(nil) + NSApplication.shared.activate(ignoringOtherApps: true) } } diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 87350cd..0b2336f 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -11,6 +11,7 @@ import Defaults struct MiniPlayerView: View { @EnvironmentObject var playerManager: PlayerManager + @Default(.showPlayerWindow) private var showPlayerWindow @Default(.miniPlayerScaleFactor) private var miniPlayerScaleFactor @Default(.miniPlayerBackground) private var miniPlayerBackground @Default(.miniPlayerType) private var miniPlayerType @@ -59,6 +60,14 @@ struct MiniPlayerView: View { .strokeBorder(.quaternary, lineWidth: 1.5) } ) + .opacity(showPlayerWindow ? 1 : 0) + .onChange(of: showPlayerWindow) { show in + if show { + playerManager.startTimer() + } else { + playerManager.stopTimer() + } + } } } } diff --git a/Tuneful/Views/Settings/MiniPlayerSettingsView.swift b/Tuneful/Views/Settings/MiniPlayerSettingsView.swift index 87c3ebb..b54842b 100644 --- a/Tuneful/Views/Settings/MiniPlayerSettingsView.swift +++ b/Tuneful/Views/Settings/MiniPlayerSettingsView.swift @@ -21,13 +21,16 @@ struct MiniPlayerSettingsView: View { Settings.Container(contentWidth: 400) { Settings.Section(title: "") { LuminareSection { - LuminareToggle( - "Show mini player", - isOn: $showPlayerWindow - ) - .onChange(of: showPlayerWindow) { _ in - NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayer), to: nil, from: nil) + HStack { + Text("Show mini player") + + Spacer() + + Defaults.Toggle("", key: .showPlayerWindow) + .toggleStyle(.switch) + .controlSize(.small) } + .padding(8) HStack { Text("Mini player window always on top of other apps") From fe276b3e4d98a4c9a688816a727fe5b3ece169e2 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sat, 28 Dec 2024 18:50:15 +0100 Subject: [PATCH 60/73] Popover updates --- Tuneful.xcodeproj/project.pbxproj | 12 +- Tuneful/Tuneful.swift | 71 +++++------ Tuneful/Views/BackgroundView.swift | 6 - Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 5 +- Tuneful/Views/Playback/AlbumArtView.swift | 2 +- Tuneful/Views/Playback/TrackDetailsView.swift | 30 +++++ .../Views/Popover/CompactPopoverView.swift | 37 ++---- Tuneful/Views/Popover/FullPopoverView.swift | 95 ++++++++++++++ Tuneful/Views/Popover/PopoverView.swift | 120 ------------------ .../Settings/MiniPlayerSettingsView.swift | 3 + Tuneful/Windows/MiniPlayerWindow.swift | 2 +- 11 files changed, 186 insertions(+), 197 deletions(-) create mode 100644 Tuneful/Views/Playback/TrackDetailsView.swift create mode 100644 Tuneful/Views/Popover/FullPopoverView.swift delete mode 100644 Tuneful/Views/Popover/PopoverView.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 442fb69..76e2eb6 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -24,6 +24,7 @@ FE25549B2CA95F87003DAB77 /* AddToFavoritesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE25549A2CA95F6E003DAB77 /* AddToFavoritesView.swift */; }; FE2554A02CA9C4B9003DAB77 /* PlaybackButtonsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE25549F2CA9C4B9003DAB77 /* PlaybackButtonsView.swift */; }; FE2554A22CA9CA93003DAB77 /* HoverButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE2554A12CA9CA93003DAB77 /* HoverButton.swift */; }; + FE26E5EA2D206E9F0035CF65 /* TrackDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE26E5E92D206E990035CF65 /* TrackDetailsView.swift */; }; FE2AEE2E2A8FBE3200E8D576 /* MiniPlayerWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE2AEE2D2A8FBE3200E8D576 /* MiniPlayerWindow.swift */; }; FE2AEE322A8FE08500E8D576 /* CustomSliderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE2AEE312A8FE08500E8D576 /* CustomSliderView.swift */; }; FE2AEE342A8FE0F200E8D576 /* Settings+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE2AEE332A8FE0F200E8D576 /* Settings+Extension.swift */; }; @@ -42,7 +43,7 @@ FE4808F12B51BA400077BDAA /* AboutSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4808F02B51BA400077BDAA /* AboutSettingsView.swift */; }; FE4808F42B51C3870077BDAA /* GeneralSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4808F32B51C3870077BDAA /* GeneralSettingsView.swift */; }; FE4C92172B61459F00FF79BE /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4C92162B61459F00FF79BE /* String+Extension.swift */; }; - FE5B3CA22AB0AC700038B6E4 /* PopoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE5B3CA12AB0AC700038B6E4 /* PopoverView.swift */; }; + FE5B3CA22AB0AC700038B6E4 /* FullPopoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE5B3CA12AB0AC700038B6E4 /* FullPopoverView.swift */; }; FE5B56E62D037EEF0077527C /* Defaults in Frameworks */ = {isa = PBXBuildFile; productRef = FE5B56E52D037EEF0077527C /* Defaults */; }; FE5B56E82D037EEF0077527C /* DefaultsMacros in Frameworks */ = {isa = PBXBuildFile; productRef = FE5B56E72D037EEF0077527C /* DefaultsMacros */; }; FE5B56EC2D0386EC0077527C /* Defaults+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE5B56EA2D0386EC0077527C /* Defaults+Extensions.swift */; }; @@ -131,6 +132,7 @@ FE25549A2CA95F6E003DAB77 /* AddToFavoritesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddToFavoritesView.swift; sourceTree = ""; }; FE25549F2CA9C4B9003DAB77 /* PlaybackButtonsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackButtonsView.swift; sourceTree = ""; }; FE2554A12CA9CA93003DAB77 /* HoverButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HoverButton.swift; sourceTree = ""; }; + FE26E5E92D206E990035CF65 /* TrackDetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackDetailsView.swift; sourceTree = ""; }; FE2AEE2D2A8FBE3200E8D576 /* MiniPlayerWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerWindow.swift; sourceTree = ""; }; FE2AEE312A8FE08500E8D576 /* CustomSliderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomSliderView.swift; sourceTree = ""; }; FE2AEE332A8FE0F200E8D576 /* Settings+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Settings+Extension.swift"; sourceTree = ""; }; @@ -149,7 +151,7 @@ FE4808F02B51BA400077BDAA /* AboutSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsView.swift; sourceTree = ""; }; FE4808F32B51C3870077BDAA /* GeneralSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsView.swift; sourceTree = ""; }; FE4C92162B61459F00FF79BE /* String+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extension.swift"; sourceTree = ""; }; - FE5B3CA12AB0AC700038B6E4 /* PopoverView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverView.swift; sourceTree = ""; }; + FE5B3CA12AB0AC700038B6E4 /* FullPopoverView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FullPopoverView.swift; sourceTree = ""; }; FE5B56EA2D0386EC0077527C /* Defaults+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Defaults+Extensions.swift"; sourceTree = ""; }; FE5B56F12D059B350077527C /* BackgroundView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundView.swift; sourceTree = ""; }; FE6BFCE32A72F37800D3321F /* Tuneful.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Tuneful.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -252,6 +254,7 @@ FE25549D2CA9C471003DAB77 /* Playback */ = { isa = PBXGroup; children = ( + FE26E5E92D206E990035CF65 /* TrackDetailsView.swift */, FE25549F2CA9C4B9003DAB77 /* PlaybackButtonsView.swift */, FE25549A2CA95F6E003DAB77 /* AddToFavoritesView.swift */, FE31AECF2CF50708002818ED /* PlaybackPositionView.swift */, @@ -424,7 +427,7 @@ FE8CE1522C1E03B10053FDEA /* Popover */ = { isa = PBXGroup; children = ( - FE5B3CA12AB0AC700038B6E4 /* PopoverView.swift */, + FE5B3CA12AB0AC700038B6E4 /* FullPopoverView.swift */, FE8CE1532C1E03F30053FDEA /* CompactPopoverView.swift */, ); path = Popover; @@ -617,12 +620,13 @@ FE1A63032CBC1B09001C13CE /* NotchlessView.swift in Sources */, FE7955492CA2C9E8002026AA /* NSBezierPath+Extension.swift in Sources */, FE9FCF252CAEC2780015DF4D /* AppleMusicManager.swift in Sources */, - FE5B3CA22AB0AC700038B6E4 /* PopoverView.swift in Sources */, + FE5B3CA22AB0AC700038B6E4 /* FullPopoverView.swift in Sources */, FE6BFD0C2A73B2D400D3321F /* NSImage+Extension.swift in Sources */, FE6BFD022A73AB9A00D3321F /* MusicApplication.swift in Sources */, FEBA3D042B58303A00E25A67 /* View+Extension.swift in Sources */, FEBA35EC2D1766790081A3F2 /* MiniPlayerScaleFactor.swift in Sources */, FE6BFD032A73AB9A00D3321F /* SpotifyApplication.swift in Sources */, + FE26E5EA2D206E9F0035CF65 /* TrackDetailsView.swift in Sources */, FE31AEDC2CFBCB76002818ED /* SettingsView.swift in Sources */, FE3189FD2A7C3D01006B2D59 /* OnboardingWindow.swift in Sources */, FE79554E2CA34BF0002026AA /* Logger+Extension.swift in Sources */, diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index d86bfb3..ca2b8b3 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -120,35 +120,18 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } func applicationDidFinishLaunching(_ notification: Notification) { - NSApp.setActivationPolicy(.accessory) - - self.settingsWindow.isReleasedWhenClosed = false - self.playerManager = PlayerManager() - self.statusBarItemManager = StatusBarItemManager(playerManager: playerManager) - self.statusBarPlaybackManager = StatusBarPlaybackManager(playerManager: playerManager) - self.miniPlayerWindow = MiniPlayerWindow() - - NotificationCenter.default.addObserver( - self, - selector: #selector(self.updateStatusBarItem), - name: NSNotification.Name("UpdateMenuBarItem"), - object: nil - ) +//#if DEBUG +// if let bundleID = Bundle.main.bundleIdentifier { +// UserDefaults.standard.removePersistentDomain(forName: bundleID) +// } +//#endif + NSApp.setActivationPolicy(.accessory) if !Defaults[.viewedOnboarding] { self.showOnboarding() } else { self.mainSetup() } - -//#if DEBUG -// if let bundleID = Bundle.main.bundleIdentifier { -// UserDefaults.standard.removePersistentDomain(forName: bundleID) -// } -//#endif -//#if DEBUG -// DynamicNotchInfo(playerManager: playerManager).show(for: 5) -//#endif } func windowShouldClose(_ sender: NSWindow) -> Bool { @@ -156,6 +139,19 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } private func mainSetup() { + self.playerManager = PlayerManager() + self.statusBarItemManager = StatusBarItemManager(playerManager: playerManager) + self.statusBarPlaybackManager = StatusBarPlaybackManager(playerManager: playerManager) + self.miniPlayerWindow = MiniPlayerWindow() + + self.settingsWindow.isReleasedWhenClosed = false + NotificationCenter.default.addObserver( + self, + selector: #selector(self.updateStatusBarItem), + name: NSNotification.Name("UpdateMenuBarItem"), + object: nil + ) + self.setupPopover() self.setupMiniPlayer() self.setupMenuBar() @@ -171,7 +167,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { return } - // TODO: System player switch Defaults[.connectedApp] { case .spotify: Defaults[.connectedApp] = .appleMusic @@ -234,7 +229,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { statusBarMenu.addItem( withTitle: "Show mini player", - action: #selector(showHideMiniPlayer), + action: #selector(toggleMiniPlayerAndPlayerMenuItem), keyEquivalent: "" ) .state = Defaults[.showPlayerWindow] ? .on : .off @@ -273,17 +268,21 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } } + @objc func toggleMiniPlayerAndPlayerMenuItem() { + toggleMiniPlayer() + togglePlayerMenuItem() + } + @objc func toggleMiniPlayer() { - showHideMiniPlayer(statusBarMenu.item(withTitle: "Show mini player")!) + Defaults[.showPlayerWindow] = !Defaults[.showPlayerWindow] } - @IBAction func showHideMiniPlayer(_ sender: NSMenuItem) { - if sender.state == .on { - sender.state = .off - Defaults[.showPlayerWindow] = false + @objc func togglePlayerMenuItem() { + let item = statusBarMenu.item(withTitle: "Show mini player")! + if item.state == .on { + item.state = .off } else { - sender.state = .on - Defaults[.showPlayerWindow] = true + item.state = .on } } @@ -348,22 +347,21 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // MARK: Popover @objc func setupPopover() { - let frameSize: NSSize let rootView: AnyView + let frameSize: NSSize let popoverWidth = 210 - let popoverHeigth = 310 + let popoverHeigth = 500 switch Defaults[.popoverType] { case .full: frameSize = NSSize(width: popoverWidth, height: popoverHeigth) - rootView = AnyView(PopoverView().environmentObject(self.playerManager)) + rootView = AnyView(FullPopoverView().environmentObject(self.playerManager)) case .minimal: frameSize = NSSize(width: popoverWidth, height: popoverHeigth) rootView = AnyView(CompactPopoverView().environmentObject(self.playerManager)) } let hostedContentView = NSHostingView(rootView: rootView) - hostedContentView.frame = NSRect(x: 0, y: 0, width: frameSize.width, height: frameSize.height) popover = NSPopover() popover.contentSize = frameSize @@ -371,7 +369,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { popover.animates = true popover.contentViewController = NSViewController() popover.contentViewController?.view = hostedContentView - popover.contentViewController?.view.window?.makeKey() playerManager.popoverIsShown = popover.isShown } diff --git a/Tuneful/Views/BackgroundView.swift b/Tuneful/Views/BackgroundView.swift index 14e8bda..ef5d255 100644 --- a/Tuneful/Views/BackgroundView.swift +++ b/Tuneful/Views/BackgroundView.swift @@ -19,16 +19,10 @@ struct BackgroundView: View { var body: some View { switch background { case .glow: - playerManager.track.albumArt - .resizable() - .frame(width: albumArtSize, height: albumArtSize) - .offset(x: xOffset, y: yOffset) - playerManager.track.albumArt .resizable() .frame(width: albumArtSize, height: albumArtSize) .offset(x: xOffset != 0 ? xOffset + 10 : xOffset, y: yOffset != 0 ? yOffset + 20 : yOffset) - .opacity(0.5) VisualEffectView(material: .popover, blendingMode: .withinWindow) case .albumArt: diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 0b2336f..81044e8 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -62,12 +62,15 @@ struct MiniPlayerView: View { ) .opacity(showPlayerWindow ? 1 : 0) .onChange(of: showPlayerWindow) { show in - if show { + if !show { playerManager.startTimer() } else { playerManager.stopTimer() } } + .onAppear { + playerManager.startTimer() + } } } } diff --git a/Tuneful/Views/Playback/AlbumArtView.swift b/Tuneful/Views/Playback/AlbumArtView.swift index 1c3f5c0..962e034 100644 --- a/Tuneful/Views/Playback/AlbumArtView.swift +++ b/Tuneful/Views/Playback/AlbumArtView.swift @@ -17,7 +17,7 @@ struct AlbumArtView: View { playerManager.track.albumArt .resizable() .frame(width: self.imageSize, height: self.imageSize) - .cornerRadius(12.5) + .cornerRadius(10) .shadow(color: .black.opacity(0.3), radius: 5, x: 0, y: 2) .tapAnimation(scale: 1.2, duration: 0.4) { self.playerManager.openMusicApp() diff --git a/Tuneful/Views/Playback/TrackDetailsView.swift b/Tuneful/Views/Playback/TrackDetailsView.swift new file mode 100644 index 0000000..91941b9 --- /dev/null +++ b/Tuneful/Views/Playback/TrackDetailsView.swift @@ -0,0 +1,30 @@ +// +// TrackDetailsView.swift +// Tuneful +// +// Created by Martin Fekete on 28/12/2024. +// + +import SwiftUI + +struct TrackDetailsView: View { + @EnvironmentObject var playerManager: PlayerManager + + var body: some View { + Button(action: playerManager.openMusicApp) { + VStack(alignment: .center) { + Text(playerManager.track.title) + .foregroundColor(.primary.opacity(Constants.Opacity.primaryOpacity)) + .font(.system(size: 15, weight: .bold)) + .lineLimit(1) + Text(playerManager.track.artist) + .foregroundColor(.primary.opacity(Constants.Opacity.primaryOpacity2)) + .font(.headline) + .fontWeight(.medium) + .lineLimit(1) + } + .opacity(0.8) + } + .pressButtonStyle() + } +} diff --git a/Tuneful/Views/Popover/CompactPopoverView.swift b/Tuneful/Views/Popover/CompactPopoverView.swift index b562bae..6139dd8 100644 --- a/Tuneful/Views/Popover/CompactPopoverView.swift +++ b/Tuneful/Views/Popover/CompactPopoverView.swift @@ -15,8 +15,6 @@ struct CompactPopoverView: View { var body: some View { ZStack { - BackgroundView(background: popoverBackground, yOffset: -30) - if !playerManager.isRunning || playerManager.track.isEmpty() { Text("Please open \(playerManager.name) to use Tuneful") .foregroundColor(.primary.opacity(Constants.Opacity.secondaryOpacity)) @@ -27,7 +25,7 @@ struct CompactPopoverView: View { } else { VStack { ZStack { - AlbumArtView(imageSize: 185) + AlbumArtView(imageSize: 190) AddToFavoritesView() .opacity(isShowingPlaybackControls ? 1 : 0) @@ -47,7 +45,7 @@ struct CompactPopoverView: View { } } .padding(10) - .frame(width: 170) + .frame(width: 180) .background( VisualEffectView(material: .popover, blendingMode: .withinWindow) .overlay { @@ -59,36 +57,21 @@ struct CompactPopoverView: View { .opacity(isShowingPlaybackControls ? 1 : 0) } } - .offset(x: -1, y: -3) - Button(action: playerManager.openMusicApp) { - VStack(alignment: .center) { - Text(playerManager.track.title) - .foregroundColor(.primary.opacity(Constants.Opacity.primaryOpacity)) - .font(.system(size: 15, weight: .bold)) - .lineLimit(1) - Text(playerManager.track.artist) - .foregroundColor(.primary.opacity(Constants.Opacity.primaryOpacity2)) - .font(.system(size: 12, weight: .medium)) - .lineLimit(1) - } - } - .pressButtonStyle() - .opacity(0.8) - .padding(.vertical, 5) - .frame(width: 180) + TrackDetailsView() + .padding(.horizontal, 5) } - .padding(50) // To force background coloring to whole popover } } + .padding(10) .overlay( NotificationView() - .padding(.top, 15) - ) - .frame( - width: AppDelegate.popoverWidth, - height: playerManager.musicApp.playbackSeekerEnabled ? 260 : 250 + .padding(.top, 20) ) + .background { + BackgroundView(background: popoverBackground, yOffset: -60) + .offset(y: -20) // To color the tip of the popover + } .onHover { _ in withAnimation(.linear(duration: 0.2)) { self.isShowingPlaybackControls.toggle() diff --git a/Tuneful/Views/Popover/FullPopoverView.swift b/Tuneful/Views/Popover/FullPopoverView.swift new file mode 100644 index 0000000..b1fa7e4 --- /dev/null +++ b/Tuneful/Views/Popover/FullPopoverView.swift @@ -0,0 +1,95 @@ +// +// PopoverView.swift +// Tuneful +// +// Created by Martin Fekete on 12/09/2023. +// + +import SwiftUI +import Defaults + +struct FullPopoverView: View { + @EnvironmentObject private var playerManager: PlayerManager + @State private var isShowingPlaybackControls = false + + @Default(.popoverBackground) private var popoverBackground + @Default(.connectedApp) private var connectedApp + + var body: some View { + ZStack { + if !playerManager.musicApp.isRunning() || playerManager.track.isEmpty() { + Text("Please open \(playerManager.name) sto use Tuneful") + .foregroundColor(.primary.opacity(Constants.Opacity.secondaryOpacity)) + .font(.system(size: 14, weight: .regular)) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .multilineTextAlignment(.center) + .padding() + } else { + VStack() { + ZStack { + AlbumArtView(imageSize: 190) + + AddToFavoritesView() + .opacity(isShowingPlaybackControls ? 1 : 0) + } + .onHover { _ in + withAnimation(.linear(duration: 0.2)) { + self.isShowingPlaybackControls.toggle() + } + } + + TrackDetailsView() + + if playerManager.musicApp.playbackSeekerEnabled { + PlaybackPositionView() + } + + PlaybackButtonsView(playButtonSize: 22.5, spacing: 17.5) + + HStack { + Menu { + ForEach(playerManager.audioDevices) { audioDevice in + Button { + playerManager.setOutputDevice(audioDevice: audioDevice) + } label: { + if audioDevice == playerManager.audioDevices.first(where: { $0.isDefault(for: .output) }) { + Text("✓ \(audioDevice.name)") + } else { + Text(audioDevice.name) + } + } + } + } label: { + Image(systemName: "hifispeaker.fill") + } + .frame(width: 20, height: 20) + .menuIndicator(.hidden) + .menuStyle(.borderlessButton) + + VolumeControlView() + + Button(action: openSettings){ + Image(systemName: "gear") + .resizable() + .frame(width: 15, height: 15) + } + .pressButtonStyle() + } + } + } + } + .padding(10) + .overlay( + NotificationView() + .padding(.top, 20) + ) + .background { + BackgroundView(background: popoverBackground, yOffset: -60) + .offset(y: -20) // To color the tip of the popover + } + } + + func openSettings() { + NSApplication.shared.sendAction(#selector(AppDelegate.openSettings), to: nil, from: nil) + } +} diff --git a/Tuneful/Views/Popover/PopoverView.swift b/Tuneful/Views/Popover/PopoverView.swift deleted file mode 100644 index 58f333b..0000000 --- a/Tuneful/Views/Popover/PopoverView.swift +++ /dev/null @@ -1,120 +0,0 @@ -// -// PopoverView.swift -// Tuneful -// -// Created by Martin Fekete on 12/09/2023. -// - -import SwiftUI -import Defaults - -struct PopoverView: View { - @EnvironmentObject private var playerManager: PlayerManager - @State private var isShowingPlaybackControls = false - @Default(.popoverBackground) private var popoverBackground - @Default(.connectedApp) private var connectedApp - - var body: some View { - ZStack { - BackgroundView(background: popoverBackground, yOffset: -80) - - if !playerManager.musicApp.isRunning() || playerManager.track.isEmpty() { - Text("Please open \(playerManager.name) sto use Tuneful") - .foregroundColor(.primary.opacity(Constants.Opacity.secondaryOpacity)) - .font(.system(size: 14, weight: .regular)) - .frame(maxWidth: .infinity, maxHeight: .infinity) - .multilineTextAlignment(.center) - .padding() - } else { - VStack(spacing: 0) { - VStack(spacing: 0) { - // Album art and add to favorites button - ZStack { - AlbumArtView(imageSize: 185) - .padding(.top, 12) - - AddToFavoritesView() - .opacity(isShowingPlaybackControls ? 1 : 0) - } - .onHover { _ in - withAnimation(.linear(duration: 0.1)) { - self.isShowingPlaybackControls.toggle() - } - } - - // Track details - Button(action: playerManager.openMusicApp) { - VStack(alignment: .center) { - Text(playerManager.track.title) - .foregroundColor(.primary.opacity(Constants.Opacity.primaryOpacity)) - .font(.system(size: 15, weight: .bold)) - .lineLimit(1) - Text(playerManager.track.artist) - .foregroundColor(.primary.opacity(Constants.Opacity.primaryOpacity2)) - .font(.headline) - .fontWeight(.medium) - .lineLimit(1) - } - .frame(width: 180, height: 65, alignment: .center) - .opacity(0.8) - } - .pressButtonStyle() - - if playerManager.musicApp.playbackSeekerEnabled { - PlaybackPositionView() - } - - PlaybackButtonsView(playButtonSize: 22.5, spacing: 17.5) - .padding(.vertical, 5) - - HStack { - Menu { - ForEach(playerManager.audioDevices) { audioDevice in - Button { - playerManager.setOutputDevice(audioDevice: audioDevice) - } label: { - if audioDevice == playerManager.audioDevices.first(where: { $0.isDefault(for: .output) }) { - Text("✓ \(audioDevice.name)") - } else { - Text(audioDevice.name) - } - } - } - } label: { - Image(systemName: "hifispeaker.fill") - } - .frame(width: 20, height: 20) - .menuIndicator(.hidden) - .menuStyle(.borderlessButton) - - VolumeControlView() - - - Button(action: openSettings){ - Image(systemName: "gear") - .resizable() - .frame(width: 15, height: 15) - } - .pressButtonStyle() - } - .padding(.top, 10) - } - .padding(.bottom, 15) - } - .padding() - } - } - .overlay( - NotificationView() - .padding(.top, 15) - ) - .frame( - width: AppDelegate.popoverWidth, - height: playerManager.musicApp.playbackSeekerEnabled ? 370 : 350 - ) - } - - func openSettings() { - NSApplication.shared.sendAction(#selector(AppDelegate.openSettings), to: nil, from: nil) - } -} diff --git a/Tuneful/Views/Settings/MiniPlayerSettingsView.swift b/Tuneful/Views/Settings/MiniPlayerSettingsView.swift index b54842b..fb0e20e 100644 --- a/Tuneful/Views/Settings/MiniPlayerSettingsView.swift +++ b/Tuneful/Views/Settings/MiniPlayerSettingsView.swift @@ -29,6 +29,9 @@ struct MiniPlayerSettingsView: View { Defaults.Toggle("", key: .showPlayerWindow) .toggleStyle(.switch) .controlSize(.small) + .onChange(of: showPlayerWindow) { _ in + NSApplication.shared.sendAction(#selector(AppDelegate.togglePlayerMenuItem), to: nil, from: nil) + } } .padding(8) diff --git a/Tuneful/Windows/MiniPlayerWindow.swift b/Tuneful/Windows/MiniPlayerWindow.swift index c24ecc2..81d5c4a 100644 --- a/Tuneful/Windows/MiniPlayerWindow.swift +++ b/Tuneful/Windows/MiniPlayerWindow.swift @@ -127,7 +127,7 @@ class MiniPlayerWindow: NSWindow { } @objc func hideWindow(_ sender: Any?) { - NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayer), to: nil, from: nil) + NSApplication.shared.sendAction(#selector(AppDelegate.toggleMiniPlayerAndPlayerMenuItem), to: nil, from: nil) } @objc func settings(_ sender: Any?) { From 5183ee1d21b6e3e9a1aa3a0193ca3d7e0b5a8eb3 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sat, 28 Dec 2024 19:36:41 +0100 Subject: [PATCH 61/73] Mini player menu item toggle button fix WIP --- Tuneful/Tuneful.swift | 6 +++--- Tuneful/Views/Settings/MiniPlayerSettingsView.swift | 3 --- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index ca2b8b3..e5a7f8e 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -270,16 +270,16 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { @objc func toggleMiniPlayerAndPlayerMenuItem() { toggleMiniPlayer() - togglePlayerMenuItem() + toggleMiniPlayerMenuItem() } @objc func toggleMiniPlayer() { Defaults[.showPlayerWindow] = !Defaults[.showPlayerWindow] } - @objc func togglePlayerMenuItem() { + @objc func toggleMiniPlayerMenuItem() { let item = statusBarMenu.item(withTitle: "Show mini player")! - if item.state == .on { + if !Defaults[.showPlayerWindow] { item.state = .off } else { item.state = .on diff --git a/Tuneful/Views/Settings/MiniPlayerSettingsView.swift b/Tuneful/Views/Settings/MiniPlayerSettingsView.swift index fb0e20e..b54842b 100644 --- a/Tuneful/Views/Settings/MiniPlayerSettingsView.swift +++ b/Tuneful/Views/Settings/MiniPlayerSettingsView.swift @@ -29,9 +29,6 @@ struct MiniPlayerSettingsView: View { Defaults.Toggle("", key: .showPlayerWindow) .toggleStyle(.switch) .controlSize(.small) - .onChange(of: showPlayerWindow) { _ in - NSApplication.shared.sendAction(#selector(AppDelegate.togglePlayerMenuItem), to: nil, from: nil) - } } .padding(8) From 0d2393d641b6e1b405e34ee963d5101ddd1b8fab Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 29 Dec 2024 10:30:59 +0100 Subject: [PATCH 62/73] Popover details, plist updated to say it's menu bar app --- Tuneful/Helpers/Constants.swift | 5 ++++- Tuneful/Info.plist | 5 ++++- Tuneful/Managers/PlayerManager.swift | 2 +- Tuneful/Tuneful.swift | 11 +++-------- Tuneful/Views/OnboardingView.swift | 2 +- Tuneful/Views/Popover/CompactPopoverView.swift | 6 ++++-- Tuneful/Views/Popover/FullPopoverView.swift | 6 ++++-- 7 files changed, 21 insertions(+), 16 deletions(-) diff --git a/Tuneful/Helpers/Constants.swift b/Tuneful/Helpers/Constants.swift index e3d446c..8fb30eb 100644 --- a/Tuneful/Helpers/Constants.swift +++ b/Tuneful/Helpers/Constants.swift @@ -12,6 +12,9 @@ enum Constants { static let podcastThresholdDurationSec = 900.0 static let podcastRewindDurationSec = 15.0 static let playerAppChangedMessage = "Player app changed" + static let popoverWidth = 210.0 + static let fullPopoverHeight = 345.0 + static let compactPopoverHeight = 250.0 enum Opacity { static let primaryOpacity = 0.8 @@ -37,7 +40,7 @@ enum Constants { static let imageWidth = 30.0 } - static var SongTransitionAnimation: Animation { + static var mainAnimation: Animation { Animation.timingCurve(0.16, 1, 0.3, 1, duration: 0.7) } } diff --git a/Tuneful/Info.plist b/Tuneful/Info.plist index 0c67376..6f7ae58 100644 --- a/Tuneful/Info.plist +++ b/Tuneful/Info.plist @@ -1,5 +1,8 @@ - + + LSUIElement + + diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index ad9dd33..e5bb85f 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -249,7 +249,7 @@ public class PlayerManager: ObservableObject { func getNewSongInfo() { Logger.main.log("Getting track info") - withAnimation(Constants.SongTransitionAnimation) { + withAnimation(Constants.mainAnimation) { getCurrentSeekerPosition() track = musicApp.getTrackInfo() } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index e5a7f8e..e1edb23 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -20,7 +20,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // Popover private var popover: NSPopover! - static let popoverWidth: CGFloat = 210 // Status bar private var statusBarItem: NSStatusItem! @@ -32,7 +31,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { private var statusBarPlaybackManager: StatusBarPlaybackManager! // MARK: Settings - private var settingsWindow = LuminareTrafficLightedWindow(view: { SettingsView() }) let GeneralSettingsViewController: () -> SettingsPane = { @@ -125,8 +123,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // UserDefaults.standard.removePersistentDomain(forName: bundleID) // } //#endif - - NSApp.setActivationPolicy(.accessory) + if !Defaults[.viewedOnboarding] { self.showOnboarding() } else { @@ -349,15 +346,13 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { @objc func setupPopover() { let rootView: AnyView let frameSize: NSSize - let popoverWidth = 210 - let popoverHeigth = 500 switch Defaults[.popoverType] { case .full: - frameSize = NSSize(width: popoverWidth, height: popoverHeigth) + frameSize = NSSize(width: Constants.popoverWidth, height: Constants.fullPopoverHeight) rootView = AnyView(FullPopoverView().environmentObject(self.playerManager)) case .minimal: - frameSize = NSSize(width: popoverWidth, height: popoverHeigth) + frameSize = NSSize(width: Constants.popoverWidth, height: Constants.compactPopoverHeight) rootView = AnyView(CompactPopoverView().environmentObject(self.playerManager)) } diff --git a/Tuneful/Views/OnboardingView.swift b/Tuneful/Views/OnboardingView.swift index 02ba0b6..c8b1690 100644 --- a/Tuneful/Views/OnboardingView.swift +++ b/Tuneful/Views/OnboardingView.swift @@ -63,7 +63,7 @@ struct OnboardingView: View { .frame(width: 300, height: 150) } .frame(width: 400, height: 250) - .animation(Constants.SongTransitionAnimation, value: step) + .animation(Constants.mainAnimation, value: step) HStack { if step == .onDetails { diff --git a/Tuneful/Views/Popover/CompactPopoverView.swift b/Tuneful/Views/Popover/CompactPopoverView.swift index 6139dd8..6889ac4 100644 --- a/Tuneful/Views/Popover/CompactPopoverView.swift +++ b/Tuneful/Views/Popover/CompactPopoverView.swift @@ -69,13 +69,15 @@ struct CompactPopoverView: View { .padding(.top, 20) ) .background { - BackgroundView(background: popoverBackground, yOffset: -60) + BackgroundView(background: popoverBackground, yOffset: -20) .offset(y: -20) // To color the tip of the popover + .frame(height: 300) } .onHover { _ in - withAnimation(.linear(duration: 0.2)) { + withAnimation(Constants.mainAnimation) { self.isShowingPlaybackControls.toggle() } } + .frame(width: Constants.popoverWidth, height: Constants.compactPopoverHeight) } } diff --git a/Tuneful/Views/Popover/FullPopoverView.swift b/Tuneful/Views/Popover/FullPopoverView.swift index b1fa7e4..4e00279 100644 --- a/Tuneful/Views/Popover/FullPopoverView.swift +++ b/Tuneful/Views/Popover/FullPopoverView.swift @@ -18,7 +18,7 @@ struct FullPopoverView: View { var body: some View { ZStack { if !playerManager.musicApp.isRunning() || playerManager.track.isEmpty() { - Text("Please open \(playerManager.name) sto use Tuneful") + Text("Please open \(playerManager.name) to use Tuneful") .foregroundColor(.primary.opacity(Constants.Opacity.secondaryOpacity)) .font(.system(size: 14, weight: .regular)) .frame(maxWidth: .infinity, maxHeight: .infinity) @@ -33,7 +33,7 @@ struct FullPopoverView: View { .opacity(isShowingPlaybackControls ? 1 : 0) } .onHover { _ in - withAnimation(.linear(duration: 0.2)) { + withAnimation(Constants.mainAnimation) { self.isShowingPlaybackControls.toggle() } } @@ -79,6 +79,7 @@ struct FullPopoverView: View { } } .padding(10) + .frame(width: Constants.popoverWidth, height: Constants.fullPopoverHeight) .overlay( NotificationView() .padding(.top, 20) @@ -86,6 +87,7 @@ struct FullPopoverView: View { .background { BackgroundView(background: popoverBackground, yOffset: -60) .offset(y: -20) // To color the tip of the popover + .frame(height: Constants.fullPopoverHeight + 40) } } From 0dce5171ab47054a03ad5c09dabcb38cec4e1785 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 29 Dec 2024 11:12:07 +0100 Subject: [PATCH 63/73] Luminare used directly due to deprecated API, added quit option to settings --- Tuneful.xcodeproj/project.pbxproj | 161 +++++- .../xcshareddata/swiftpm/Package.resolved | 11 +- .../Luminare/Components/DividedVStack.swift | 136 +++++ .../Components/LuminareButtonStyle.swift | 196 +++++++ .../Components/LuminareInfoView.swift | 54 ++ .../Luminare/Components/LuminareList.swift | 482 ++++++++++++++++++ .../Luminare/Components/LuminarePicker.swift | 172 +++++++ .../Luminare/Components/LuminareSection.swift | 55 ++ .../Components/LuminareSliderPicker.swift | 79 +++ .../Components/LuminareTextField.swift | 66 +++ .../Luminare/Components/LuminareToggle.swift | 57 +++ .../Components/LuminareValueAdjuster.swift | 277 ++++++++++ .../Components/Popover/PopoverHolder.swift | 141 +++++ .../Components/Popover/PopoverPanel.swift | 54 ++ .../LuminareTrafficLightedWindow.swift | 66 +++ .../LuminareTrafficLightedWindowView.swift | 66 +++ .../Modal Window/LuminareModalView.swift | 70 +++ .../Modal Window/LuminareModalWindow.swift | 171 +++++++ .../Luminare/Utilities/Color+Extensions.swift | 103 ++++ .../Utilities/EnvironmentValues.swift | 62 +++ .../Utilities/LuminareBackgroundEffect.swift | 25 + .../Utilities/LuminareConstants.swift | 14 + Tuneful/Luminare/Utilities/ScreenView.swift | 108 ++++ .../Utilities/StringFormatStyle.swift | 73 +++ Tuneful/Tuneful.swift | 8 +- .../{IconButton.swift => IconUrlButton.swift} | 2 +- .../Views/Settings/AboutSettingsView.swift | 6 +- .../Views/Settings/GeneralSettingsView.swift | 17 + 28 files changed, 2696 insertions(+), 36 deletions(-) create mode 100644 Tuneful/Luminare/Components/DividedVStack.swift create mode 100644 Tuneful/Luminare/Components/LuminareButtonStyle.swift create mode 100644 Tuneful/Luminare/Components/LuminareInfoView.swift create mode 100644 Tuneful/Luminare/Components/LuminareList.swift create mode 100644 Tuneful/Luminare/Components/LuminarePicker.swift create mode 100644 Tuneful/Luminare/Components/LuminareSection.swift create mode 100644 Tuneful/Luminare/Components/LuminareSliderPicker.swift create mode 100644 Tuneful/Luminare/Components/LuminareTextField.swift create mode 100644 Tuneful/Luminare/Components/LuminareToggle.swift create mode 100644 Tuneful/Luminare/Components/LuminareValueAdjuster.swift create mode 100644 Tuneful/Luminare/Components/Popover/PopoverHolder.swift create mode 100644 Tuneful/Luminare/Components/Popover/PopoverPanel.swift create mode 100644 Tuneful/Luminare/Modal Window - Traffic Lights/LuminareTrafficLightedWindow.swift create mode 100644 Tuneful/Luminare/Modal Window - Traffic Lights/LuminareTrafficLightedWindowView.swift create mode 100644 Tuneful/Luminare/Modal Window/LuminareModalView.swift create mode 100644 Tuneful/Luminare/Modal Window/LuminareModalWindow.swift create mode 100644 Tuneful/Luminare/Utilities/Color+Extensions.swift create mode 100644 Tuneful/Luminare/Utilities/EnvironmentValues.swift create mode 100644 Tuneful/Luminare/Utilities/LuminareBackgroundEffect.swift create mode 100644 Tuneful/Luminare/Utilities/LuminareConstants.swift create mode 100644 Tuneful/Luminare/Utilities/ScreenView.swift create mode 100644 Tuneful/Luminare/Utilities/StringFormatStyle.swift rename Tuneful/Views/{IconButton.swift => IconUrlButton.swift} (96%) diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 76e2eb6..1b21f12 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -42,6 +42,28 @@ FE478BFD2CB288430033D272 /* SystemPlayerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE478BFC2CB288350033D272 /* SystemPlayerManager.swift */; }; FE4808F12B51BA400077BDAA /* AboutSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4808F02B51BA400077BDAA /* AboutSettingsView.swift */; }; FE4808F42B51C3870077BDAA /* GeneralSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4808F32B51C3870077BDAA /* GeneralSettingsView.swift */; }; + FE4AA05D2D214FFD00A1A480 /* LuminareModalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA04F2D214FFD00A1A480 /* LuminareModalView.swift */; }; + FE4AA05F2D214FFD00A1A480 /* LuminareValueAdjuster.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0432D214FFD00A1A480 /* LuminareValueAdjuster.swift */; }; + FE4AA0602D214FFD00A1A480 /* ScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0582D214FFD00A1A480 /* ScreenView.swift */; }; + FE4AA0612D214FFD00A1A480 /* LuminareButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA03B2D214FFD00A1A480 /* LuminareButtonStyle.swift */; }; + FE4AA0632D214FFD00A1A480 /* DividedVStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA03A2D214FFD00A1A480 /* DividedVStack.swift */; }; + FE4AA0662D214FFD00A1A480 /* Color+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0552D214FFD00A1A480 /* Color+Extensions.swift */; }; + FE4AA0672D214FFD00A1A480 /* LuminareToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0422D214FFD00A1A480 /* LuminareToggle.swift */; }; + FE4AA0692D214FFD00A1A480 /* LuminareTrafficLightedWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0522D214FFD00A1A480 /* LuminareTrafficLightedWindow.swift */; }; + FE4AA06A2D214FFD00A1A480 /* LuminareModalWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0502D214FFD00A1A480 /* LuminareModalWindow.swift */; }; + FE4AA06B2D214FFD00A1A480 /* PopoverHolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0372D214FFD00A1A480 /* PopoverHolder.swift */; }; + FE4AA06C2D214FFD00A1A480 /* LuminareSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA03F2D214FFD00A1A480 /* LuminareSection.swift */; }; + FE4AA06D2D214FFD00A1A480 /* StringFormatStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0592D214FFD00A1A480 /* StringFormatStyle.swift */; }; + FE4AA06E2D214FFD00A1A480 /* LuminareList.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA03D2D214FFD00A1A480 /* LuminareList.swift */; }; + FE4AA06F2D214FFD00A1A480 /* LuminareSliderPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0402D214FFD00A1A480 /* LuminareSliderPicker.swift */; }; + FE4AA0712D214FFD00A1A480 /* LuminareBackgroundEffect.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0572D214FFD00A1A480 /* LuminareBackgroundEffect.swift */; }; + FE4AA0722D214FFD00A1A480 /* EnvironmentValues.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0562D214FFD00A1A480 /* EnvironmentValues.swift */; }; + FE4AA0752D214FFD00A1A480 /* PopoverPanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0382D214FFD00A1A480 /* PopoverPanel.swift */; }; + FE4AA0762D214FFD00A1A480 /* LuminareTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0412D214FFD00A1A480 /* LuminareTextField.swift */; }; + FE4AA0772D214FFD00A1A480 /* LuminarePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA03E2D214FFD00A1A480 /* LuminarePicker.swift */; }; + FE4AA0792D214FFD00A1A480 /* LuminareInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA03C2D214FFD00A1A480 /* LuminareInfoView.swift */; }; + FE4AA07D2D214FFD00A1A480 /* LuminareTrafficLightedWindowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0532D214FFD00A1A480 /* LuminareTrafficLightedWindowView.swift */; }; + FE4AA0812D21522B00A1A480 /* LuminareConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA0802D21522700A1A480 /* LuminareConstants.swift */; }; FE4C92172B61459F00FF79BE /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4C92162B61459F00FF79BE /* String+Extension.swift */; }; FE5B3CA22AB0AC700038B6E4 /* FullPopoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE5B3CA12AB0AC700038B6E4 /* FullPopoverView.swift */; }; FE5B56E62D037EEF0077527C /* Defaults in Frameworks */ = {isa = PBXBuildFile; productRef = FE5B56E52D037EEF0077527C /* Defaults */; }; @@ -73,7 +95,7 @@ FE9FCF252CAEC2780015DF4D /* AppleMusicManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */; }; FEA6FB232B04169B00DACC43 /* AudioDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA6FB222B04169B00DACC43 /* AudioDevice.swift */; }; FEB21FB82D1AC71400849679 /* PopoverSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEB21FB72D1AC71400849679 /* PopoverSettingsView.swift */; }; - FEB21FBA2D1ACDCD00849679 /* IconButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEB21FB92D1ACDCA00849679 /* IconButton.swift */; }; + FEB21FBA2D1ACDCD00849679 /* IconUrlButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEB21FB92D1ACDCA00849679 /* IconUrlButton.swift */; }; FEBA35EA2D17566E0081A3F2 /* VerticalMiniPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */; }; FEBA35EC2D1766790081A3F2 /* MiniPlayerScaleFactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */; }; FEBA3D022B5824D700E25A67 /* BackgroundType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEBA3D012B5824D700E25A67 /* BackgroundType.swift */; }; @@ -85,7 +107,6 @@ FEF0660F2B51910700A514F2 /* KeyboardShortcuts in Frameworks */ = {isa = PBXBuildFile; productRef = FEF0660E2B51910700A514F2 /* KeyboardShortcuts */; }; FEF066112B51914900A514F2 /* KeyboardShortcuts+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEF066102B51914900A514F2 /* KeyboardShortcuts+Extension.swift */; }; FEF32F9B2CBD05FE0084BDAD /* TapAnimationModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEF32F9A2CBD05F90084BDAD /* TapAnimationModifier.swift */; }; - FEF32F9E2CBD49610084BDAD /* Luminare in Frameworks */ = {isa = PBXBuildFile; productRef = FEF32F9D2CBD49610084BDAD /* Luminare */; }; FEF53A642AEEA43600CE4981 /* VolumeControlView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEF53A632AEEA43600CE4981 /* VolumeControlView.swift */; }; FEF53A6A2AEEAC0D00CE4981 /* ISSoundAdditions in Frameworks */ = {isa = PBXBuildFile; productRef = FEF53A692AEEAC0D00CE4981 /* ISSoundAdditions */; }; FEF53A6C2AEFF3D600CE4981 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEF53A6B2AEFF3D600CE4981 /* NotificationView.swift */; }; @@ -150,6 +171,28 @@ FE478BFC2CB288350033D272 /* SystemPlayerManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemPlayerManager.swift; sourceTree = ""; }; FE4808F02B51BA400077BDAA /* AboutSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsView.swift; sourceTree = ""; }; FE4808F32B51C3870077BDAA /* GeneralSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsView.swift; sourceTree = ""; }; + FE4AA0372D214FFD00A1A480 /* PopoverHolder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverHolder.swift; sourceTree = ""; }; + FE4AA0382D214FFD00A1A480 /* PopoverPanel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverPanel.swift; sourceTree = ""; }; + FE4AA03A2D214FFD00A1A480 /* DividedVStack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DividedVStack.swift; sourceTree = ""; }; + FE4AA03B2D214FFD00A1A480 /* LuminareButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminareButtonStyle.swift; sourceTree = ""; }; + FE4AA03C2D214FFD00A1A480 /* LuminareInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminareInfoView.swift; sourceTree = ""; }; + FE4AA03D2D214FFD00A1A480 /* LuminareList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminareList.swift; sourceTree = ""; }; + FE4AA03E2D214FFD00A1A480 /* LuminarePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminarePicker.swift; sourceTree = ""; }; + FE4AA03F2D214FFD00A1A480 /* LuminareSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminareSection.swift; sourceTree = ""; }; + FE4AA0402D214FFD00A1A480 /* LuminareSliderPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminareSliderPicker.swift; sourceTree = ""; }; + FE4AA0412D214FFD00A1A480 /* LuminareTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminareTextField.swift; sourceTree = ""; }; + FE4AA0422D214FFD00A1A480 /* LuminareToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminareToggle.swift; sourceTree = ""; }; + FE4AA0432D214FFD00A1A480 /* LuminareValueAdjuster.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminareValueAdjuster.swift; sourceTree = ""; }; + FE4AA04F2D214FFD00A1A480 /* LuminareModalView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminareModalView.swift; sourceTree = ""; }; + FE4AA0502D214FFD00A1A480 /* LuminareModalWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminareModalWindow.swift; sourceTree = ""; }; + FE4AA0522D214FFD00A1A480 /* LuminareTrafficLightedWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminareTrafficLightedWindow.swift; sourceTree = ""; }; + FE4AA0532D214FFD00A1A480 /* LuminareTrafficLightedWindowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminareTrafficLightedWindowView.swift; sourceTree = ""; }; + FE4AA0552D214FFD00A1A480 /* Color+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+Extensions.swift"; sourceTree = ""; }; + FE4AA0562D214FFD00A1A480 /* EnvironmentValues.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvironmentValues.swift; sourceTree = ""; }; + FE4AA0572D214FFD00A1A480 /* LuminareBackgroundEffect.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminareBackgroundEffect.swift; sourceTree = ""; }; + FE4AA0582D214FFD00A1A480 /* ScreenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScreenView.swift; sourceTree = ""; }; + FE4AA0592D214FFD00A1A480 /* StringFormatStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringFormatStyle.swift; sourceTree = ""; }; + FE4AA0802D21522700A1A480 /* LuminareConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LuminareConstants.swift; sourceTree = ""; }; FE4C92162B61459F00FF79BE /* String+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extension.swift"; sourceTree = ""; }; FE5B3CA12AB0AC700038B6E4 /* FullPopoverView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FullPopoverView.swift; sourceTree = ""; }; FE5B56EA2D0386EC0077527C /* Defaults+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Defaults+Extensions.swift"; sourceTree = ""; }; @@ -183,7 +226,7 @@ FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppleMusicManager.swift; sourceTree = ""; }; FEA6FB222B04169B00DACC43 /* AudioDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioDevice.swift; sourceTree = ""; }; FEB21FB72D1AC71400849679 /* PopoverSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverSettingsView.swift; sourceTree = ""; }; - FEB21FB92D1ACDCA00849679 /* IconButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconButton.swift; sourceTree = ""; }; + FEB21FB92D1ACDCA00849679 /* IconUrlButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconUrlButton.swift; sourceTree = ""; }; FEBA35E92D17566E0081A3F2 /* VerticalMiniPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerticalMiniPlayerView.swift; sourceTree = ""; }; FEBA35EB2D1766670081A3F2 /* MiniPlayerScaleFactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerScaleFactor.swift; sourceTree = ""; }; FEBA3D012B5824D700E25A67 /* BackgroundType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundType.swift; sourceTree = ""; }; @@ -212,7 +255,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - FEF32F9E2CBD49610084BDAD /* Luminare in Frameworks */, FEFFE5502B4AA04B000887B5 /* Settings in Frameworks */, FE5B56E82D037EEF0077527C /* DefaultsMacros in Frameworks */, FEF0660F2B51910700A514F2 /* KeyboardShortcuts in Frameworks */, @@ -285,7 +327,7 @@ FE3189DB2A7B9D0B006B2D59 /* Views */ = { isa = PBXGroup; children = ( - FEB21FB92D1ACDCA00849679 /* IconButton.swift */, + FEB21FB92D1ACDCA00849679 /* IconUrlButton.swift */, FE5B56F12D059B350077527C /* BackgroundView.swift */, FE31AEDB2CFBCB71002818ED /* SettingsView.swift */, FE2554A12CA9CA93003DAB77 /* HoverButton.swift */, @@ -320,6 +362,75 @@ path = Buttons; sourceTree = ""; }; + FE4AA0392D214FFD00A1A480 /* Popover */ = { + isa = PBXGroup; + children = ( + FE4AA0372D214FFD00A1A480 /* PopoverHolder.swift */, + FE4AA0382D214FFD00A1A480 /* PopoverPanel.swift */, + ); + path = Popover; + sourceTree = ""; + }; + FE4AA0442D214FFD00A1A480 /* Components */ = { + isa = PBXGroup; + children = ( + FE4AA0392D214FFD00A1A480 /* Popover */, + FE4AA03A2D214FFD00A1A480 /* DividedVStack.swift */, + FE4AA03B2D214FFD00A1A480 /* LuminareButtonStyle.swift */, + FE4AA03C2D214FFD00A1A480 /* LuminareInfoView.swift */, + FE4AA03D2D214FFD00A1A480 /* LuminareList.swift */, + FE4AA03E2D214FFD00A1A480 /* LuminarePicker.swift */, + FE4AA03F2D214FFD00A1A480 /* LuminareSection.swift */, + FE4AA0402D214FFD00A1A480 /* LuminareSliderPicker.swift */, + FE4AA0412D214FFD00A1A480 /* LuminareTextField.swift */, + FE4AA0422D214FFD00A1A480 /* LuminareToggle.swift */, + FE4AA0432D214FFD00A1A480 /* LuminareValueAdjuster.swift */, + ); + path = Components; + sourceTree = ""; + }; + FE4AA0512D214FFD00A1A480 /* Modal Window */ = { + isa = PBXGroup; + children = ( + FE4AA04F2D214FFD00A1A480 /* LuminareModalView.swift */, + FE4AA0502D214FFD00A1A480 /* LuminareModalWindow.swift */, + ); + path = "Modal Window"; + sourceTree = ""; + }; + FE4AA0542D214FFD00A1A480 /* Modal Window - Traffic Lights */ = { + isa = PBXGroup; + children = ( + FE4AA0522D214FFD00A1A480 /* LuminareTrafficLightedWindow.swift */, + FE4AA0532D214FFD00A1A480 /* LuminareTrafficLightedWindowView.swift */, + ); + path = "Modal Window - Traffic Lights"; + sourceTree = ""; + }; + FE4AA05B2D214FFD00A1A480 /* Utilities */ = { + isa = PBXGroup; + children = ( + FE4AA0802D21522700A1A480 /* LuminareConstants.swift */, + FE4AA0552D214FFD00A1A480 /* Color+Extensions.swift */, + FE4AA0562D214FFD00A1A480 /* EnvironmentValues.swift */, + FE4AA0572D214FFD00A1A480 /* LuminareBackgroundEffect.swift */, + FE4AA0582D214FFD00A1A480 /* ScreenView.swift */, + FE4AA0592D214FFD00A1A480 /* StringFormatStyle.swift */, + ); + path = Utilities; + sourceTree = ""; + }; + FE4AA05C2D214FFD00A1A480 /* Luminare */ = { + isa = PBXGroup; + children = ( + FE4AA0442D214FFD00A1A480 /* Components */, + FE4AA0512D214FFD00A1A480 /* Modal Window */, + FE4AA0542D214FFD00A1A480 /* Modal Window - Traffic Lights */, + FE4AA05B2D214FFD00A1A480 /* Utilities */, + ); + path = Luminare; + sourceTree = ""; + }; FE5B56EB2D0386EC0077527C /* Defaults */ = { isa = PBXGroup; children = ( @@ -365,6 +476,7 @@ FE6BFCEF2A72F37900D3321F /* Tuneful.entitlements */, FE6BFCEC2A72F37900D3321F /* Preview Content */, FE1A62FA2CBC1B09001C13CE /* DynamicNotchKit */, + FE4AA05C2D214FFD00A1A480 /* Luminare */, ); path = Tuneful; sourceTree = ""; @@ -519,7 +631,6 @@ FEF53A692AEEAC0D00CE4981 /* ISSoundAdditions */, FEFFE54F2B4AA04B000887B5 /* Settings */, FEF0660E2B51910700A514F2 /* KeyboardShortcuts */, - FEF32F9D2CBD49610084BDAD /* Luminare */, FE5B56E52D037EEF0077527C /* Defaults */, FE5B56E72D037EEF0077527C /* DefaultsMacros */, ); @@ -557,7 +668,6 @@ FEF53A682AEEAC0D00CE4981 /* XCRemoteSwiftPackageReference "ISSoundAdditions" */, FEFFE54E2B4AA04B000887B5 /* XCRemoteSwiftPackageReference "Settings" */, FEF0660D2B51910700A514F2 /* XCRemoteSwiftPackageReference "KeyboardShortcuts" */, - FEF32F9C2CBD49610084BDAD /* XCRemoteSwiftPackageReference "Luminare" */, FE5B56E42D037EEF0077527C /* XCRemoteSwiftPackageReference "Defaults" */, ); productRefGroup = FE6BFCE42A72F37800D3321F /* Products */; @@ -609,6 +719,27 @@ FE37A0332A829623006FBA5B /* MusicControl.swift in Sources */, FEF53A6E2AEFF42300CE4981 /* AlertItem.swift in Sources */, FE5B56EC2D0386EC0077527C /* Defaults+Extensions.swift in Sources */, + FE4AA05D2D214FFD00A1A480 /* LuminareModalView.swift in Sources */, + FE4AA05F2D214FFD00A1A480 /* LuminareValueAdjuster.swift in Sources */, + FE4AA0602D214FFD00A1A480 /* ScreenView.swift in Sources */, + FE4AA0612D214FFD00A1A480 /* LuminareButtonStyle.swift in Sources */, + FE4AA0632D214FFD00A1A480 /* DividedVStack.swift in Sources */, + FE4AA0662D214FFD00A1A480 /* Color+Extensions.swift in Sources */, + FE4AA0672D214FFD00A1A480 /* LuminareToggle.swift in Sources */, + FE4AA0692D214FFD00A1A480 /* LuminareTrafficLightedWindow.swift in Sources */, + FE4AA06A2D214FFD00A1A480 /* LuminareModalWindow.swift in Sources */, + FE4AA06B2D214FFD00A1A480 /* PopoverHolder.swift in Sources */, + FE4AA06C2D214FFD00A1A480 /* LuminareSection.swift in Sources */, + FE4AA06D2D214FFD00A1A480 /* StringFormatStyle.swift in Sources */, + FE4AA06E2D214FFD00A1A480 /* LuminareList.swift in Sources */, + FE4AA06F2D214FFD00A1A480 /* LuminareSliderPicker.swift in Sources */, + FE4AA0712D214FFD00A1A480 /* LuminareBackgroundEffect.swift in Sources */, + FE4AA0722D214FFD00A1A480 /* EnvironmentValues.swift in Sources */, + FE4AA0752D214FFD00A1A480 /* PopoverPanel.swift in Sources */, + FE4AA0762D214FFD00A1A480 /* LuminareTextField.swift in Sources */, + FE4AA0772D214FFD00A1A480 /* LuminarePicker.swift in Sources */, + FE4AA0792D214FFD00A1A480 /* LuminareInfoView.swift in Sources */, + FE4AA07D2D214FFD00A1A480 /* LuminareTrafficLightedWindowView.swift in Sources */, FE1A62FB2CBC1B09001C13CE /* DynamicNotch.swift in Sources */, FE1A62FC2CBC1B09001C13CE /* NSScreen+Extensions.swift in Sources */, FE1A62FD2CBC1B09001C13CE /* DynamicNotchInfo.swift in Sources */, @@ -655,7 +786,7 @@ FE6BFD062A73ACFD00D3321F /* Constants.swift in Sources */, FEFFE55B2B4FE028000887B5 /* DateComponentsFormatter+Extension.swift in Sources */, FEF53A642AEEA43600CE4981 /* VolumeControlView.swift in Sources */, - FEB21FBA2D1ACDCD00849679 /* IconButton.swift in Sources */, + FEB21FBA2D1ACDCD00849679 /* IconUrlButton.swift in Sources */, FE9FCF232CAEC0C90015DF4D /* SpotifyManager.swift in Sources */, FE31AED02CF50708002818ED /* PlaybackPositionView.swift in Sources */, FE25549B2CA95F87003DAB77 /* AddToFavoritesView.swift in Sources */, @@ -664,6 +795,7 @@ FEB21FB82D1AC71400849679 /* PopoverSettingsView.swift in Sources */, FE2AEE342A8FE0F200E8D576 /* Settings+Extension.swift in Sources */, FE4808F42B51C3870077BDAA /* GeneralSettingsView.swift in Sources */, + FE4AA0812D21522B00A1A480 /* LuminareConstants.swift in Sources */, FE1F7E952B89E92A00B702AD /* StatusBarPlaybackManager.swift in Sources */, FE6BFCFB2A73A7CA00D3321F /* SupportedApps.swift in Sources */, FE6BFCE72A72F37800D3321F /* Tuneful.swift in Sources */, @@ -918,14 +1050,6 @@ minimumVersion = 1.16.1; }; }; - FEF32F9C2CBD49610084BDAD /* XCRemoteSwiftPackageReference "Luminare" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/MrKai77/Luminare"; - requirement = { - branch = main; - kind = branch; - }; - }; FEF53A682AEEAC0D00CE4981 /* XCRemoteSwiftPackageReference "ISSoundAdditions" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/jbrinkman/ISSoundAdditions"; @@ -965,11 +1089,6 @@ package = FEF0660D2B51910700A514F2 /* XCRemoteSwiftPackageReference "KeyboardShortcuts" */; productName = KeyboardShortcuts; }; - FEF32F9D2CBD49610084BDAD /* Luminare */ = { - isa = XCSwiftPackageProductDependency; - package = FEF32F9C2CBD49610084BDAD /* XCRemoteSwiftPackageReference "Luminare" */; - productName = Luminare; - }; FEF53A692AEEAC0D00CE4981 /* ISSoundAdditions */ = { isa = XCSwiftPackageProductDependency; package = FEF53A682AEEAC0D00CE4981 /* XCRemoteSwiftPackageReference "ISSoundAdditions" */; diff --git a/Tuneful.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Tuneful.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 305cc5e..8872059 100644 --- a/Tuneful.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Tuneful.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "ad92d9010f4569238efa3e12fe62d24dddc7e27fae21ccfa8a1e815cae43f377", + "originHash" : "61e122680a565099cb88e758d0eec9f1f5823dacfd1100d916877c105a2eba93", "pins" : [ { "identity" : "defaults", @@ -37,15 +37,6 @@ "revision" : "8e28b5e5a9561ace33a26c55d78f74963fbce6f9" } }, - { - "identity" : "luminare", - "kind" : "remoteSourceControl", - "location" : "https://github.com/MrKai77/Luminare", - "state" : { - "branch" : "main", - "revision" : "a9c1d600e972c5523c27eb7cd84637f4f05beaaa" - } - }, { "identity" : "settings", "kind" : "remoteSourceControl", diff --git a/Tuneful/Luminare/Components/DividedVStack.swift b/Tuneful/Luminare/Components/DividedVStack.swift new file mode 100644 index 0000000..0826a20 --- /dev/null +++ b/Tuneful/Luminare/Components/DividedVStack.swift @@ -0,0 +1,136 @@ +// +// DividedVStack.swift +// +// +// Created by Kai Azim on 2024-04-02. +// +// Thank you https://movingparts.io/variadic-views-in-swiftui + +import SwiftUI + +public struct DividedVStack: View { + let spacing: CGFloat? + let applyMaskToItems: Bool + let showDividers: Bool + var content: Content + + public init(spacing: CGFloat? = nil, applyMaskToItems: Bool = true, showDividers: Bool = true, @ViewBuilder content: () -> Content) { + self.spacing = spacing + self.applyMaskToItems = applyMaskToItems + self.showDividers = showDividers + self.content = content() + } + + public var body: some View { + _VariadicView.Tree( + DividedVStackLayout( + spacing: applyMaskToItems ? spacing : 0, + applyMaskToItems: applyMaskToItems, + showDividers: showDividers + ) + ) { + content + } + } +} + +struct DividedVStackLayout: _VariadicView_UnaryViewRoot { + let spacing: CGFloat + let applyMaskToItems: Bool + let showDividers: Bool + + let innerPadding: CGFloat = 4 + + init(spacing: CGFloat?, applyMaskToItems: Bool, showDividers: Bool) { + self.spacing = spacing ?? innerPadding + self.applyMaskToItems = applyMaskToItems + self.showDividers = showDividers + } + + @ViewBuilder + func body(children: _VariadicView.Children) -> some View { + let first = children.first?.id + let last = children.last?.id + + VStack(spacing: showDividers ? spacing : spacing / 2) { + ForEach(children) { child in + Group { + if applyMaskToItems { + child + .modifier( + LuminareCroppedSectionItem( + isFirstChild: child.id == first, + isLastChild: child.id == last + ) + ) + .padding(.top, child.id == first ? 1 : 0) + .padding(.bottom, child.id == last ? 1 : 0) + .padding(.horizontal, 1) + } else { + child + .mask(Rectangle()) // Fixes hover areas for some reason + .padding(.vertical, -4) + } + } + + if showDividers, child.id != last { + Divider() + .padding(.horizontal, 1) + } + } + } + .padding(.vertical, innerPadding) + } +} + +public struct LuminareCroppedSectionItem: ViewModifier { + let cornerRadius: CGFloat = 12 + let innerPadding: CGFloat = 4 + let innerCornerRadius: CGFloat = 2 + + let isFirstChild: Bool + let isLastChild: Bool + + public init(isFirstChild: Bool, isLastChild: Bool) { + self.isFirstChild = isFirstChild + self.isLastChild = isLastChild + } + + public func body(content: Content) -> some View { + content + .mask(getMask()) + .padding(.horizontal, innerPadding) + } + + func getMask() -> some View { + if isFirstChild, isLastChild { + UnevenRoundedRectangle( + topLeadingRadius: cornerRadius - innerPadding, + bottomLeadingRadius: cornerRadius - innerPadding, + bottomTrailingRadius: cornerRadius - innerPadding, + topTrailingRadius: cornerRadius - innerPadding + ) + } else if isFirstChild { + UnevenRoundedRectangle( + topLeadingRadius: cornerRadius - innerPadding, + bottomLeadingRadius: innerCornerRadius, + bottomTrailingRadius: innerCornerRadius, + topTrailingRadius: cornerRadius - innerPadding + ) + } else if isLastChild { + UnevenRoundedRectangle( + topLeadingRadius: innerCornerRadius, + bottomLeadingRadius: cornerRadius - innerPadding, + bottomTrailingRadius: cornerRadius - innerPadding, + topTrailingRadius: innerCornerRadius + ) + } else { + UnevenRoundedRectangle( + topLeadingRadius: innerCornerRadius, + bottomLeadingRadius: innerCornerRadius, + bottomTrailingRadius: innerCornerRadius, + topTrailingRadius: innerCornerRadius + ) + } + } +} diff --git a/Tuneful/Luminare/Components/LuminareButtonStyle.swift b/Tuneful/Luminare/Components/LuminareButtonStyle.swift new file mode 100644 index 0000000..95d2c90 --- /dev/null +++ b/Tuneful/Luminare/Components/LuminareButtonStyle.swift @@ -0,0 +1,196 @@ +// +// LuminareButtonStyle.swift +// +// +// Created by Kai Azim on 2024-04-02. +// + +import SwiftUI + +public struct LuminareButtonStyle: ButtonStyle { + @Environment(\.isEnabled) private var isEnabled: Bool + let innerCornerRadius: CGFloat = 2 + let elementMinHeight: CGFloat = 34 + @State var isHovering: Bool = false + + public init() {} + + public func makeBody(configuration: Configuration) -> some View { + configuration.label + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background(backgroundForState(isPressed: configuration.isPressed)) + .onHover { hover in + withAnimation(LuminareConstants.fastAnimation) { + isHovering = hover + } + } + .animation(LuminareConstants.fastAnimation, value: isHovering) + .frame(minHeight: elementMinHeight) + .clipShape(.rect(cornerRadius: innerCornerRadius)) + .opacity(isEnabled ? 1 : 0.5) + } + + private func backgroundForState(isPressed: Bool) -> some View { + Group { + if isPressed, isEnabled { + Rectangle().foregroundStyle(.quaternary) + } else if isHovering, isEnabled { + Rectangle().foregroundStyle(.quaternary.opacity(0.7)) + } else { + Rectangle().foregroundStyle(.quinary) + } + } + } +} + +public struct LuminareDestructiveButtonStyle: ButtonStyle { + @Environment(\.isEnabled) private var isEnabled: Bool + let innerCornerRadius: CGFloat = 2 + let elementMinHeight: CGFloat = 34 + @State var isHovering: Bool = false + + public init() {} + + public func makeBody(configuration: Configuration) -> some View { + configuration.label + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background(destructiveBackgroundForState(isPressed: configuration.isPressed)) + .onHover { hover in + withAnimation(LuminareConstants.fastAnimation) { + isHovering = hover + } + } + .animation(LuminareConstants.fastAnimation, value: isHovering) + .frame(minHeight: elementMinHeight) + .clipShape(.rect(cornerRadius: innerCornerRadius)) + .opacity(isEnabled ? 1 : 0.5) + } + + private func destructiveBackgroundForState(isPressed: Bool) -> some View { + Group { + if isPressed, isEnabled { + Rectangle().foregroundStyle(.red.opacity(0.4)) + } else if isHovering, isEnabled { + Rectangle().foregroundStyle(.red.opacity(0.25)) + } else { + Rectangle().foregroundStyle(.red.opacity(0.15)) + } + } + } +} + +public struct LuminareCosmeticButtonStyle: ButtonStyle { + @Environment(\.isEnabled) private var isEnabled: Bool + let innerCornerRadius: CGFloat = 2 + let elementMinHeight: CGFloat = 34 + @State var isHovering: Bool = false + let icon: Image + + public init(_ icon: Image) { + self.icon = icon + } + + public func makeBody(configuration: Configuration) -> some View { + configuration.label + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background(backgroundForState(isPressed: configuration.isPressed)) + .onHover { hover in + withAnimation(LuminareConstants.fastAnimation) { + isHovering = hover + } + } + .frame(minHeight: elementMinHeight) + .clipShape(.rect(cornerRadius: innerCornerRadius)) + .opacity(isEnabled ? 1 : 0.5) + .overlay { + HStack { + Spacer() + icon + .opacity(isHovering ? 1 : 0) + } + .padding(24) + .allowsHitTesting(false) + } + } + + private func backgroundForState(isPressed: Bool) -> some View { + Group { + if isPressed, isEnabled { + Rectangle().foregroundStyle(.quaternary) + } else if isHovering, isEnabled { + Rectangle().foregroundStyle(.quaternary.opacity(0.7)) + } + } + } +} + +public struct LuminareCompactButtonStyle: ButtonStyle { + @Environment(\.isEnabled) private var isEnabled: Bool + let elementMinHeight: CGFloat = 34 + let elementExtraMinHeight: CGFloat = 25 + let extraCompact: Bool + @State var isHovering: Bool = false + let cornerRadius: CGFloat = 8 + + public init(extraCompact: Bool = false) { + self.extraCompact = extraCompact + } + + public func makeBody(configuration: Configuration) -> some View { + configuration.label + .padding(.horizontal, extraCompact ? 0 : 12) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background(backgroundForState(isPressed: configuration.isPressed)) + .background { + RoundedRectangle(cornerRadius: cornerRadius) + .strokeBorder(.quaternary, lineWidth: 1) + } + .fixedSize(horizontal: extraCompact, vertical: extraCompact) + .clipShape(.rect(cornerRadius: cornerRadius)) + .onHover { hover in + withAnimation(LuminareConstants.fastAnimation) { + isHovering = hover + } + } + .animation(LuminareConstants.fastAnimation, value: isHovering) + .frame(minHeight: extraCompact ? elementExtraMinHeight : elementMinHeight) + .opacity(isEnabled ? 1 : 0.5) + } + + private func backgroundForState(isPressed: Bool) -> some View { + Group { + if isPressed { + Rectangle().foregroundStyle(.quaternary) + } else if isHovering { + Rectangle().foregroundStyle(.quaternary.opacity(0.7)) + } else { + Rectangle().foregroundStyle(.quinary) + } + } + } +} + +public struct LuminareBordered: ViewModifier { + @Binding var highlight: Bool + let cornerRadius: CGFloat = 8 + + public init(highlight: Binding = .constant(false)) { + self._highlight = highlight + } + + public func body(content: Content) -> some View { + content + .background { + if highlight { + Rectangle().foregroundStyle(.quaternary.opacity(0.7)) + } else { + Rectangle().foregroundStyle(.quinary) + } + } + .clipShape(.rect(cornerRadius: cornerRadius)) + .background { + RoundedRectangle(cornerRadius: cornerRadius) + .strokeBorder(.quaternary, lineWidth: 1) + } + } +} diff --git a/Tuneful/Luminare/Components/LuminareInfoView.swift b/Tuneful/Luminare/Components/LuminareInfoView.swift new file mode 100644 index 0000000..99fd21b --- /dev/null +++ b/Tuneful/Luminare/Components/LuminareInfoView.swift @@ -0,0 +1,54 @@ +// +// LuminareInfoView.swift +// +// +// Created by Kai Azim on 2024-06-02. +// + +import SwiftUI + +public struct LuminareInfoView: View { + let color: Color + let description: LocalizedStringKey + @State var isShowingDescription: Bool = false + @State var isHovering: Bool = false + + @State var hoverTimer: Timer? + + public init(_ description: LocalizedStringKey, _ color: Color = .blue) { + self.color = color + self.description = description + } + + public var body: some View { + VStack { + Circle() + .foregroundStyle(color) + .frame(width: 4, height: 4) + .padding(.leading, 4) + .padding(12) + .contentShape(.circle) + .padding(-12) + .onHover { hovering in + isHovering = hovering + + if isHovering { + hoverTimer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: false) { _ in + isShowingDescription = true + } + } else { + hoverTimer?.invalidate() + isShowingDescription = false + } + } + + .popover(isPresented: $isShowingDescription, arrowEdge: .bottom) { + Text(description) + .multilineTextAlignment(.center) + .padding(8) + } + + Spacer() + } + } +} diff --git a/Tuneful/Luminare/Components/LuminareList.swift b/Tuneful/Luminare/Components/LuminareList.swift new file mode 100644 index 0000000..435dd19 --- /dev/null +++ b/Tuneful/Luminare/Components/LuminareList.swift @@ -0,0 +1,482 @@ +// +// LuminareList.swift +// +// +// Created by Kai Azim on 2024-04-13. +// + +import SwiftUI + +public struct LuminareList: View where ContentA: View, ContentB: View, V: Hashable, ID: Hashable { + @Environment(\.tintColor) var tintColor + @Environment(\.clickedOutsideFlag) var clickedOutsideFlag + + let header: LocalizedStringKey? + @Binding var items: [V] + @Binding var selection: Set + let addAction: () -> () + let content: (Binding) -> ContentA + let emptyView: () -> ContentB + + @State private var firstItem: V? + @State private var lastItem: V? + let id: KeyPath + + let addText: LocalizedStringKey + let removeText: LocalizedStringKey + + @State var canRefreshSelection = true + let cornerRadius: CGFloat = 2 + let lineWidth: CGFloat = 1.5 + @State var eventMonitor: AnyObject? + + public init( + _ header: LocalizedStringKey? = nil, + items: Binding<[V]>, + selection: Binding>, + addAction: @escaping () -> (), + @ViewBuilder content: @escaping (Binding) -> ContentA, + @ViewBuilder emptyView: @escaping () -> ContentB, + id: KeyPath, + addText: LocalizedStringKey, + removeText: LocalizedStringKey + ) { + self.header = header + self._items = items + self._selection = selection + self.addAction = addAction + self.content = content + self.emptyView = emptyView + self.id = id + self.addText = addText + self.removeText = removeText + } + + public init( + _ header: LocalizedStringKey? = nil, + addText: LocalizedStringKey, + removeText: LocalizedStringKey, + items: Binding<[V]>, + selection: Binding>, + id: KeyPath, + @ViewBuilder content: @escaping (Binding) -> ContentA, + @ViewBuilder emptyView: @escaping () -> ContentB, + addAction: @escaping () -> () + ) { + self.init( + header, + items: items, + selection: selection, + addAction: addAction, + content: content, + emptyView: emptyView, + id: id, + addText: addText, + removeText: removeText + ) + } + + public init( + _ header: LocalizedStringKey? = nil, + addText: LocalizedStringKey, + removeText: LocalizedStringKey, + items: Binding<[V]>, + selection: Binding>, + id: KeyPath, + @ViewBuilder content: @escaping (Binding) -> ContentA, + addAction: @escaping () -> () + ) where ContentB == EmptyView { + self.init( + header, + addText: addText, + removeText: removeText, + items: items, + selection: selection, + id: id, + content: content, + emptyView: { + EmptyView() + }, + addAction: addAction + ) + } + + public var body: some View { + LuminareSection(header, disablePadding: true) { + HStack(spacing: 2) { + Button(addText) { + addAction() + } + + Button(removeText) { + if !selection.isEmpty { + canRefreshSelection = false + items.removeAll(where: { selection.contains($0) }) + + selection = [] + + DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) { + canRefreshSelection = true + } + } + } + .buttonStyle(LuminareDestructiveButtonStyle()) + .disabled(selection.isEmpty) + } + .modifier( + LuminareCroppedSectionItem( + isFirstChild: true, + isLastChild: false + ) + ) + .padding(.vertical, 4) + .padding(.bottom, 4) + .padding([.top, .horizontal], 1) + + if items.isEmpty { + emptyView() + .frame(minHeight: 50) + } else { + List(selection: $selection) { + ForEach($items, id: id) { item in + LuminareListItem( + items: $items, + selection: $selection, + item: item, + content: content, + firstItem: $firstItem, + lastItem: $lastItem, + canRefreshSelection: $canRefreshSelection + ) + } + // .onDelete(perform: deleteItems) // deleteItems crashes Loop, need to be investigated further + .onMove { indices, newOffset in + withAnimation(LuminareConstants.animation) { + items.move(fromOffsets: indices, toOffset: newOffset) + } + } + .listRowBackground(Color.clear) + .listRowSeparator(.hidden) + .listRowInsets(EdgeInsets()) + .padding(.horizontal, -10) + } + .frame(height: CGFloat(items.count * 50)) + .padding(.top, 4) + .scrollContentBackground(.hidden) + .scrollDisabled(true) + .listStyle(.plain) + } + } + .onChange(of: clickedOutsideFlag) { _ in + withAnimation(LuminareConstants.animation) { + selection = [] + } + } + .onChange(of: selection) { _ in + processSelection() + + if selection.isEmpty { + removeEventMonitor() + } else { + addEventMonitor() + } + } + .onAppear { + if !selection.isEmpty { + addEventMonitor() + } + } + .onDisappear { + removeEventMonitor() + } + } + + // #warning("onDelete & deleteItems WILL crash on macOS 14.5, but it's fine on 14.4 and below.") + // private func deleteItems(at offsets: IndexSet) { + // withAnimation { + // items.remove(atOffsets: offsets) + // } + // } + + func processSelection() { + if selection.isEmpty { + firstItem = nil + lastItem = nil + } else { + firstItem = items.first(where: { selection.contains($0) }) + lastItem = items.last(where: { selection.contains($0) }) + } + } + + func addEventMonitor() { + if eventMonitor != nil { + return + } + eventMonitor = NSEvent.addLocalMonitorForEvents(matching: .keyDown) { event in + let kVK_Escape: CGKeyCode = 0x35 + + if event.keyCode == kVK_Escape { + withAnimation(LuminareConstants.animation) { + selection = [] + } + return nil + } + return event + } as? NSObject + } + + func removeEventMonitor() { + if let eventMonitor { + NSEvent.removeMonitor(eventMonitor) + } + eventMonitor = nil + } +} + +struct LuminareListItem: View where Content: View, V: Hashable { + @Environment(\.tintColor) var tintColor + + @Binding var item: V + let content: (Binding) -> Content + + @Binding var items: [V] + @Binding var selection: Set + + @Binding var firstItem: V? + @Binding var lastItem: V? + @Binding var canRefreshSelection: Bool + + @State var isHovering = false + + let cornerRadius: CGFloat = 2 + let maxLineWidth: CGFloat = 1.5 + @State var lineWidth: CGFloat = .zero + + let maxTintOpacity: CGFloat = 0.15 + @State var tintOpacity: CGFloat = .zero + + init( + items: Binding<[V]>, + selection: Binding>, + item: Binding, + @ViewBuilder content: @escaping (Binding) -> Content, + firstItem: Binding, + lastItem: Binding, + canRefreshSelection: Binding + ) { + self._items = items + self._selection = selection + self._item = item + self.content = content + self._firstItem = firstItem + self._lastItem = lastItem + self._canRefreshSelection = canRefreshSelection + } + + var body: some View { + Color.clear + .frame(height: 50) + .overlay { + content($item) + .environment(\.hoveringOverLuminareItem, isHovering) + } + .tag(item) + .onHover { hover in + withAnimation(LuminareConstants.fastAnimation) { + isHovering = hover + } + } + + .background { + ZStack { + getItemBorder() + getItemBackground() + } + .padding(.horizontal, 1) + .padding(.leading, 1) + } + + .overlay { + if item != items.last { + VStack { + Spacer() + Divider() + } + .padding(.trailing, -0.5) + } + } + .onChange(of: selection) { _ in + guard canRefreshSelection else { return } + DispatchQueue.main.async { + withAnimation(LuminareConstants.animation) { + tintOpacity = selection.contains(item) ? maxTintOpacity : .zero + lineWidth = selection.contains(item) ? maxLineWidth : .zero + } + } + } + } + + @ViewBuilder func getItemBackground() -> some View { + Group { + tintColor() + .opacity(tintOpacity) + + if isHovering { + Rectangle() + .foregroundStyle(.quaternary.opacity(0.7)) + .opacity((maxTintOpacity - tintOpacity) * (1 / maxTintOpacity)) + } + } + } + + @ViewBuilder func getItemBorder() -> some View { + if isFirstInSelection(), isLastInSelection() { + singleSelectionPart(isBottomOfList: item == items.last) + + } else if isFirstInSelection() { + firstItemPart() + + } else if isLastInSelection() { + lastItemPart(isBottomOfList: item == items.last) + + } else if selection.contains(item) { + doubleLinePart() + } + } + + func isFirstInSelection() -> Bool { + if let firstIndex = items.firstIndex(of: item), + firstIndex > 0, + !selection.contains(items[firstIndex - 1]) { + return true + } + + return item == firstItem + } + + func isLastInSelection() -> Bool { + if let firstIndex = items.firstIndex(of: item), + firstIndex < items.count - 1, + !selection.contains(items[firstIndex + 1]) { + return true + } + + return item == lastItem + } + + func firstItemPart() -> some View { + VStack(spacing: 0) { + ZStack { + UnevenRoundedRectangle( + topLeadingRadius: cornerRadius, + bottomLeadingRadius: 0, + bottomTrailingRadius: 0, + topTrailingRadius: cornerRadius + ) + .strokeBorder(tintColor(), lineWidth: lineWidth) + + VStack { + Color.clear + HStack { + Spacer() + .frame(width: lineWidth) + + Rectangle() + .foregroundStyle(.white) + .blendMode(.destinationOut) + + Spacer() + .frame(width: lineWidth) + } + } + } + .compositingGroup() + + // --- Bottom part --- + + HStack { + Rectangle() + .frame(width: lineWidth) + + Spacer() + + Rectangle() + .frame(width: lineWidth) + } + .foregroundStyle(tintColor()) + } + } + + func lastItemPart(isBottomOfList: Bool) -> some View { + VStack(spacing: 0) { + HStack { + Rectangle() + .frame(width: lineWidth) + + Spacer() + + Rectangle() + .frame(width: lineWidth) + } + .foregroundStyle(tintColor()) + + // --- Bottom part --- + + ZStack { + UnevenRoundedRectangle( + topLeadingRadius: 0, + bottomLeadingRadius: isBottomOfList ? (12 + lineWidth / 2.0) : cornerRadius, + bottomTrailingRadius: isBottomOfList ? (12 + lineWidth / 2.0) : cornerRadius, + topTrailingRadius: 0 + ) + .strokeBorder(tintColor(), lineWidth: lineWidth) + + VStack { + HStack { + Spacer() + .frame(width: lineWidth) + + Rectangle() + .foregroundStyle(.white) + .blendMode(.destinationOut) + + Spacer() + .frame(width: lineWidth) + } + Color.clear + } + } + .compositingGroup() + } + } + + func doubleLinePart() -> some View { + HStack { + Rectangle() + .frame(width: lineWidth) + + Spacer() + + Rectangle() + .frame(width: lineWidth) + } + .foregroundStyle(tintColor()) + } + + func singleSelectionPart(isBottomOfList: Bool) -> some View { + UnevenRoundedRectangle( + topLeadingRadius: cornerRadius, + bottomLeadingRadius: isBottomOfList ? (12 + lineWidth / 2.0) : cornerRadius, + bottomTrailingRadius: isBottomOfList ? (12 + lineWidth / 2.0) : cornerRadius, + topTrailingRadius: cornerRadius + ) + .strokeBorder(tintColor(), lineWidth: lineWidth) + } +} + +extension NSTableView { + override open func viewDidMoveToWindow() { + super.viewWillDraw() + selectionHighlightStyle = .none + } +} diff --git a/Tuneful/Luminare/Components/LuminarePicker.swift b/Tuneful/Luminare/Components/LuminarePicker.swift new file mode 100644 index 0000000..e827796 --- /dev/null +++ b/Tuneful/Luminare/Components/LuminarePicker.swift @@ -0,0 +1,172 @@ +// +// LuminarePicker.swift +// +// +// Created by Kai Azim on 2024-04-05. +// + +import SwiftUI + +public protocol LuminarePickerData { + var selectable: Bool { get } +} + +public struct LuminarePicker: View where Content: View, V: Equatable { + @Environment(\.tintColor) var tintColor + + let cornerRadius: CGFloat = 12 + let innerPadding: CGFloat = 4 + let innerCornerRadius: CGFloat = 2 + + let elements2D: [[V]] + let rowsIndex: Int + let columnsIndex: Int + + @Binding var selectedItem: V + @State var internalSelection: V + + let roundTop: Bool + let roundBottom: Bool + let content: (V) -> Content + + public init( + elements: [V], + selection: Binding, + columns: Int = 4, + roundTop: Bool = true, + roundBottom: Bool = true, + @ViewBuilder content: @escaping (V) -> Content + ) { + self.elements2D = elements.slice(size: columns) + self.rowsIndex = elements2D.count - 1 + self.columnsIndex = columns - 1 + self.roundTop = roundTop + self.roundBottom = roundBottom + self.content = content + + self._selectedItem = selection + self._internalSelection = State(initialValue: selection.wrappedValue) + } + + var isCompact: Bool { + rowsIndex == 0 + } + + public var body: some View { + Group { + if isCompact { + HStack(spacing: 2) { + ForEach(0...columnsIndex, id: \.self) { j in + pickerButton(i: 0, j: j) + } + } + .frame(minHeight: 34) + } else { + VStack(spacing: 2) { + ForEach(0...rowsIndex, id: \.self) { i in + HStack(spacing: 2) { + ForEach(0...columnsIndex, id: \.self) { j in + pickerButton(i: i, j: j) + } + } + } + } + .frame(minHeight: 150) + } + } + // This will improve animation performance + .onChange(of: internalSelection) { _ in + withAnimation(LuminareConstants.animation) { + selectedItem = internalSelection + } + } + } + + @ViewBuilder func pickerButton(i: Int, j: Int) -> some View { + if let element = getElement(i: i, j: j) { + Button { + guard !isDisabled(element) else { return } + withAnimation(LuminareConstants.animation) { + internalSelection = element + } + } label: { + ZStack { + let isActive = internalSelection == element + getShape(i: i, j: j) + .foregroundStyle(isActive ? tintColor().opacity(0.15) : .clear) + .overlay { + getShape(i: i, j: j) + .strokeBorder( + tintColor(), + lineWidth: isActive ? 1.5 : 0 + ) + } + + content(element) + .foregroundStyle(isDisabled(element) ? .secondary : .primary) + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + } + } else { + getShape(i: i, j: j) + .strokeBorder(.quaternary, lineWidth: 1) + } + } + + func isDisabled(_ element: V) -> Bool { + (element as? LuminarePickerData)?.selectable == false + } + + func getElement(i: Int, j: Int) -> V? { + guard j < elements2D[i].count else { return nil } + return elements2D[i][j] + } + + func getShape(i: Int, j: Int) -> some InsettableShape { + if j == 0, i == 0, roundTop { // Top left + UnevenRoundedRectangle( + topLeadingRadius: cornerRadius - innerPadding, + bottomLeadingRadius: (rowsIndex == 0 && roundBottom) ? cornerRadius - innerPadding : innerCornerRadius, + bottomTrailingRadius: innerCornerRadius, + topTrailingRadius: (columnsIndex == 0) ? cornerRadius - innerPadding : innerCornerRadius + ) + } else if j == 0, i == rowsIndex, roundBottom { // Bottom left + UnevenRoundedRectangle( + topLeadingRadius: innerCornerRadius, + bottomLeadingRadius: cornerRadius - innerPadding, + bottomTrailingRadius: (columnsIndex == 0) ? cornerRadius - innerPadding : innerCornerRadius, + topTrailingRadius: innerCornerRadius + ) + } else if j == columnsIndex, i == 0, roundTop { // Top right + UnevenRoundedRectangle( + topLeadingRadius: innerCornerRadius, + bottomLeadingRadius: innerCornerRadius, + bottomTrailingRadius: (rowsIndex == 0 && roundBottom) ? cornerRadius - innerPadding : innerCornerRadius, + topTrailingRadius: cornerRadius - innerPadding + ) + } else if j == columnsIndex, i == rowsIndex, roundBottom { // Bottom right + UnevenRoundedRectangle( + topLeadingRadius: innerCornerRadius, + bottomLeadingRadius: innerCornerRadius, + bottomTrailingRadius: cornerRadius - innerPadding, + topTrailingRadius: innerCornerRadius + ) + } else { + UnevenRoundedRectangle( + topLeadingRadius: innerCornerRadius, + bottomLeadingRadius: innerCornerRadius, + bottomTrailingRadius: innerCornerRadius, + topTrailingRadius: innerCornerRadius + ) + } + } +} + +extension Array { + func slice(size: Int) -> [[Element]] { + (0 ..< (count / size + (count % size == 0 ? 0 : 1))) + .map { + Array(self[($0 * size) ..< (Swift.min($0 * size + size, count))]) + } + } +} diff --git a/Tuneful/Luminare/Components/LuminareSection.swift b/Tuneful/Luminare/Components/LuminareSection.swift new file mode 100644 index 0000000..db77906 --- /dev/null +++ b/Tuneful/Luminare/Components/LuminareSection.swift @@ -0,0 +1,55 @@ +// +// LuminareSection.swift +// +// +// Created by Kai Azim on 2024-04-01. +// + +import SwiftUI + +public struct LuminareSection: View { + let headerSpacing: CGFloat = 8 + let cornerRadius: CGFloat = 12 + let innerPadding: CGFloat = 4 + + let header: LocalizedStringKey? + let disablePadding: Bool + let showDividers: Bool + let noBorder: Bool + let content: () -> Content + + public init(_ header: LocalizedStringKey? = nil, disablePadding: Bool = false, showDividers: Bool = true, noBorder: Bool = false, @ViewBuilder _ content: @escaping () -> Content) { + self.header = header + self.disablePadding = disablePadding + self.showDividers = showDividers + self.noBorder = noBorder + self.content = content + } + + public var body: some View { + VStack(spacing: headerSpacing) { + if let header { + HStack { + Text(header) + Spacer() + } + .foregroundStyle(.secondary) + } + + if noBorder { + content() + } else { + DividedVStack(applyMaskToItems: !disablePadding, showDividers: showDividers) { + content() + } + .frame(maxWidth: .infinity) + .background(.quinary) + .clipShape(.rect(cornerRadius: cornerRadius)) + .overlay { + RoundedRectangle(cornerRadius: cornerRadius) + .strokeBorder(.quaternary, lineWidth: 1) + } + } + } + } +} diff --git a/Tuneful/Luminare/Components/LuminareSliderPicker.swift b/Tuneful/Luminare/Components/LuminareSliderPicker.swift new file mode 100644 index 0000000..4b2e655 --- /dev/null +++ b/Tuneful/Luminare/Components/LuminareSliderPicker.swift @@ -0,0 +1,79 @@ +// +// LuminareSliderPicker.swift +// +// +// Created by Kai Azim on 2024-04-14. +// + +import SwiftUI + +public struct LuminareSliderPicker: View where V: Equatable { + let height: CGFloat = 70 + + let title: LocalizedStringKey + + let options: [V] + @Binding var selection: V + + let label: (V) -> LocalizedStringKey + + let horizontalPadding: CGFloat = 8 + + public init(_ title: LocalizedStringKey, _ options: [V], selection: Binding, label: @escaping (V) -> LocalizedStringKey) { + self.title = title + self.options = options + self._selection = selection + self.label = label + } + + public var body: some View { + VStack { + HStack { + Text(title) + + Spacer() + + labelView() + } + + Slider( + value: Binding( + get: { + Double(options.firstIndex(where: { $0 == selection }) ?? 0) + }, + set: { newIndex in + selection = options[Int(newIndex)] + } + ), + in: 0...Double(options.count - 1), + step: 1 + ) + } + .padding(.horizontal, horizontalPadding) + .frame(height: height) + .animation(LuminareConstants.animation, value: selection) + } + + @ViewBuilder + func labelView() -> some View { + HStack { + Text(label(selection)) + .contentTransition(.numericText()) + .multilineTextAlignment(.trailing) + .monospaced() + .padding(4) + .padding(.horizontal, 4) + .background { + ZStack { + Capsule() + .strokeBorder(.quaternary, lineWidth: 1) + + Capsule() + .foregroundStyle(.quinary.opacity(0.5)) + } + } + .fixedSize() + .clipShape(.capsule) + } + } +} diff --git a/Tuneful/Luminare/Components/LuminareTextField.swift b/Tuneful/Luminare/Components/LuminareTextField.swift new file mode 100644 index 0000000..fa7d5de --- /dev/null +++ b/Tuneful/Luminare/Components/LuminareTextField.swift @@ -0,0 +1,66 @@ +// +// LuminareTextField.swift +// +// +// Created by Kai Azim on 2024-04-16. +// + +import SwiftUI + +public struct LuminareTextField: View where F: ParseableFormatStyle, F.FormatOutput == String { + let elementMinHeight: CGFloat = 34 + let horizontalPadding: CGFloat = 8 + + @Binding var value: F.FormatInput? + var format: F + let placeholder: LocalizedStringKey + let onSubmit: (() -> ())? + + @State var monitor: Any? + + public init(_ placeholder: LocalizedStringKey, value: Binding, format: F, onSubmit: (() -> ())? = nil) { + self._value = value + self.format = format + self.placeholder = placeholder + self.onSubmit = onSubmit + } + + public init(_ placeholder: LocalizedStringKey, text: Binding, onSubmit: (() -> ())? = nil) where F == StringFormatStyle { + self.init(placeholder, value: .init(text), format: StringFormatStyle(), onSubmit: onSubmit) + } + + public var body: some View { + TextField(placeholder, value: $value, format: format) + .padding(.horizontal, horizontalPadding) + .frame(minHeight: elementMinHeight) + .textFieldStyle(.plain) + .onSubmit { + if let onSubmit { + onSubmit() + } + } + + .onAppear { + guard monitor != nil else { return } + + monitor = NSEvent.addLocalMonitorForEvents(matching: .keyDown) { event in + if let window = NSApp.keyWindow, window.animationBehavior == .documentWindow { + window.keyDown(with: event) + + // Fixes cmd+w to close window. + let wKey = 13 + if event.keyCode == wKey, event.modifierFlags.contains(.command) { + return nil + } + } + return event + } + } + .onDisappear { + if let monitor { + NSEvent.removeMonitor(monitor) + } + monitor = nil + } + } +} diff --git a/Tuneful/Luminare/Components/LuminareToggle.swift b/Tuneful/Luminare/Components/LuminareToggle.swift new file mode 100644 index 0000000..0d54018 --- /dev/null +++ b/Tuneful/Luminare/Components/LuminareToggle.swift @@ -0,0 +1,57 @@ +// +// LuminareToggle.swift +// +// +// Created by Kai Azim on 2024-04-02. +// + +import SwiftUI + +public struct LuminareToggle: View { + @Environment(\.tintColor) var tintColor + + let elementMinHeight: CGFloat = 34 + let horizontalPadding: CGFloat = 8 + + let title: LocalizedStringKey + let infoView: LuminareInfoView? + @Binding var value: Bool + + let disabled: Bool + @State var isShowingDescription: Bool = false + + public init( + _ title: LocalizedStringKey, + info: LuminareInfoView? = nil, + isOn value: Binding, + disabled: Bool = false + ) { + self.title = title + self.infoView = info + self._value = value + self.disabled = disabled + } + + public var body: some View { + HStack { + HStack(spacing: 0) { + Text(title) + + if let infoView { + infoView + } + } + .fixedSize(horizontal: false, vertical: true) + + Spacer() + + Toggle("", isOn: $value.animation(LuminareConstants.animation)) + .labelsHidden() + .controlSize(.small) + .toggleStyle(.switch) + .disabled(disabled) + } + .padding(.horizontal, horizontalPadding) + .frame(minHeight: elementMinHeight) + } +} diff --git a/Tuneful/Luminare/Components/LuminareValueAdjuster.swift b/Tuneful/Luminare/Components/LuminareValueAdjuster.swift new file mode 100644 index 0000000..6091e24 --- /dev/null +++ b/Tuneful/Luminare/Components/LuminareValueAdjuster.swift @@ -0,0 +1,277 @@ +// +// LuminareValueAdjuster.swift +// +// +// Created by Kai Azim on 2024-04-02. +// + +import SwiftUI + +public struct LuminareValueAdjuster: View where V: Strideable, V: BinaryFloatingPoint, V.Stride: BinaryFloatingPoint { + public enum ControlSize { + case regular + case compact + + var height: CGFloat { + switch self { + case .regular: 70 + case .compact: 34 + } + } + } + + let horizontalPadding: CGFloat = 8 + + let formatter: NumberFormatter + var totalRange: V { + sliderRange.upperBound - sliderRange.lowerBound + } + + @State var isShowingTextBox = false + + // Focus + enum FocusedField { + case textbox + } + + @FocusState var focusedField: FocusedField? + + let title: LocalizedStringKey + let infoView: LuminareInfoView? + @Binding var value: V + let sliderRange: ClosedRange + let suffix: LocalizedStringKey? + var step: V + let upperClamp: Bool + let lowerClamp: Bool + let controlSize: LuminareValueAdjuster.ControlSize + + let decimalPlaces: Int + @State var eventMonitor: AnyObject? + + // TODO: MAX DIGIT SPACING FOR LABEL + public init( + _ title: LocalizedStringKey, + info: LuminareInfoView? = nil, + value: Binding, + sliderRange: ClosedRange, + suffix: LocalizedStringKey? = nil, + step: V? = nil, + lowerClamp: Bool = false, + upperClamp: Bool = false, + controlSize: LuminareValueAdjuster.ControlSize = .regular, + decimalPlaces: Int = 0 + ) { + self.title = title + self.infoView = info + self._value = value + self.sliderRange = sliderRange + self.suffix = suffix + self.lowerClamp = lowerClamp + self.upperClamp = upperClamp + self.controlSize = controlSize + + self.decimalPlaces = decimalPlaces + + self.formatter = NumberFormatter() + formatter.maximumFractionDigits = 5 + + if let step { + self.step = step + } else { + self.step = 1 + } + } + + public var body: some View { + VStack { + if controlSize == .regular { + HStack { + titleView() + + Spacer() + + labelView() + } + + sliderView() + } else { + HStack(spacing: 12) { + titleView() + + Spacer(minLength: 0) + + HStack(spacing: 12) { + sliderView() + + labelView() + } + .frame(width: 270) + } + } + } + .padding(.horizontal, horizontalPadding) + .frame(height: controlSize.height) + .animation(LuminareConstants.animation, value: value) + .animation(LuminareConstants.animation, value: isShowingTextBox) + } + + func titleView() -> some View { + HStack(spacing: 0) { + Text(title) + + if let infoView { + infoView + } + } + .fixedSize(horizontal: false, vertical: true) + } + + func sliderView() -> some View { + Slider( + value: Binding( + get: { + value + }, + set: { newValue in + value = newValue + isShowingTextBox = false + } + ), + in: sliderRange + ) + } + + @ViewBuilder + func labelView() -> some View { + HStack { + if isShowingTextBox { + TextField( + "", + value: Binding( + get: { + value + }, + set: { + if lowerClamp, upperClamp { + value = $0.clamped(to: sliderRange) + } else if lowerClamp { + value = max(sliderRange.lowerBound, $0) + } else if upperClamp { + value = min(sliderRange.upperBound, $0) + } else { + value = $0 + } + } + ), + formatter: formatter + ) + .onSubmit { + withAnimation(LuminareConstants.fastAnimation) { + isShowingTextBox.toggle() + } + } + .focused($focusedField, equals: .textbox) + .multilineTextAlignment(.trailing) + .labelsHidden() + .textFieldStyle(.plain) + .padding(.leading, -4) + } else { + Button { + withAnimation(LuminareConstants.fastAnimation) { + isShowingTextBox.toggle() + focusedField = .textbox + } + } label: { + Text(String(format: "%.\(decimalPlaces)f", value as! CVarArg)) + .contentTransition(.numericText()) + .multilineTextAlignment(.trailing) + } + .buttonStyle(PlainButtonStyle()) + } + + if let suffix { + Text(suffix) + .padding(.leading, -6) + } + } + .frame(maxWidth: 150) + .monospaced() + .padding(4) + .padding(.horizontal, 4) + .background { + ZStack { + Capsule() + .strokeBorder(.quaternary, lineWidth: 1) + + if isShowingTextBox { + Capsule() + .foregroundStyle(.quinary) + } else { + Capsule() + .foregroundStyle(.quinary.opacity(0.5)) + } + } + } + .fixedSize() + .clipShape(.capsule) + .onChange(of: isShowingTextBox) { _ in + if isShowingTextBox { + addEventMonitor() + } else { + removeEventMonitor() + } + } + .onDisappear { + removeEventMonitor() + } + } + + func addEventMonitor() { + if eventMonitor != nil { + return + } + + eventMonitor = NSEvent.addLocalMonitorForEvents(matching: .keyDown) { event in + let downArrow: CGKeyCode = 0x7D + let upArrow: CGKeyCode = 0x7E + + guard event.keyCode == downArrow || event.keyCode == upArrow else { + return event + } + + if event.keyCode == upArrow { + value += step + } + + if event.keyCode == downArrow { + value -= step + } + + if lowerClamp, upperClamp { + value = value.clamped(to: sliderRange) + } else if lowerClamp { + value = max(sliderRange.lowerBound, value) + } else if upperClamp { + value = min(sliderRange.upperBound, value) + } else { + value = value + } + + return nil + } as? NSObject + } + + func removeEventMonitor() { + if let eventMonitor { + NSEvent.removeMonitor(eventMonitor) + } + eventMonitor = nil + } +} + +//private extension Comparable { +// func clamped(to limits: ClosedRange) -> Self { +// min(max(self, limits.lowerBound), limits.upperBound) +// } +//} diff --git a/Tuneful/Luminare/Components/Popover/PopoverHolder.swift b/Tuneful/Luminare/Components/Popover/PopoverHolder.swift new file mode 100644 index 0000000..7337b00 --- /dev/null +++ b/Tuneful/Luminare/Components/Popover/PopoverHolder.swift @@ -0,0 +1,141 @@ +// +// PopoverHolder.swift +// Luminare +// +// Created by Kai Azim on 2024-08-25. +// + +import SwiftUI + +public struct PopoverHolder: NSViewRepresentable { + @Binding var isPresented: Bool + @ViewBuilder var content: () -> Content + + public init(isPresented: Binding, @ViewBuilder content: @escaping () -> Content) { + self._isPresented = isPresented + self.content = content + } + + public func makeNSView(context _: Context) -> NSView { + .init() + } + + public func updateNSView(_ nsView: NSView, context: Context) { + DispatchQueue.main.async { + context.coordinator.setVisible(isPresented, in: nsView) + } + } + + public func makeCoordinator() -> Coordinator { + Coordinator(self, content: content) + } + + @MainActor + public class Coordinator: NSObject, NSWindowDelegate { + private let parent: PopoverHolder + private var content: () -> Content + private var monitor: Any? + private var originalYPoint: CGFloat? + var popover: PopoverPanel? + + init(_ parent: PopoverHolder, content: @escaping () -> Content) { + self.parent = parent + self.content = content + super.init() + } + + // View is optional bevause it is not needed to close the popup + func setVisible(_ isPresented: Bool, in view: NSView? = nil) { + // If we're going to be closing the window + guard isPresented else { + popover?.resignKey() + return + } + + guard let view else { return } + + if popover == nil { + initializePopup() + guard let popover else { return } + + // Popover size + let targetSize = NSSize(width: 300, height: 300) + let extraPadding: CGFloat = 10 + + // Get coordinates to place popopver + guard let windowFrame = view.window?.frame else { return } + let viewBounds = view.bounds + var targetPoint = view.convert(viewBounds, to: nil).origin // Convert to window coordinates + originalYPoint = targetPoint.y + + // Correct popover position + targetPoint.y += windowFrame.minY + targetPoint.x += windowFrame.minX + targetPoint.y -= targetSize.height + extraPadding + + // Set position and show popover + popover.setContentSize(targetSize) + popover.setFrameOrigin(targetPoint) + popover.makeKeyAndOrderFront(nil) + + if monitor == nil { + DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { [weak self] in + self?.monitor = NSEvent.addLocalMonitorForEvents(matching: [.scrollWheel]) { [weak self] event in + if event.window != self?.popover { + self?.setVisible(false) + } + return event + } + } + } + } + } + + public func windowWillClose(_: Notification) { + Task { + await MainActor.run { + removeMonitor() + parent.isPresented = false + self.popover = nil + } + } + } + + func initializePopup() { + self.popover = .init() + guard let popover else { return } + + popover.delegate = self + popover.contentViewController = NSHostingController( + rootView: content() + .background(VisualEffectView(material: .popover, blendingMode: .behindWindow)) + .overlay { + UnevenRoundedRectangle( + topLeadingRadius: PopoverPanel.cornerRadius + 2, + bottomLeadingRadius: PopoverPanel.cornerRadius + 2, + bottomTrailingRadius: PopoverPanel.cornerRadius + 2, + topTrailingRadius: PopoverPanel.cornerRadius + 2 + ) + .strokeBorder(Color.white.opacity(0.1), lineWidth: 1) + } + .clipShape( + UnevenRoundedRectangle( + topLeadingRadius: PopoverPanel.cornerRadius, + bottomLeadingRadius: PopoverPanel.cornerRadius, + bottomTrailingRadius: PopoverPanel.cornerRadius, + topTrailingRadius: PopoverPanel.cornerRadius + ) + ) + .ignoresSafeArea() + .environmentObject(popover) + ) + } + + func removeMonitor() { + if monitor != nil { + NSEvent.removeMonitor(monitor!) + monitor = nil + } + } + } +} diff --git a/Tuneful/Luminare/Components/Popover/PopoverPanel.swift b/Tuneful/Luminare/Components/Popover/PopoverPanel.swift new file mode 100644 index 0000000..04e6b9a --- /dev/null +++ b/Tuneful/Luminare/Components/Popover/PopoverPanel.swift @@ -0,0 +1,54 @@ +// +// PopoverPanel.swift +// Luminare +// +// Created by Kai Azim on 2024-08-25. +// + +import SwiftUI + +public class PopoverPanel: NSPanel, ObservableObject { + public static let cornerRadius: CGFloat = 12 + public static let contentPadding: CGFloat = 6 + public static let sectionPadding: CGFloat = 8 + + @Published public var closeHandler: (() -> ())? + + public init() { + super.init( + contentRect: .zero, + styleMask: [.fullSizeContentView, .titled], + backing: .buffered, + defer: false + ) + titleVisibility = .hidden + titlebarAppearsTransparent = true + titleVisibility = .hidden + backgroundColor = .clear + isOpaque = false + ignoresMouseEvents = false + becomesKeyOnlyIfNeeded = true + level = .floating + } + + override public var canBecomeKey: Bool { + true + } + + override public var canBecomeMain: Bool { + false + } + + override public var acceptsFirstResponder: Bool { + true + } + + override public func close() { + closeHandler?() + super.close() + } + + override public func resignKey() { + close() + } +} diff --git a/Tuneful/Luminare/Modal Window - Traffic Lights/LuminareTrafficLightedWindow.swift b/Tuneful/Luminare/Modal Window - Traffic Lights/LuminareTrafficLightedWindow.swift new file mode 100644 index 0000000..03d9250 --- /dev/null +++ b/Tuneful/Luminare/Modal Window - Traffic Lights/LuminareTrafficLightedWindow.swift @@ -0,0 +1,66 @@ +// +// LuminareTrafficLightedWindow.swift +// +// +// Created by Kai Azim on 2024-06-15. +// + +import SwiftUI + +// Initialize this window simply by initializing it. +public class LuminareTrafficLightedWindow: NSWindow, ObservableObject where Content: View { + public init(view: () -> Content) { + super.init( + contentRect: .zero, + styleMask: [.titled, .closable, .fullSizeContentView], + backing: .buffered, + defer: true + ) + + let hostingView = NSHostingView( + rootView: LuminareTrafficLightedWindowView(content: view()) + .environment(\.tintColor, LuminareConstants.tint) + .environmentObject(self) + ) + + backgroundColor = .clear + contentView = hostingView + contentView?.wantsLayer = true + ignoresMouseEvents = false + isOpaque = false + hasShadow = true + titleVisibility = .hidden + alphaValue = 0 + + toolbarStyle = .unified + titlebarAppearsTransparent = true + titleVisibility = .hidden + + let customToolbar = NSToolbar() + customToolbar.showsBaselineSeparator = false + toolbar = customToolbar + + center() + } + + override public func orderFrontRegardless() { + super.orderFrontRegardless() + + DispatchQueue.main.async { + self.center() + self.alphaValue = 1 + } + } + + func updateShadow(for duration: Double) { + let frameRate: Double = 60 + let updatesCount = Int(duration * frameRate) + let interval = duration / Double(updatesCount) + + for i in 0...updatesCount { + DispatchQueue.main.asyncAfter(deadline: .now() + Double(i) * interval) { + self.invalidateShadow() + } + } + } +} diff --git a/Tuneful/Luminare/Modal Window - Traffic Lights/LuminareTrafficLightedWindowView.swift b/Tuneful/Luminare/Modal Window - Traffic Lights/LuminareTrafficLightedWindowView.swift new file mode 100644 index 0000000..5013b5f --- /dev/null +++ b/Tuneful/Luminare/Modal Window - Traffic Lights/LuminareTrafficLightedWindowView.swift @@ -0,0 +1,66 @@ +// +// LuminareTrafficLightedWindowView.swift +// +// +// Created by Kai Azim on 2024-06-15. +// + +import SwiftUI + +struct LuminareTrafficLightedWindowView: View where Content: View { + @Environment(\.tintColor) var tintColor + @EnvironmentObject var floatingPanel: LuminareTrafficLightedWindow + + let sectionSpacing: CGFloat = 12 + let cornerRadius: CGFloat = 12 + let content: Content + + var body: some View { + VStack { + VStack(spacing: sectionSpacing) { + content + } + .padding(.top, 40) // titlebar + .fixedSize() + .background { + VisualEffectView( + material: .menu, + blendingMode: .behindWindow + ) + } + .overlay { + // The bottom has a smaller corner radius because a compact button will be used there + UnevenRoundedRectangle( + topLeadingRadius: cornerRadius, + bottomLeadingRadius: 8 + cornerRadius, + bottomTrailingRadius: 8 + cornerRadius, + topTrailingRadius: cornerRadius + ) + .strokeBorder(Color.white.opacity(0.1), lineWidth: 1) + } + .clipShape( + UnevenRoundedRectangle( + topLeadingRadius: cornerRadius, + bottomLeadingRadius: 8 + cornerRadius, + bottomTrailingRadius: 8 + cornerRadius, + topTrailingRadius: cornerRadius + ) + ) + + .background { + GeometryReader { proxy in + Color.clear + .onChange(of: proxy.size) { _ in + guard let modalWindow = floatingPanel as? LuminareTrafficLightedWindow else { return } + modalWindow.updateShadow(for: 0.5) + } + } + } + + Spacer() + } + .buttonStyle(LuminareButtonStyle()) + .tint(tintColor()) + .ignoresSafeArea() + } +} diff --git a/Tuneful/Luminare/Modal Window/LuminareModalView.swift b/Tuneful/Luminare/Modal Window/LuminareModalView.swift new file mode 100644 index 0000000..bdb561f --- /dev/null +++ b/Tuneful/Luminare/Modal Window/LuminareModalView.swift @@ -0,0 +1,70 @@ +// +// LuminareModalView.swift +// +// +// Created by Kai Azim on 2024-04-16. +// + +import SwiftUI + +struct LuminareModalView: View where Content: View { + @Environment(\.tintColor) var tintColor + @EnvironmentObject var floatingPanel: LuminareModal + + let sectionSpacing: CGFloat + let outerPadding: CGFloat + @ViewBuilder var content: () -> Content + + init(isCompact: Bool, @ViewBuilder content: @escaping () -> Content) { + self.sectionSpacing = isCompact ? 8 : 16 + self.outerPadding = isCompact ? 8 : 16 + self.content = content + } + + var body: some View { + Group { + VStack(spacing: sectionSpacing) { + content() + } + .padding(outerPadding) + .fixedSize() + .background { + VisualEffectView( + material: .fullScreenUI, + blendingMode: .behindWindow + ) + .overlay { + // The bottom has a smaller corner radius because a compact button will be used there + UnevenRoundedRectangle( + topLeadingRadius: 12 + outerPadding, + bottomLeadingRadius: 8 + outerPadding, + bottomTrailingRadius: 8 + outerPadding, + topTrailingRadius: 12 + outerPadding + ) + .strokeBorder(Color.white.opacity(0.1), lineWidth: 1) + } + } + .clipShape( + UnevenRoundedRectangle( + topLeadingRadius: 12 + outerPadding, + bottomLeadingRadius: 8 + outerPadding, + bottomTrailingRadius: 8 + outerPadding, + topTrailingRadius: 12 + outerPadding + ) + ) + + .background { + GeometryReader { proxy in + Color.clear + .onChange(of: proxy.size) { _ in + floatingPanel.updateShadow(for: 0.5) + } + } + } + .buttonStyle(LuminareButtonStyle()) + .tint(tintColor()) + .ignoresSafeArea() + } + .frame(maxHeight: .infinity, alignment: .top) + } +} diff --git a/Tuneful/Luminare/Modal Window/LuminareModalWindow.swift b/Tuneful/Luminare/Modal Window/LuminareModalWindow.swift new file mode 100644 index 0000000..3f030f7 --- /dev/null +++ b/Tuneful/Luminare/Modal Window/LuminareModalWindow.swift @@ -0,0 +1,171 @@ +// +// LuminareModalWindow.swift +// +// +// Created by Kai Azim on 2024-04-14. +// +// Huge thanks to https://cindori.com/developer/floating-panel :) + +import SwiftUI + +class LuminareModal: NSWindow, ObservableObject where Content: View { + @Binding var isPresented: Bool + let closeOnDefocus: Bool + let isCompact: Bool + + init( + isPresented: Binding, + closeOnDefocus: Bool, + isCompact: Bool, + @ViewBuilder content: @escaping () -> Content + ) { + self._isPresented = isPresented + self.closeOnDefocus = closeOnDefocus + self.isCompact = isCompact + super.init( + contentRect: .zero, + styleMask: [.fullSizeContentView], + backing: .buffered, + defer: false + ) + + let hostingView = NSHostingView( + rootView: LuminareModalView(isCompact: isCompact, content: content) + .environment(\.tintColor, LuminareConstants.tint) + .environmentObject(self) + ) + + collectionBehavior.insert(.fullScreenAuxiliary) + level = .floating + backgroundColor = .clear + contentView = hostingView + contentView?.wantsLayer = true + ignoresMouseEvents = false + isOpaque = false + hasShadow = true + titlebarAppearsTransparent = true + titleVisibility = .hidden + animationBehavior = .documentWindow + + center() + } + + func updateShadow(for duration: Double) { + guard isPresented else { return } + + let frameRate: Double = 60 + let updatesCount = Int(duration * frameRate) + let interval = duration / Double(updatesCount) + + for i in 0...updatesCount { + DispatchQueue.main.asyncAfter(deadline: .now() + Double(i) * interval) { + self.invalidateShadow() + } + } + } + + override func close() { + NSAnimationContext.runAnimationGroup({ context in + context.duration = 0.15 + self.animator().alphaValue = 0 + }, completionHandler: { + super.close() + self.isPresented = false + }) + } + + override func keyDown(with event: NSEvent) { + let wKey = 13 + if event.keyCode == wKey, event.modifierFlags.contains(.command) { + close() + return + } + super.keyDown(with: event) + } + + override func mouseDown(with event: NSEvent) { + let titlebarHeight: CGFloat = isCompact ? 12 : 16 + if event.locationInWindow.y > frame.height - titlebarHeight { + super.performDrag(with: event) + } else { + super.mouseDragged(with: event) + } + } + + override var canBecomeKey: Bool { + true + } + + override var canBecomeMain: Bool { + true + } + + override func resignMain() { + if closeOnDefocus { + close() + } + } +} + +struct LuminareModalModifier: ViewModifier where PanelContent: View { + @State private var panel: LuminareModal? + + @Binding var isPresented: Bool + let closeOnDefocus: Bool + let isCompact: Bool + @ViewBuilder var content: () -> PanelContent + + func body(content: Content) -> some View { + content + .onChange(of: isPresented) { newValue in + if newValue { + present() + } else { + close() + } + } + .onDisappear { + isPresented = false + close() + } + } + + private func present() { + guard panel == nil else { return } + panel = LuminareModal( + isPresented: $isPresented, + closeOnDefocus: closeOnDefocus, + isCompact: isCompact, + content: content + ) + + DispatchQueue.main.async { + panel?.center() + panel?.orderFrontRegardless() + panel?.makeKey() + } + } + + private func close() { + panel?.close() + panel = nil + } +} + +public extension View { + func luminareModal( + isPresented: Binding, + closeOnDefocus: Bool = false, + isCompact: Bool = false, + @ViewBuilder content: @escaping () -> some View + ) -> some View { + modifier( + LuminareModalModifier( + isPresented: isPresented, + closeOnDefocus: closeOnDefocus, + isCompact: isCompact, + content: content + ) + ) + } +} diff --git a/Tuneful/Luminare/Utilities/Color+Extensions.swift b/Tuneful/Luminare/Utilities/Color+Extensions.swift new file mode 100644 index 0000000..2f16e69 --- /dev/null +++ b/Tuneful/Luminare/Utilities/Color+Extensions.swift @@ -0,0 +1,103 @@ +// +// Color+Extensions.swift +// +// +// Created by Kai Azim on 2024-05-13. +// + +import AppKit +import SwiftUI + +// Extension to add functionality to SwiftUI's Color type +public extension Color { + static let violet = Color(red: 0.56, green: 0, blue: 1) + + // Initialize with HEX value, supporting both 3 and 6 characters + init?(hex: String) { + let hexSanitized = hex.trimmingCharacters(in: .whitespacesAndNewlines).replacingOccurrences(of: "#", with: "") + let expandedHex: String = if hexSanitized.count == 3 { + hexSanitized.map { "\($0)\($0)" }.joined() + } else { + hexSanitized + } + + let rgbValue = UInt64(expandedHex, radix: 16) ?? 0 + + if rgbValue == 0, expandedHex != "000000" { + NSLog("Invalid HEX value provided: \(hex)") + return nil + } + + self.init( + red: Double((rgbValue & 0xFF0000) >> 16) / 255.0, + green: Double((rgbValue & 0x00FF00) >> 8) / 255.0, + blue: Double(rgbValue & 0x0000FF) / 255.0 + ) + } + + // Convert to HEX representation + func toHex() -> String { + let nsColor = NSColor(self).usingColorSpace(.deviceRGB) ?? .black + return String( + format: "#%02X%02X%02X", Int(nsColor.redComponent * 255), Int(nsColor.greenComponent * 255), + Int(nsColor.blueComponent * 255) + ) + } + + // Convert to RGB values + func toRGB() -> (red: Double, green: Double, blue: Double) { + let nsColor = NSColor(self).usingColorSpace(.deviceRGB) ?? .black + return ( + Double(nsColor.redComponent * 255), Double(nsColor.greenComponent * 255), + Double(nsColor.blueComponent * 255) + ) + } + + // Mix with another color + func mixed(with other: Color, amount: CGFloat) -> Color { + guard amount >= 0, amount <= 1 else { + NSLog("Invalid mix amount: \(amount). Amount must be between 0 and 1.") + return self + } + let blend = { (c1: CGFloat, c2: CGFloat) -> CGFloat in c1 + (c2 - c1) * amount } + let selfComponents = components + let otherComponents = other.components + return Color( + red: blend(selfComponents.red, otherComponents.red), + green: blend(selfComponents.green, otherComponents.green), + blue: blend(selfComponents.blue, otherComponents.blue) + ) + } + + // Extract RGBA components + var components: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) { + let nsColor = NSColor(self) + var red: CGFloat = 0 + var green: CGFloat = 0 + var blue: CGFloat = 0 + var alpha: CGFloat = 0 + nsColor.getRed(&red, green: &green, blue: &blue, alpha: &alpha) + return (red, green, blue, alpha) + } + + // Adjust the brightness of the color + func brightnessAdjustment(brightness: Double) -> Color { + let hsb = toHSB() + // Ensure the new brightness is within the range [0, 1] + let adjustedBrightness = max(0.0, min(brightness, 1.0)) + return Color( + hue: Double(hsb.hue), saturation: Double(hsb.saturation), brightness: adjustedBrightness + ) + } + + // Convert color to HSB values + func toHSB() -> (hue: CGFloat, saturation: CGFloat, brightness: CGFloat) { + let nsColor = NSColor(self).usingColorSpace(.deviceRGB) ?? NSColor.black + var hue: CGFloat = 0 + var saturation: CGFloat = 0 + var brightness: CGFloat = 0 + var alpha: CGFloat = 0 + nsColor.getHue(&hue, saturation: &saturation, brightness: &brightness, alpha: &alpha) + return (hue, saturation, brightness) + } +} diff --git a/Tuneful/Luminare/Utilities/EnvironmentValues.swift b/Tuneful/Luminare/Utilities/EnvironmentValues.swift new file mode 100644 index 0000000..53aad6a --- /dev/null +++ b/Tuneful/Luminare/Utilities/EnvironmentValues.swift @@ -0,0 +1,62 @@ +// +// EnvironmentValues.swift +// +// +// Created by Kai Azim on 2024-04-05. +// + +import SwiftUI + +// MARK: - TintColor + +// Currently, it is impossible to read the .tint(Color) modifier on a view. +// This is a custom environement value as an alternative implementation of it. +public struct TintColorEnvironmentKey: EnvironmentKey { + public static var defaultValue: () -> Color = { .accentColor } +} + +public extension EnvironmentValues { + var tintColor: () -> Color { + get { self[TintColorEnvironmentKey.self] } + set { self[TintColorEnvironmentKey.self] = newValue } + } +} + +// MARK: - HoveringOverLuminareItem + +public struct HoveringOverLuminareItem: EnvironmentKey { + public static var defaultValue: Bool = false +} + +public extension EnvironmentValues { + var hoveringOverLuminareItem: Bool { + get { self[HoveringOverLuminareItem.self] } + set { self[HoveringOverLuminareItem.self] = newValue } + } +} + +// MARK: - ClickedOutside + +public struct LuminareWindowKey: EnvironmentKey { + public static let defaultValue: NSWindow? = nil +} + +public extension EnvironmentValues { + var luminareWindow: NSWindow? { + get { self[LuminareWindowKey.self] } + set { self[LuminareWindowKey.self] = newValue } + } +} + +// MARK: - ClickedOutside (Private) + +struct ClickedOutsideFlagKey: EnvironmentKey { + static let defaultValue: Bool = false +} + +extension EnvironmentValues { + var clickedOutsideFlag: Bool { + get { self[ClickedOutsideFlagKey.self] } + set { self[ClickedOutsideFlagKey.self] = newValue } + } +} diff --git a/Tuneful/Luminare/Utilities/LuminareBackgroundEffect.swift b/Tuneful/Luminare/Utilities/LuminareBackgroundEffect.swift new file mode 100644 index 0000000..a1303e4 --- /dev/null +++ b/Tuneful/Luminare/Utilities/LuminareBackgroundEffect.swift @@ -0,0 +1,25 @@ +// +// LuminareBackgroundEffect.swift +// Luminare +// +// Created by Kai Azim on 2024-09-29. +// + +import SwiftUI + +public struct LuminareBackgroundEffect: ViewModifier { + public func body(content: Content) -> some View { + content + .background { + VisualEffectView(material: .menu, blendingMode: .behindWindow) + .edgesIgnoringSafeArea(.top) + .allowsHitTesting(false) + } + } +} + +public extension View { + func luminareBackground() -> some View { + modifier(LuminareBackgroundEffect()) + } +} diff --git a/Tuneful/Luminare/Utilities/LuminareConstants.swift b/Tuneful/Luminare/Utilities/LuminareConstants.swift new file mode 100644 index 0000000..7c74a3e --- /dev/null +++ b/Tuneful/Luminare/Utilities/LuminareConstants.swift @@ -0,0 +1,14 @@ +// +// LuminareConstants.swift +// Tuneful +// +// Created by Martin Fekete on 29/12/2024. +// + +import SwiftUI + +public enum LuminareConstants { + public static var tint: () -> Color = { .accentColor } + public static var animation: Animation = .smooth(duration: 0.2) + public static var fastAnimation: Animation = .easeOut(duration: 0.1) +} diff --git a/Tuneful/Luminare/Utilities/ScreenView.swift b/Tuneful/Luminare/Utilities/ScreenView.swift new file mode 100644 index 0000000..443e0b5 --- /dev/null +++ b/Tuneful/Luminare/Utilities/ScreenView.swift @@ -0,0 +1,108 @@ +// +// ScreenView.swift +// Luminare Tester +// +// Created by Kai Azim on 2024-04-14. +// + +import SwiftUI + +public struct ScreenView: View where Content: View { + @Binding var blurred: Bool + let screenContent: () -> Content + @State private var image: NSImage? + + private let screenShape = UnevenRoundedRectangle( + topLeadingRadius: 12, + bottomLeadingRadius: 0, + bottomTrailingRadius: 0, + topTrailingRadius: 12 + ) + + public init(blurred: Binding = .constant(false), @ViewBuilder _ screenContent: @escaping () -> Content) { + self._blurred = blurred + self.screenContent = screenContent + } + + public var body: some View { + ZStack { + GeometryReader { geo in + if let image { + Image(nsImage: image) + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: geo.size.width, height: geo.size.height) + .blur(radius: blurred ? 10 : 0) + .opacity(blurred ? 0.5 : 1) + } else { + LuminareConstants.tint() + .opacity(0.1) + } + } + .allowsHitTesting(false) + .onAppear { + DispatchQueue.main.async { + Task { + await updateImage() + } + } + } + .overlay { + screenContent() + .padding(5) + } + .clipShape(screenShape) + + screenShape + .stroke(.gray, lineWidth: 2) + + screenShape + .inset(by: 2.5) + .stroke(.black, lineWidth: 5) + + screenShape + .inset(by: 3) + .stroke(.gray.opacity(0.2), lineWidth: 1) + } + .aspectRatio(16 / 10, contentMode: .fill) + } + + func updateImage() async { + guard + let screen = NSScreen.main, + let url = NSWorkspace.shared.desktopImageURL(for: screen), + image == nil || image!.isValid == false + else { + return + } + + if let newImage = NSImage.resize(url, width: 300) { + await withAnimation(LuminareConstants.fastAnimation) { + image = newImage + } + } + } +} + +extension NSImage { + static func resize(_ url: URL, width: CGFloat) -> NSImage? { + guard let inputImage = NSImage(contentsOf: url) else { return nil } + let aspectRatio = inputImage.size.width / inputImage.size.height + let thumbSize = NSSize( + width: width, + height: width / aspectRatio + ) + + let outputImage = NSImage(size: thumbSize) + outputImage.lockFocus() + inputImage.draw( + in: NSRect(origin: .zero, size: thumbSize), + from: .zero, + operation: .sourceOver, + fraction: 1 + ) + outputImage.unlockFocus() + + return outputImage + } +} diff --git a/Tuneful/Luminare/Utilities/StringFormatStyle.swift b/Tuneful/Luminare/Utilities/StringFormatStyle.swift new file mode 100644 index 0000000..c786a46 --- /dev/null +++ b/Tuneful/Luminare/Utilities/StringFormatStyle.swift @@ -0,0 +1,73 @@ +// +// StringFormatStyle.swift +// +// +// Created by KrLite on 2024/7/7. +// + +import SwiftUI + +public struct StringFormatStyle: Codable, Equatable, Hashable, ParseableFormatStyle { + public var parseStrategy: Strategy = .identity + + public typealias FormatInput = String + public typealias FormatOutput = String + + public enum Strategy: Codable, Equatable, Hashable, ParseStrategy { + public typealias ParseInput = String + public typealias ParseOutput = String + + case identity + case hex(HexStrategy) + + public func parse(_ value: String) throws -> String { + switch self { + case .identity: + value + case let .hex(strategy): + try strategy.parse(value) + } + } + } + + public enum HexStrategy: Codable, Equatable, Hashable, ParseStrategy { + public typealias ParseInput = String + public typealias ParseOutput = String + + /// `#42ab0E` -> `42ab0e` + case lowercased + + /// `#42ab0E` -> `42AB0E` + case uppercased + + /// `42ab0E` -> `#42ab0e` + case lowercasedWithWell + + /// `42ab0E` -> `#42AB0E` + case uppercasedWithWell + + public func parse(_ value: String) throws -> String { + switch self { + case .lowercased: + value.lowercased() + .replacing(#/[^a-f0-9]/#, with: "") + case .uppercased: + value.uppercased() + .replacing(#/[^A-F0-9]/#, with: "") + case .lowercasedWithWell: + try "#" + Self.lowercased.parse(value) + case .uppercasedWithWell: + try "#" + Self.uppercased.parse(value) + } + } + } + + public func format(_ value: String) -> String { + do { + return try parseStrategy.parse(value) + } catch { + print("Error: \(error)") + return value + } + } +} diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index e1edb23..90bd780 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -243,7 +243,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { statusBarMenu.addItem( withTitle: "Quit", - action: #selector(NSApplication.terminate), + action: #selector(quit), keyEquivalent: "" ) @@ -476,6 +476,12 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { @objc func hideNotch() { playerManager.deinitializeNotch() } + + // MARK: Misc + + @objc func quit() { + NSApplication.shared.terminate(self) + } } @main diff --git a/Tuneful/Views/IconButton.swift b/Tuneful/Views/IconUrlButton.swift similarity index 96% rename from Tuneful/Views/IconButton.swift rename to Tuneful/Views/IconUrlButton.swift index 9441713..c80830a 100644 --- a/Tuneful/Views/IconButton.swift +++ b/Tuneful/Views/IconUrlButton.swift @@ -8,7 +8,7 @@ import SwiftUI import Luminare -struct IconButton: View { +struct IconUrlButton: View { var buttonText: String var url: String var image: ImageResource diff --git a/Tuneful/Views/Settings/AboutSettingsView.swift b/Tuneful/Views/Settings/AboutSettingsView.swift index 3f4c4fc..28867ee 100644 --- a/Tuneful/Views/Settings/AboutSettingsView.swift +++ b/Tuneful/Views/Settings/AboutSettingsView.swift @@ -31,17 +31,17 @@ struct AboutSettingsView: View { .frame(maxWidth: .infinity, alignment: .center) HStack { - IconButton( + IconUrlButton( buttonText: "Support", url: "https://ko-fi.com/martinfekete", image: .heart ) - IconButton( + IconUrlButton( buttonText: "GitHub", url: "https://github.com/martinfekete10/Tuneful", image: .github ) - IconButton( + IconUrlButton( buttonText: "Website", url: "https://tuneful.dev", image: .globe diff --git a/Tuneful/Views/Settings/GeneralSettingsView.swift b/Tuneful/Views/Settings/GeneralSettingsView.swift index 3256421..4abc4e9 100644 --- a/Tuneful/Views/Settings/GeneralSettingsView.swift +++ b/Tuneful/Views/Settings/GeneralSettingsView.swift @@ -93,6 +93,23 @@ struct GeneralSettingsView: View { } } } + + Button(action: { + NSApplication.shared.sendAction(#selector(AppDelegate.quit), to: nil, from: nil) + }) { + HStack(spacing: 5) { + Image(systemName: "power") + .resizable() + .renderingMode(.template) + .foregroundColor(.secondary) + .frame(width: 15, height: 16) + + Text("Quit") + .font(.subheadline) + .foregroundColor(.secondary) + } + } + .buttonStyle(LuminareCompactButtonStyle()) } } } From a1e52db4674fc8fc3e119ce61e7b67216f88f842 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 29 Dec 2024 11:29:19 +0100 Subject: [PATCH 64/73] Music app not open mini player improvement --- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 81044e8..d7dc61c 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -28,8 +28,10 @@ struct MiniPlayerView: View { .font(.system(size: 14, weight: .regular)) .frame(maxWidth: .infinity, maxHeight: .infinity) .multilineTextAlignment(.center) - .padding(15) - .padding(.bottom, 20) + .frame( + width: miniPlayerType == .horizontal ? 260 : 130, + height: miniPlayerType == .vertical ? 260 : 130 + ) } else { switch miniPlayerType { case .horizontal: From 85ed4ba148e85939b3d93a2ec331db657887739a Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 29 Dec 2024 11:33:43 +0100 Subject: [PATCH 65/73] Changelog update --- CHANGELOG.md | 1 + Tuneful/Tuneful.swift | 4 ---- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f59a64..58186e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ - Fixed the bug when mini player floating preference was ignored on app restart - Fixed the bug when Tuneful wasn't fetching Apple Music song favorite info correctly when changing songs - Fixed the bug when previous song button didn't rewind the song to the beginning if some part already played for Apple Music +- Fixed bug when Cmd + comma shortcut opened blank window; now it opens settings window ### Performance Improvements diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 90bd780..8f00ff8 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -131,10 +131,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } } - func windowShouldClose(_ sender: NSWindow) -> Bool { - return true - } - private func mainSetup() { self.playerManager = PlayerManager() self.statusBarItemManager = StatusBarItemManager(playerManager: playerManager) From fa8ba6d7aecf983717ff9e6d9a3c8d3062b4a251 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 29 Dec 2024 12:39:04 +0100 Subject: [PATCH 66/73] Cleaned up warnings --- Tuneful.xcodeproj/project.pbxproj | 2 -- .../LuminareTrafficLightedWindowView.swift | 2 +- Tuneful/Luminare/Utilities/ScreenView.swift | 2 +- Tuneful/Models/SupportedApps.swift | 1 - Tuneful/Tuneful.swift | 1 - Tuneful/Views/IconUrlButton.swift | 1 - Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 9 +++++++++ Tuneful/Views/OnboardingView.swift | 1 - Tuneful/Views/Settings/AboutSettingsView.swift | 1 - Tuneful/Views/Settings/GeneralSettingsView.swift | 1 - .../Views/Settings/KeyboardShortcutSettingsView.swift | 1 - Tuneful/Views/Settings/MenuBarSettingsView.swift | 1 - Tuneful/Views/Settings/MiniPlayerSettingsView.swift | 1 - Tuneful/Views/Settings/NotchSettingsView.swift | 1 - Tuneful/Views/Settings/PopoverSettingsView.swift | 1 - Tuneful/Views/SettingsView.swift | 1 - 16 files changed, 11 insertions(+), 16 deletions(-) diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 1b21f12..3eb4302 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -930,7 +930,6 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Tuneful/Tuneful.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; @@ -968,7 +967,6 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Tuneful/Tuneful.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; diff --git a/Tuneful/Luminare/Modal Window - Traffic Lights/LuminareTrafficLightedWindowView.swift b/Tuneful/Luminare/Modal Window - Traffic Lights/LuminareTrafficLightedWindowView.swift index 5013b5f..fd45405 100644 --- a/Tuneful/Luminare/Modal Window - Traffic Lights/LuminareTrafficLightedWindowView.swift +++ b/Tuneful/Luminare/Modal Window - Traffic Lights/LuminareTrafficLightedWindowView.swift @@ -51,7 +51,7 @@ struct LuminareTrafficLightedWindowView: View where Content: View { GeometryReader { proxy in Color.clear .onChange(of: proxy.size) { _ in - guard let modalWindow = floatingPanel as? LuminareTrafficLightedWindow else { return } + let modalWindow = floatingPanel as LuminareTrafficLightedWindow modalWindow.updateShadow(for: 0.5) } } diff --git a/Tuneful/Luminare/Utilities/ScreenView.swift b/Tuneful/Luminare/Utilities/ScreenView.swift index 443e0b5..f7f0833 100644 --- a/Tuneful/Luminare/Utilities/ScreenView.swift +++ b/Tuneful/Luminare/Utilities/ScreenView.swift @@ -77,7 +77,7 @@ public struct ScreenView: View where Content: View { } if let newImage = NSImage.resize(url, width: 300) { - await withAnimation(LuminareConstants.fastAnimation) { + withAnimation(LuminareConstants.fastAnimation) { image = newImage } } diff --git a/Tuneful/Models/SupportedApps.swift b/Tuneful/Models/SupportedApps.swift index 6ebb2a3..cccc033 100644 --- a/Tuneful/Models/SupportedApps.swift +++ b/Tuneful/Models/SupportedApps.swift @@ -7,7 +7,6 @@ import Foundation import SwiftUI -import Luminare import Defaults enum ConnectedApps: String, Equatable, CaseIterable, LuminarePickerData, Defaults.Serializable { diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 8f00ff8..2129333 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -9,7 +9,6 @@ import os import SwiftUI import KeyboardShortcuts import Settings -import Luminare import Combine import Defaults diff --git a/Tuneful/Views/IconUrlButton.swift b/Tuneful/Views/IconUrlButton.swift index c80830a..c73e60b 100644 --- a/Tuneful/Views/IconUrlButton.swift +++ b/Tuneful/Views/IconUrlButton.swift @@ -6,7 +6,6 @@ // import SwiftUI -import Luminare struct IconUrlButton: View { var buttonText: String diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index d7dc61c..42e8b73 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -73,6 +73,15 @@ struct MiniPlayerView: View { .onAppear { playerManager.startTimer() } + .toolbar { + ToolbarItem(placement: .primaryAction) { + Button { + print("press") + } label: { + Image(systemName: "bookmark.fill") + } + } + } } } } diff --git a/Tuneful/Views/OnboardingView.swift b/Tuneful/Views/OnboardingView.swift index c8b1690..5d2ddba 100644 --- a/Tuneful/Views/OnboardingView.swift +++ b/Tuneful/Views/OnboardingView.swift @@ -8,7 +8,6 @@ import SwiftUI import ScriptingBridge import KeyboardShortcuts -import Luminare import Defaults struct OnboardingView: View { diff --git a/Tuneful/Views/Settings/AboutSettingsView.swift b/Tuneful/Views/Settings/AboutSettingsView.swift index 28867ee..6745f00 100644 --- a/Tuneful/Views/Settings/AboutSettingsView.swift +++ b/Tuneful/Views/Settings/AboutSettingsView.swift @@ -7,7 +7,6 @@ import SwiftUI import Settings -import Luminare struct AboutSettingsView: View { var body: some View { diff --git a/Tuneful/Views/Settings/GeneralSettingsView.swift b/Tuneful/Views/Settings/GeneralSettingsView.swift index 4abc4e9..4338052 100644 --- a/Tuneful/Views/Settings/GeneralSettingsView.swift +++ b/Tuneful/Views/Settings/GeneralSettingsView.swift @@ -8,7 +8,6 @@ import SwiftUI import Settings import LaunchAtLogin -import Luminare import Defaults struct GeneralSettingsView: View { diff --git a/Tuneful/Views/Settings/KeyboardShortcutSettingsView.swift b/Tuneful/Views/Settings/KeyboardShortcutSettingsView.swift index 1586a4f..162af0b 100644 --- a/Tuneful/Views/Settings/KeyboardShortcutSettingsView.swift +++ b/Tuneful/Views/Settings/KeyboardShortcutSettingsView.swift @@ -8,7 +8,6 @@ import SwiftUI import Settings import KeyboardShortcuts -import Luminare struct KeyboardShortcutsSettingsView: View { var body: some View { diff --git a/Tuneful/Views/Settings/MenuBarSettingsView.swift b/Tuneful/Views/Settings/MenuBarSettingsView.swift index 6961dbf..02751b5 100644 --- a/Tuneful/Views/Settings/MenuBarSettingsView.swift +++ b/Tuneful/Views/Settings/MenuBarSettingsView.swift @@ -6,7 +6,6 @@ // import SwiftUI import Settings -import Luminare import Defaults struct MenuBarSettingsView: View { diff --git a/Tuneful/Views/Settings/MiniPlayerSettingsView.swift b/Tuneful/Views/Settings/MiniPlayerSettingsView.swift index b54842b..d9bd641 100644 --- a/Tuneful/Views/Settings/MiniPlayerSettingsView.swift +++ b/Tuneful/Views/Settings/MiniPlayerSettingsView.swift @@ -7,7 +7,6 @@ import SwiftUI import Settings -import Luminare import Defaults struct MiniPlayerSettingsView: View { diff --git a/Tuneful/Views/Settings/NotchSettingsView.swift b/Tuneful/Views/Settings/NotchSettingsView.swift index aa97b34..f6d96dd 100644 --- a/Tuneful/Views/Settings/NotchSettingsView.swift +++ b/Tuneful/Views/Settings/NotchSettingsView.swift @@ -7,7 +7,6 @@ import SwiftUI import Settings -import Luminare import Defaults struct NotchSettingsView: View { diff --git a/Tuneful/Views/Settings/PopoverSettingsView.swift b/Tuneful/Views/Settings/PopoverSettingsView.swift index 5a31afc..773220d 100644 --- a/Tuneful/Views/Settings/PopoverSettingsView.swift +++ b/Tuneful/Views/Settings/PopoverSettingsView.swift @@ -7,7 +7,6 @@ import SwiftUI import Settings -import Luminare import Defaults struct PopoverSettingsView: View { diff --git a/Tuneful/Views/SettingsView.swift b/Tuneful/Views/SettingsView.swift index ae71314..48c2d9c 100644 --- a/Tuneful/Views/SettingsView.swift +++ b/Tuneful/Views/SettingsView.swift @@ -1,5 +1,4 @@ import SwiftUI -import Luminare struct SettingsView: View { @State private var selectedCategory: SettingsCategory = .general From dcb69f021b9c57a8fae09a72b82b7a1f9ceb4e26 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 29 Dec 2024 18:26:30 +0100 Subject: [PATCH 67/73] Added quit options to notch and mini player --- Tuneful/DynamicNotchKit/NotchView.swift | 7 ++++++ Tuneful/DynamicNotchKit/NotchlessView.swift | 7 ++++++ Tuneful/Tuneful.swift | 22 +++++++++---------- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 11 +--------- Tuneful/Windows/MiniPlayerWindow.swift | 10 +++++++++ 5 files changed, 36 insertions(+), 21 deletions(-) diff --git a/Tuneful/DynamicNotchKit/NotchView.swift b/Tuneful/DynamicNotchKit/NotchView.swift index 394e21b..174c153 100644 --- a/Tuneful/DynamicNotchKit/NotchView.swift +++ b/Tuneful/DynamicNotchKit/NotchView.swift @@ -70,6 +70,13 @@ struct NotchView: View where Content: View { action: { NSApplication.shared.sendAction(#selector(AppDelegate.openSettings), to: nil, from: nil) }, label: { Text("Settings...") } ) + + Divider() + + Button( + action: { NSApplication.shared.sendAction(#selector(AppDelegate.quit), to: nil, from: nil) }, + label: { Text("Quit") } + ) } .mask { GeometryReader { _ in // This helps with positioning everything diff --git a/Tuneful/DynamicNotchKit/NotchlessView.swift b/Tuneful/DynamicNotchKit/NotchlessView.swift index 64b2e6d..c1afc53 100644 --- a/Tuneful/DynamicNotchKit/NotchlessView.swift +++ b/Tuneful/DynamicNotchKit/NotchlessView.swift @@ -61,6 +61,13 @@ struct NotchlessView: View where Content: View { action: { NSApplication.shared.sendAction(#selector(AppDelegate.openSettings), to: nil, from: nil) }, label: { Text("Settings...") } ) + + Divider() + + Button( + action: { NSApplication.shared.sendAction(#selector(AppDelegate.quit), to: nil, from: nil) }, + label: { Text("Quit") } + ) } .clipShape(.rect(cornerRadius: 20)) .shadow(color: .black.opacity(0.5), radius: dynamicNotch.isVisible ? 10 : 0) diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 2129333..732aa30 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -12,6 +12,16 @@ import Settings import Combine import Defaults +@main +struct Tuneful: App { + @NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate + + var body: some Scene { + Settings { + } + } +} + class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // Windows private var onboardingWindow: OnboardingWindow! @@ -22,7 +32,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // Status bar private var statusBarItem: NSStatusItem! - public var statusBarMenu: NSMenu! + private var statusBarMenu: NSMenu! // Managers private var playerManager: PlayerManager! @@ -478,13 +488,3 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { NSApplication.shared.terminate(self) } } - -@main -struct Tuneful: App { - @NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate - - var body: some Scene { - Settings { - } - } -} diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 42e8b73..7ba2c9a 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -48,7 +48,7 @@ struct MiniPlayerView: View { } .fixedSize() .clipShape(.rect(cornerRadius: 12.5)) - .padding(10 * miniPlayerScaleFactor.rawValue) + .padding(7.5 * miniPlayerScaleFactor.rawValue) .overlay( NotificationView() ) @@ -73,15 +73,6 @@ struct MiniPlayerView: View { .onAppear { playerManager.startTimer() } - .toolbar { - ToolbarItem(placement: .primaryAction) { - Button { - print("press") - } label: { - Image(systemName: "bookmark.fill") - } - } - } } } } diff --git a/Tuneful/Windows/MiniPlayerWindow.swift b/Tuneful/Windows/MiniPlayerWindow.swift index 81d5c4a..339d009 100644 --- a/Tuneful/Windows/MiniPlayerWindow.swift +++ b/Tuneful/Windows/MiniPlayerWindow.swift @@ -85,7 +85,13 @@ class MiniPlayerWindow: NSWindow { sizeMenuItem.submenu = sizeMenu menu.addItem(sizeMenuItem) + menu.addItem(.separator()) + menu.addItem(withTitle: "Settings...", action: #selector(settings(_:)), keyEquivalent: "") + + menu.addItem(.separator()) + + menu.addItem(withTitle: "Quit", action: #selector(quit(_:)), keyEquivalent: "") NSMenu.popUpContextMenu(menu, with: event, for: self.contentView!) } @@ -134,6 +140,10 @@ class MiniPlayerWindow: NSWindow { NSApplication.shared.sendAction(#selector(AppDelegate.openSettings), to: nil, from: nil) } + @objc func quit(_ sender: Any?) { + NSApplication.shared.sendAction(#selector(AppDelegate.quit), to: nil, from: nil) + } + @objc func windowDidMove(_ notification: Notification) { let position = self.frame.origin Defaults[.windowPosition] = "\(position.x),\(position.y)" From 78acfd1acde485d4c81a99fb7b2dd0d4a3d33669 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sun, 29 Dec 2024 23:18:22 +0100 Subject: [PATCH 68/73] Emojis in changelog --- CHANGELOG.md | 94 +++++++++++++++++++++++++++------------------------- 1 file changed, 48 insertions(+), 46 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 58186e4..7f9cb63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,10 @@ -## 2.0.0 +# CHANGELOG + +## 🎉 2.0.0 > This is a big release that adds a lot of new features, such as notch integration, new mini player, sleeker UI and contains a lot of bug fixes and performance improvements. -### New Features +### ✨ New Features - New notch integration now allows you to control the music from notch. For non-notch Macs, this is available on hovering over new song notification - New ability to resize mini player to 3 sizes - regular, small, and large @@ -12,7 +14,7 @@ - New vertical mini player type - New enhanced onboarding experience -### Bug Fixes +### 🐞 Bug Fixes - Fixed the bug when Spotify was opened in the background even if killed by the user - Fixed the bug when mini player floating preference was ignored on app restart @@ -20,58 +22,58 @@ - Fixed the bug when previous song button didn't rewind the song to the beginning if some part already played for Apple Music - Fixed bug when Cmd + comma shortcut opened blank window; now it opens settings window -### Performance Improvements +### 🏎️ Performance Improvements - Refactored the logic that fetches song information which makes the app feel snappier - Tuneful uses fewer calls when customising UI in the Tuneful settings and relies more on native SwiftUI -## 1.7.1 +## 🎉 1.7.1 > Mini player improvement and various bug fixes -### Bug Fixes +### 🐞 Bug Fixes - Fixed issue when Tuneful was crashing on launch if Spotify is not installed - Fixed notch notification appearance for Light Mode - Fixed accent color in settings window - Mini player now remembers its position after relaunching Tuneful, huge thanks to @itssali -### Performance Improvements +### 🏎️ Performance Improvements - Minor player manager optimisation -## 1.7.0 +## 🎉 1.7.0 > Song change notifications, UI improvements and others -### New Features +### ✨ New Features - New feature to display notification when song changes. For Macbooks with notch, this is displayed as beautiful notch animation; for non-notch Macs, its shown as a small floating window - Redesigned settings with sleaker UI -### Bug Fixes +### 🐞 Bug Fixes - Fixed coloring of playback buttons in light mode - Fixed menu bar playback buttons -### Other Improvements +### 👀 Other Improvements - Updated icon with better resolution on retina and non-retina displays -## 1.6.7 +## 🎉 1.6.7 > Small fixes -### Bug Fixes +### 🐞 Bug Fixes - Fixed issue when opening Apple Music via menu bar click - Fixed menu bar icon behvaiour when set to Hidden setting -## 1.6.6 +## 🎉 1.6.6 > Better podcast handling, more native UI and more -### New Features +### ✨ New Features - When podcast is playing, 15-sec rewind buttons are displayed instead of forwads/backwards buttons - Updated playback buttons to use more native icons @@ -80,73 +82,73 @@ - New keyboard shortcut to show/hide popover - Lowered minimum menu bar item width from 100px to 75px -### Performance Improvements +### 🏎️ Performance Improvements - Code is a bit more optimised to make less background calls to Spotify/Apple Music - Background code maintenance and cleanup -## 1.6.5 +## 🎉 1.6.5 > Bug fixes and minor improvements -### Bug Fixes +### 🐞 Bug Fixes - Fixed a bug where menu bar info wasn't currently updated when music player was killed - Fixed a bug where equaliser animation preference wasn't correctly udpated on the settings window -### Other Improvements +### 👀 Other Improvements - Made a small improvement to equaliser animation - Settings window spacing is a bit improved -## 1.6.4 +## 🎉 1.6.4 > Colored menu bar equaliser -### New Features +### ✨ New Features - Menu bar equaliser animation is now colored based on album art -## 1.6.3 +## 🎉 1.6.3 > Various smaller features and bug fixes -### New Features +### ✨ New Features - New option to show animated equaliser in menubar (instead of albumart/app icon) when music is playing - New ability to add keyboard shortcut to show/hide menu bar item - New option to disable popover window altogether - when enabled, music player will be opened insted of the popover window -### Other Improvements +### 👀 Other Improvements - Fixed bug with scrolling Open Apple Music text when Apple Music is quit - Smaller under the hood improvements -## 1.6.2 +## 🎉 1.6.2 > Fixed blank window on launch -### Bug Fixes +### 🐞 Bug Fixes - Fixed opening a blank window when starting Tuneful -## 1.6.1 +## 🎉 1.6.1 > Option to disable scrolling menu bar text -### New Features +### ✨ New Features - Added new option to disable scrolling menu bar text as it may be distracting -### Bug Fixes +### 🐞 Bug Fixes - Fixed bug when the text was scrolling even if the width of menu bar item was large enough -## 1.6.0 +## 🎉 1.6.0 > New popover style option, menu bar customization and more -### New Features +### ✨ New Features - New minimalist popover option - you can now customize the look of the popover by selecting from 2 styles - New option to hide menu bar item when the music is not playing @@ -154,25 +156,25 @@ - Slight improvement to the look of a full-sized mini player, making the controls a bit wider - Slight improvement to the look of menu bar items -### Bug Fixes +### 🐞 Bug Fixes - Fixed behaviour when closing the popover by clicking on the menu bar item, which would close and re-open the popover before - thanks to @robbiewxyz for fixing this! -## 1.5.0 +## 🎉 1.5.0 > Playback controls in menu bar -### New Features +### ✨ New Features - New feature to control playback by new menu bar control buttons - Ability to set behaviour of mini player window to act as a normal window - Menu bar item width now resizes when the song information is smaller than max width set in settings to avoid empty bezels on the sides -## 1.4.0 +## 🎉 1.4.0 > Scrolling menu bar text -### New Features +### ✨ New Features - Menu bar text is now scrolling if it does not fit the max width - New option to hide menu bar text when nothing is currently playing @@ -181,51 +183,51 @@ - Minor settings improvements - Minor mini player improvements -### Bug Fixes +### 🐞 Bug Fixes - Fixed an issue when incremental volume increase would break the UI on max volume - Fixed an issue when progress bar would not update until the mini player window is displayed for the first time -## 1.3.0 +## 🎉 1.3.0 > New mini player options and volume adjustments -### New Features +### ✨ New Features - New feature to customize the look of mini player - you can now choose from 2 styles - You can now hide mini player window by right-clicking and choosing Hide window option - Mini player is now easier to move around - Volume slider now adjusts Apple Music/Spotify instead of a system volume -## 1.2.0 +## 🎉 1.2.0 > More customization and Apple Music favorites fix -### New Features +### ✨ New Features - You can now choose if you want to have a transparent background or blurred artwork of current song as a background, both in menu bar popover and mini player window - Fixed a bug where songs were not being added to Apple Music favorites after clicking heart button - Changed Add to Favorites icon from heart to star to make it consistent with Apple Music -## 1.1.0 +## 🎉 1.1.0 > Keyboard shortcuts -### New Features +### ✨ New Features - New feature to setup global keyboard shortcuts to control music and toggle mini player window -### Bug Fixes +### 🐞 Bug Fixes - Fixed a bug where opening settings would crash the app for some users - Fixed a bug where the app did not open for some users - Other minor bug fixes and improvements -## 1.0.0 +## 🎉 1.0.0 > Song information in menu bar -### New Features +### ✨ New Features - New feature to display song information directly in menu bar - New settings window with ability to customize information displayed in menu bar From eaa15ea97be4c374ec3845f0ace8b7997bd1d037 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Thu, 2 Jan 2025 23:24:22 +0100 Subject: [PATCH 69/73] Compact popover minor UI fixes --- Tuneful/Helpers/Constants.swift | 2 +- Tuneful/Views/Popover/CompactPopoverView.swift | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Tuneful/Helpers/Constants.swift b/Tuneful/Helpers/Constants.swift index 8fb30eb..9566f7f 100644 --- a/Tuneful/Helpers/Constants.swift +++ b/Tuneful/Helpers/Constants.swift @@ -14,7 +14,7 @@ enum Constants { static let playerAppChangedMessage = "Player app changed" static let popoverWidth = 210.0 static let fullPopoverHeight = 345.0 - static let compactPopoverHeight = 250.0 + static let compactPopoverHeight = 265.0 enum Opacity { static let primaryOpacity = 0.8 diff --git a/Tuneful/Views/Popover/CompactPopoverView.swift b/Tuneful/Views/Popover/CompactPopoverView.swift index 6889ac4..b1a3423 100644 --- a/Tuneful/Views/Popover/CompactPopoverView.swift +++ b/Tuneful/Views/Popover/CompactPopoverView.swift @@ -33,7 +33,7 @@ struct CompactPopoverView: View { VStack { Spacer() - .frame(height: playerManager.musicApp.playbackSeekerEnabled ? 90 : 125) + .frame(height: playerManager.musicApp.playbackSeekerEnabled ? 95 : 130) VStack(alignment: .center) { PlaybackButtonsView(playButtonSize: 20, spacing: 15) @@ -59,7 +59,7 @@ struct CompactPopoverView: View { } TrackDetailsView() - .padding(.horizontal, 5) + .padding(5) } } } From 3e9653870b6813282809d3b3c63ba12905b2643c Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sat, 4 Jan 2025 16:37:26 +0100 Subject: [PATCH 70/73] Deleted system player manager, updated timers to be more efficient --- Tuneful.xcodeproj/project.pbxproj | 4 - Tuneful/Managers/PlayerManager.swift | 102 ++++++------- .../Managers/Players/AppleMusicManager.swift | 6 - .../Managers/Players/PlayerAppProvider.swift | 3 - Tuneful/Managers/Players/PlayerProtocol.swift | 2 - Tuneful/Managers/Players/SpotifyManager.swift | 6 - .../Players/SystemPlayerManager.swift | 135 ------------------ Tuneful/Tuneful.swift | 4 +- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 2 +- 9 files changed, 48 insertions(+), 216 deletions(-) delete mode 100644 Tuneful/Managers/Players/SystemPlayerManager.swift diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 3eb4302..082650b 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -39,7 +39,6 @@ FE3F67FE2AAD02D100CCE841 /* LaunchAtLogin in Frameworks */ = {isa = PBXBuildFile; productRef = FE3F67FD2AAD02D100CCE841 /* LaunchAtLogin */; }; FE4414B82AB4999600A73246 /* Notification.Name.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4414B72AB4999600A73246 /* Notification.Name.swift */; }; FE445FE42A977D0E001CA55A /* Double+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE445FE32A977D0E001CA55A /* Double+Extension.swift */; }; - FE478BFD2CB288430033D272 /* SystemPlayerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE478BFC2CB288350033D272 /* SystemPlayerManager.swift */; }; FE4808F12B51BA400077BDAA /* AboutSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4808F02B51BA400077BDAA /* AboutSettingsView.swift */; }; FE4808F42B51C3870077BDAA /* GeneralSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4808F32B51C3870077BDAA /* GeneralSettingsView.swift */; }; FE4AA05D2D214FFD00A1A480 /* LuminareModalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4AA04F2D214FFD00A1A480 /* LuminareModalView.swift */; }; @@ -168,7 +167,6 @@ FE4414B72AB4999600A73246 /* Notification.Name.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Notification.Name.swift; sourceTree = ""; }; FE445FE02A969E8D001CA55A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; FE445FE32A977D0E001CA55A /* Double+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Double+Extension.swift"; sourceTree = ""; }; - FE478BFC2CB288350033D272 /* SystemPlayerManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemPlayerManager.swift; sourceTree = ""; }; FE4808F02B51BA400077BDAA /* AboutSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsView.swift; sourceTree = ""; }; FE4808F32B51C3870077BDAA /* GeneralSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsView.swift; sourceTree = ""; }; FE4AA0372D214FFD00A1A480 /* PopoverHolder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverHolder.swift; sourceTree = ""; }; @@ -272,7 +270,6 @@ children = ( FEDD31192CBE4DA500653956 /* PlayerAppProvider.swift */, FE9FCF202CAEC0260015DF4D /* PlayerProtocol.swift */, - FE478BFC2CB288350033D272 /* SystemPlayerManager.swift */, FE9FCF242CAEC2740015DF4D /* AppleMusicManager.swift */, FE9FCF222CAEC0C50015DF4D /* SpotifyManager.swift */, ); @@ -764,7 +761,6 @@ FEDD311A2CBE4DAD00653956 /* PlayerAppProvider.swift in Sources */, FEFFE5592B4FE00D000887B5 /* NSError+Extension.swift in Sources */, FE4414B82AB4999600A73246 /* Notification.Name.swift in Sources */, - FE478BFD2CB288430033D272 /* SystemPlayerManager.swift in Sources */, FE8CE1582C1E0B140053FDEA /* PopoverType.swift in Sources */, FEFFE55D2B4FE051000887B5 /* Comparable+Extension.swift in Sources */, FE6BFCFE2A73A89600D3321F /* PlayerManager.swift in Sources */, diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index e5bb85f..999e8fc 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -78,32 +78,11 @@ public class PlayerManager: ObservableObject { private var notchInfo: DynamicNotchInfo! init() { - // Music app and observers self.playerAppProvider = PlayerAppProvider(notificationSubject: self.notificationSubject) + self.notchInfo = DynamicNotchInfo(playerManager: self) self.setupMusicAppsAndObservers() self.playStateOrTrackDidChange(nil) - self.notchInfo = DynamicNotchInfo(playerManager: self) - - // Updating player state every 1 sec - self.timerStartSignal.sink { - self.getCurrentSeekerPosition() - self.getVolume() - self.updatePlayerStateCancellable = Timer.publish( - every: 1, on: .main, in: .common - ) - .autoconnect() - .sink { _ in - self.getVolume() - self.getCurrentSeekerPosition() - } - } - .store(in: &self.cancellables) - - self.timerStopSignal.sink { - self.updatePlayerStateCancellable = nil - } - .store(in: &self.cancellables) } deinit { @@ -165,14 +144,12 @@ public class PlayerManager: ObservableObject { @objc private func popoverIsOpening(_ notification: NSNotification) { self.startTimer() self.audioDevices = AudioDevice.output.filter { $0.transportType != .virtual } - self.getVolume() - self.getPlaybackSettingInfo() popoverIsShown = true } @objc private func popoverIsClosing(_ notification: NSNotification) { - self.stopTimer() popoverIsShown = false + self.stopTimer() } // MARK: Notification Handlers @@ -189,19 +166,17 @@ public class PlayerManager: ObservableObject { return } - self.musicApp.refreshInfo { // Needs to be refreshed for system player to load song info asynchronously - self.getPlayState() - self.updateFormattedDuration() - self.updateMenuBarText(playerAppIsRunning: isRunningFromNotification) - - // Get track info before it's loaded in getNewSongInfo() and compare - // If previous song == current song => play state not changed - let notificationTrack = self.musicApp.getTrackInfo() - if self.track == notificationTrack { return } - - self.getPlaybackSettingInfo() - self.getNewSongInfo() - } + self.getPlayState() + self.updateFormattedDuration() + self.updateMenuBarText(playerAppIsRunning: isRunningFromNotification) + + // Get track info before it's loaded in getNewSongInfo() and compare + // If previous song == current song => play state not changed + let notificationTrack = self.musicApp.getTrackInfo() + if self.track == notificationTrack { return } + + self.getPlaybackSettingInfo() + self.getNewSongInfo() } private func updateMenuBarText(playerAppIsRunning: Bool) { @@ -239,16 +214,14 @@ public class PlayerManager: ObservableObject { } func getPlaybackSettingInfo() { - Logger.main.log("Getting playback setting info") - - shuffleIsOn = musicApp.shuffleIsOn // TODO: Doesn't seem to be working correctly for Spotify - shuffleContextEnabled = musicApp.shuffleContextEnabled - repeatContextEnabled = musicApp.repeatContextEnabled + if popoverIsShown || (Defaults[.showPlayerWindow] && Defaults[.miniPlayerType] != .minimal) { + shuffleIsOn = musicApp.shuffleIsOn // TODO: Doesn't seem to be working correctly for Spotify + shuffleContextEnabled = musicApp.shuffleContextEnabled + repeatContextEnabled = musicApp.repeatContextEnabled + } } func getNewSongInfo() { - Logger.main.log("Getting track info") - withAnimation(Constants.mainAnimation) { getCurrentSeekerPosition() track = musicApp.getTrackInfo() @@ -283,7 +256,7 @@ public class PlayerManager: ObservableObject { } func showNotchNotification() { - if !Defaults[.notchEnabled] || !Defaults[.showSongNotification] || popoverIsShown { + if !Defaults[.notchEnabled] || !Defaults[.showSongNotification] || !Defaults[.viewedOnboarding] || popoverIsShown { return } @@ -332,12 +305,8 @@ public class PlayerManager: ObservableObject { func getCurrentSeekerPosition() { if !musicApp.isRunning() { return } if isDraggingPlaybackPositionView { return } - - musicApp.refreshInfo { - withAnimation { - self.seekerPosition = self.musicApp.getCurrentSeekerPosition() - } - } + + self.seekerPosition = self.musicApp.getCurrentSeekerPosition() } func seekTrack() { @@ -369,21 +338,38 @@ public class PlayerManager: ObservableObject { func startTimer() { if !musicApp.isRunning() { return } - timerStopSignal.send() // So we don't invoke the timer more frequently - timerStartSignal.send() + + // So we don't invoke the timer more frequently + self.updatePlayerStateCancellable?.cancel() + self.updatePlayerStateCancellable = nil + + self.updatePlayerStateCancellable = Timer.publish( + every: 1, on: .main, in: .common + ) + .autoconnect() + .sink { _ in + print("Timer running") + self.getVolume() + self.getCurrentSeekerPosition() + self.getPlaybackSettingInfo() + } + } func stopTimer() { - if !musicApp.isRunning() { return } if popoverIsShown || notchInfo.isVisible || Defaults[.showPlayerWindow] { return } - timerStopSignal.send() + + self.updatePlayerStateCancellable?.cancel() + self.updatePlayerStateCancellable = nil } // MARK: Volume func getVolume() { - if !musicApp.isRunning() { return } - volume = musicApp.volume + // Only get volume if the full popover is shown + if popoverIsShown && Defaults[.popoverType] == .full { + volume = musicApp.volume + } } func setVolume(newVolume: Int) { diff --git a/Tuneful/Managers/Players/AppleMusicManager.swift b/Tuneful/Managers/Players/AppleMusicManager.swift index 103bfd1..3652dd6 100644 --- a/Tuneful/Managers/Players/AppleMusicManager.swift +++ b/Tuneful/Managers/Players/AppleMusicManager.swift @@ -35,12 +35,6 @@ class AppleMusicManager: PlayerProtocol { self.notificationSubject = notificationSubject } - func refreshInfo(completion: @escaping () -> Void) { - DispatchQueue.main.async() { - completion() - } - } - func getAlbumArt(completion: @escaping (FetchedAlbumArt?) -> Void) { guard let art = app.currentTrack?.artworks?()[0] as? MusicArtwork else { completion(nil) diff --git a/Tuneful/Managers/Players/PlayerAppProvider.swift b/Tuneful/Managers/Players/PlayerAppProvider.swift index 1bb5ebc..d31cd9e 100644 --- a/Tuneful/Managers/Players/PlayerAppProvider.swift +++ b/Tuneful/Managers/Players/PlayerAppProvider.swift @@ -17,14 +17,11 @@ class PlayerAppProvider { } func getPlayerApp() -> PlayerProtocol { - // TODO: System player switch Defaults[.connectedApp] { case .spotify: return SpotifyManager(notificationSubject: notificationSubject) case .appleMusic: return AppleMusicManager(notificationSubject: notificationSubject) -// case.system: -// return systemPlayer } } } diff --git a/Tuneful/Managers/Players/PlayerProtocol.swift b/Tuneful/Managers/Players/PlayerProtocol.swift index f6ee382..48062d6 100644 --- a/Tuneful/Managers/Players/PlayerProtocol.swift +++ b/Tuneful/Managers/Players/PlayerProtocol.swift @@ -28,8 +28,6 @@ protocol PlayerProtocol { var repeatContextEnabled: Bool { get } var playbackSeekerEnabled: Bool { get } - func refreshInfo(completion: @escaping () -> Void) - func getTrackInfo() -> Track func getAlbumArt(completion: @escaping (FetchedAlbumArt?) -> Void) diff --git a/Tuneful/Managers/Players/SpotifyManager.swift b/Tuneful/Managers/Players/SpotifyManager.swift index 0413345..f542203 100644 --- a/Tuneful/Managers/Players/SpotifyManager.swift +++ b/Tuneful/Managers/Players/SpotifyManager.swift @@ -35,12 +35,6 @@ class SpotifyManager: PlayerProtocol { self.notificationSubject = notificationSubject } - func refreshInfo(completion: @escaping () -> Void) { - DispatchQueue.main.async() { - completion() - } - } - func getTrackInfo() -> Track { var track = Track() track.title = app.currentTrack?.name ?? "Unknown Title" diff --git a/Tuneful/Managers/Players/SystemPlayerManager.swift b/Tuneful/Managers/Players/SystemPlayerManager.swift deleted file mode 100644 index 80ff478..0000000 --- a/Tuneful/Managers/Players/SystemPlayerManager.swift +++ /dev/null @@ -1,135 +0,0 @@ -// -// SystemPlayerManager.swift -// Tuneful -// -// Created by Martin Fekete on 06/10/2024. -// - -import os -import Combine -import Foundation -import AppKit -import SwiftUICore - -class SystemPlayerManager: PlayerProtocol { - let MRMediaRemoteGetNowPlayingInfo: @convention(c) (DispatchQueue, @escaping ([String: Any]) -> Void) -> Void - let MrMediaRemoteSendCommandFunction:@convention(c) (Int, AnyObject?) -> Void - - var notificationSubject: PassthroughSubject - - public var bundleId: String { "" } - public var appName: String { "System player" } - public var appPath: URL = URL(fileURLWithPath: "") - public var appNotification: String { "" } - public var defaultAlbumArt: NSImage - - public var playerPosition: Double? { 50 } - public var isPlaying: Bool { getIsPlaying() } - public var volume: CGFloat { 50 } - public var isLikeAuthorized: Bool { false } - public var shuffleIsOn: Bool { false } - public var shuffleContextEnabled: Bool { false } - public var repeatContextEnabled: Bool { false } - public var playbackSeekerEnabled: Bool { false } - - private var info: [String: Any]? - - init(notificationSubject: PassthroughSubject) { - let bundle = CFBundleCreate(kCFAllocatorDefault, NSURL(fileURLWithPath: "/System/Library/PrivateFrameworks/MediaRemote.framework")) - - let MRMediaRemoteGetNowPlayingInfoPointer = CFBundleGetFunctionPointerForName(bundle, "MRMediaRemoteGetNowPlayingInfo" as CFString) - self.MRMediaRemoteGetNowPlayingInfo = unsafeBitCast(MRMediaRemoteGetNowPlayingInfoPointer, to: (@convention(c) (DispatchQueue, @escaping ([String: Any]) -> Void) -> Void).self) - - let MRMediaRemoteSendCommandPointer = CFBundleGetFunctionPointerForName(bundle, "MRMediaRemoteSendCommand" as CFString) - typealias MRMediaRemoteSendCommandFunction = @convention(c) (Int, AnyObject?) -> Void - self.MrMediaRemoteSendCommandFunction = unsafeBitCast(MRMediaRemoteSendCommandPointer, to: MRMediaRemoteSendCommandFunction.self) - - self.notificationSubject = notificationSubject - self.defaultAlbumArt = NSImage() - } - - func refreshInfo(completion: @escaping () -> Void) { - MRMediaRemoteGetNowPlayingInfo(DispatchQueue.main) { info in - Logger.main.log("Refreshing system player info") - self.info = info - completion() - } - } - - func getTrackInfo() -> Track { - let title = info?["kMRMediaRemoteNowPlayingInfoTitle"] as? String ?? "" - let artist = info?["kMRMediaRemoteNowPlayingInfoArtist"] as? String ?? "" - let album = info?["kMRMediaRemoteNowPlayingInfoAlbum"] as? String ?? "" - let duration = info?["kMRMediaRemoteNowPlayingInfoDuration"] as? Double ?? 0.0 - - return Track(title: title, artist: artist, album: album, duration: duration) - } - - - func getAlbumArt(completion: @escaping (FetchedAlbumArt?) -> Void) { - MRMediaRemoteGetNowPlayingInfo(DispatchQueue.main) { information in - guard let artworkData = information["kMRMediaRemoteNowPlayingInfoArtworkData"] as? Data else { - completion(nil) - return - } - - if let image = NSImage(data: artworkData) { - completion(FetchedAlbumArt(image: Image(nsImage: image), nsImage: image)) - } else { - completion(nil) - } - } - } - - func playPause() { - if self.isPlaying { - MrMediaRemoteSendCommandFunction(2, nil) - } else { - MrMediaRemoteSendCommandFunction(0, nil) - } - } - - func previousTrack() { - MrMediaRemoteSendCommandFunction(5, nil) - } - - func nextTrack() { - MrMediaRemoteSendCommandFunction(4, nil) - } - - func toggleLoveTrack() -> Bool { - return false // TODO - } - - func setShuffle(shuffleIsOn: Bool) -> Bool { - return false // TODO - } - - func setRepeat(repeatIsOn: Bool) -> Bool { - return false // TODO - } - - func getCurrentSeekerPosition() -> Double { - let playerPosition = info?["kMRMediaRemoteNowPlayingInfoElapsedTime"] as? Double ?? 0.0 - return Double(playerPosition) - } - - func seekTrack(seekerPosition: CGFloat) { - return // TODO - } - - func setVolume(volume: Int) { - return // TODO - } - - func isRunning() -> Bool { - return true - } - - // MARK: Private methods - - private func getIsPlaying() -> Bool { - let state = info?["kMRMediaRemoteNowPlayingInfoPlaybackRate"] as? Int ?? 0 - return state != 0 - } -} diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index 732aa30..c765482 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -132,6 +132,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // UserDefaults.standard.removePersistentDomain(forName: bundleID) // } //#endif + + self.playerManager = PlayerManager() if !Defaults[.viewedOnboarding] { self.showOnboarding() @@ -141,12 +143,12 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } private func mainSetup() { - self.playerManager = PlayerManager() self.statusBarItemManager = StatusBarItemManager(playerManager: playerManager) self.statusBarPlaybackManager = StatusBarPlaybackManager(playerManager: playerManager) self.miniPlayerWindow = MiniPlayerWindow() self.settingsWindow.isReleasedWhenClosed = false + NotificationCenter.default.addObserver( self, selector: #selector(self.updateStatusBarItem), diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 7ba2c9a..440ba0d 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -64,7 +64,7 @@ struct MiniPlayerView: View { ) .opacity(showPlayerWindow ? 1 : 0) .onChange(of: showPlayerWindow) { show in - if !show { + if show { playerManager.startTimer() } else { playerManager.stopTimer() From 5e9b8ced5868e75026e706a17911bc249652c803 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sat, 4 Jan 2025 16:53:28 +0100 Subject: [PATCH 71/73] Popover look enhancement if player is not opened --- Tuneful/Managers/PlayerManager.swift | 5 +++++ Tuneful/Tuneful.swift | 10 +++++----- Tuneful/Views/MiniPlayer/MiniPlayerView.swift | 2 +- Tuneful/Views/Popover/CompactPopoverView.swift | 10 ++++++---- Tuneful/Views/Popover/FullPopoverView.swift | 10 ++++++---- 5 files changed, 23 insertions(+), 14 deletions(-) diff --git a/Tuneful/Managers/PlayerManager.swift b/Tuneful/Managers/PlayerManager.swift index 999e8fc..b337d65 100644 --- a/Tuneful/Managers/PlayerManager.swift +++ b/Tuneful/Managers/PlayerManager.swift @@ -163,6 +163,11 @@ public class PlayerManager: ObservableObject { if musicAppKilled || !musicApp.isRunning() { self.track = Track() self.updateMenuBarText(playerAppIsRunning: isRunningFromNotification) + + // Stop timer if the player is killed + self.updatePlayerStateCancellable?.cancel() + self.updatePlayerStateCancellable = nil + return } diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index c765482..a8f4ec3 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -127,11 +127,11 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } func applicationDidFinishLaunching(_ notification: Notification) { -//#if DEBUG -// if let bundleID = Bundle.main.bundleIdentifier { -// UserDefaults.standard.removePersistentDomain(forName: bundleID) -// } -//#endif +#if DEBUG + if let bundleID = Bundle.main.bundleIdentifier { + UserDefaults.standard.removePersistentDomain(forName: bundleID) + } +#endif self.playerManager = PlayerManager() diff --git a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift index 440ba0d..9d5263a 100644 --- a/Tuneful/Views/MiniPlayer/MiniPlayerView.swift +++ b/Tuneful/Views/MiniPlayer/MiniPlayerView.swift @@ -23,7 +23,7 @@ struct MiniPlayerView: View { HStack(spacing: 0) { ZStack { if !playerManager.isRunning || playerManager.track.isEmpty() { - Text("Please open \(playerManager.name) to use Tuneful") + Text("Play something in \(playerManager.name) to use Tuneful") .foregroundColor(.primary.opacity(0.4)) .font(.system(size: 14, weight: .regular)) .frame(maxWidth: .infinity, maxHeight: .infinity) diff --git a/Tuneful/Views/Popover/CompactPopoverView.swift b/Tuneful/Views/Popover/CompactPopoverView.swift index b1a3423..c8d743d 100644 --- a/Tuneful/Views/Popover/CompactPopoverView.swift +++ b/Tuneful/Views/Popover/CompactPopoverView.swift @@ -16,7 +16,7 @@ struct CompactPopoverView: View { var body: some View { ZStack { if !playerManager.isRunning || playerManager.track.isEmpty() { - Text("Please open \(playerManager.name) to use Tuneful") + Text("Play something in \(playerManager.name) to use Tuneful") .foregroundColor(.primary.opacity(Constants.Opacity.secondaryOpacity)) .font(.system(size: 14, weight: .regular)) .frame(maxWidth: .infinity, maxHeight: .infinity) @@ -69,9 +69,11 @@ struct CompactPopoverView: View { .padding(.top, 20) ) .background { - BackgroundView(background: popoverBackground, yOffset: -20) - .offset(y: -20) // To color the tip of the popover - .frame(height: 300) + if playerManager.musicApp.isRunning() && !playerManager.track.isEmpty() { + BackgroundView(background: popoverBackground, yOffset: -20) + .offset(y: -20) // To color the tip of the popover + .frame(height: 300) + } } .onHover { _ in withAnimation(Constants.mainAnimation) { diff --git a/Tuneful/Views/Popover/FullPopoverView.swift b/Tuneful/Views/Popover/FullPopoverView.swift index 4e00279..904ce25 100644 --- a/Tuneful/Views/Popover/FullPopoverView.swift +++ b/Tuneful/Views/Popover/FullPopoverView.swift @@ -18,7 +18,7 @@ struct FullPopoverView: View { var body: some View { ZStack { if !playerManager.musicApp.isRunning() || playerManager.track.isEmpty() { - Text("Please open \(playerManager.name) to use Tuneful") + Text("Play something in \(playerManager.name) to use Tuneful") .foregroundColor(.primary.opacity(Constants.Opacity.secondaryOpacity)) .font(.system(size: 14, weight: .regular)) .frame(maxWidth: .infinity, maxHeight: .infinity) @@ -85,9 +85,11 @@ struct FullPopoverView: View { .padding(.top, 20) ) .background { - BackgroundView(background: popoverBackground, yOffset: -60) - .offset(y: -20) // To color the tip of the popover - .frame(height: Constants.fullPopoverHeight + 40) + if playerManager.musicApp.isRunning() && !playerManager.track.isEmpty() { + BackgroundView(background: popoverBackground, yOffset: -60) + .offset(y: -20) // To color the tip of the popover + .frame(height: Constants.fullPopoverHeight + 40) + } } } From 889365d85b8c5746326332e4705771c1a625a211 Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sat, 4 Jan 2025 16:57:36 +0100 Subject: [PATCH 72/73] Commented out defaults removal --- Tuneful/Tuneful.swift | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Tuneful/Tuneful.swift b/Tuneful/Tuneful.swift index a8f4ec3..25e76ff 100644 --- a/Tuneful/Tuneful.swift +++ b/Tuneful/Tuneful.swift @@ -127,14 +127,14 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } func applicationDidFinishLaunching(_ notification: Notification) { -#if DEBUG - if let bundleID = Bundle.main.bundleIdentifier { - UserDefaults.standard.removePersistentDomain(forName: bundleID) - } -#endif +//#if DEBUG +// if let bundleID = Bundle.main.bundleIdentifier { +// UserDefaults.standard.removePersistentDomain(forName: bundleID) +// } +//#endif self.playerManager = PlayerManager() - + if !Defaults[.viewedOnboarding] { self.showOnboarding() } else { From 0a583f478a8fdcc2fcf559a52bc253618bfbf67c Mon Sep 17 00:00:00 2001 From: Martin Fekete Date: Sat, 4 Jan 2025 17:20:39 +0100 Subject: [PATCH 73/73] Version bump --- Tuneful.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tuneful.xcodeproj/project.pbxproj b/Tuneful.xcodeproj/project.pbxproj index 082650b..1f7fe63 100644 --- a/Tuneful.xcodeproj/project.pbxproj +++ b/Tuneful.xcodeproj/project.pbxproj @@ -950,7 +950,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 2.0.0; + MARKETING_VERSION = 2.0.1; PRODUCT_BUNDLE_IDENTIFIER = com.martinfekete.tuneful; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -987,7 +987,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 2.0.0; + MARKETING_VERSION = 2.0.1; PRODUCT_BUNDLE_IDENTIFIER = com.martinfekete.tuneful; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "";

    +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

  • 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%0DptxtRws6 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