|
|
|
|
@ -7,6 +7,7 @@ struct ContentView: View { |
|
|
|
|
var scanner: ScannerService |
|
|
|
|
var audio: AudioService |
|
|
|
|
var playlist: PlaylistViewModel |
|
|
|
|
var shazam: ShazamService |
|
|
|
|
@Binding var showNewPlaylistAlert: Bool |
|
|
|
|
@State private var showRenameAlert = false |
|
|
|
|
@State private var playlistNameInput = "" |
|
|
|
|
@ -21,7 +22,9 @@ struct ContentView: View { |
|
|
|
|
if playlist.selectedPlaylist != nil { |
|
|
|
|
playlist.search(text) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
isShazamListening: shazam.isListening, |
|
|
|
|
onShazam: { shazam.isListening ? shazam.stopListening() : shazam.startListening() } |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
if scanner.isScanning { |
|
|
|
|
@ -155,6 +158,26 @@ struct ContentView: View { |
|
|
|
|
playlistToRename = nil |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.alert("Song Identified", isPresented: Binding( |
|
|
|
|
get: { shazam.matchedTitle != nil }, |
|
|
|
|
set: { if !$0 { shazam.clearResult() } } |
|
|
|
|
)) { |
|
|
|
|
Button("OK") { shazam.clearResult() } |
|
|
|
|
} message: { |
|
|
|
|
if let title = shazam.matchedTitle { |
|
|
|
|
Text("\(title) — \(shazam.matchedArtist ?? "Unknown Artist")") |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.alert("Shazam Error", isPresented: Binding( |
|
|
|
|
get: { shazam.errorMessage != nil }, |
|
|
|
|
set: { if !$0 { shazam.clearResult() } } |
|
|
|
|
)) { |
|
|
|
|
Button("OK") { shazam.clearResult() } |
|
|
|
|
} message: { |
|
|
|
|
if let error = shazam.errorMessage { |
|
|
|
|
Text(error) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private func handleDrop(_ providers: [NSItemProvider]) { |
|
|
|
|
|