Navigation angepasst, Absprung in angetippten song.
This commit is contained in:
@@ -18,6 +18,7 @@ struct AlbumDetailView: View {
|
||||
@State private var showPlayerPicker = false
|
||||
@State private var showEnqueuePicker = false
|
||||
@State private var selectedPlayer: MAPlayer?
|
||||
@State private var selectedTrackIndex: Int? = nil
|
||||
@State private var kenBurnsScale: CGFloat = 1.0
|
||||
@State private var completeAlbum: MAAlbum?
|
||||
@State private var albumDescription: String?
|
||||
@@ -125,7 +126,11 @@ struct AlbumDetailView: View {
|
||||
EnhancedPlayerPickerView(
|
||||
players: players,
|
||||
onSelect: { player in
|
||||
Task { await playAlbum(on: player) }
|
||||
if let index = selectedTrackIndex {
|
||||
Task { await playTrack(fromIndex: index, on: player) }
|
||||
} else {
|
||||
Task { await playAlbum(on: player) }
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -251,6 +256,7 @@ struct AlbumDetailView: View {
|
||||
selectedPlayer = players.first
|
||||
Task { await playAlbum(on: players.first!) }
|
||||
} else {
|
||||
selectedTrackIndex = nil
|
||||
showPlayerPicker = true
|
||||
}
|
||||
} label: {
|
||||
@@ -318,9 +324,10 @@ struct AlbumDetailView: View {
|
||||
.onTapGesture {
|
||||
if players.count == 1 {
|
||||
Task {
|
||||
await playTrack(track, on: players.first!)
|
||||
await playTrack(fromIndex: index, on: players.first!)
|
||||
}
|
||||
} else {
|
||||
selectedTrackIndex = index
|
||||
showPlayerPicker = true
|
||||
}
|
||||
}
|
||||
@@ -442,11 +449,12 @@ struct AlbumDetailView: View {
|
||||
}
|
||||
}
|
||||
|
||||
private func playTrack(_ track: MAMediaItem, on player: MAPlayer) async {
|
||||
private func playTrack(fromIndex index: Int, on player: MAPlayer) async {
|
||||
let uris = tracks[index...].map { $0.uri }
|
||||
do {
|
||||
try await service.playerManager.playMedia(
|
||||
playerId: player.playerId,
|
||||
uri: track.uri
|
||||
uris: uris
|
||||
)
|
||||
} catch {
|
||||
errorMessage = error.localizedDescription
|
||||
|
||||
Reference in New Issue
Block a user