Navigation angepasst, Absprung in angetippten song.

This commit is contained in:
2026-04-07 12:57:24 +02:00
parent 040917479e
commit fe3ed1e204
9 changed files with 361 additions and 4 deletions
@@ -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