Version one on the App Store
This commit is contained in:
@@ -70,6 +70,9 @@ private struct PickerPlayerCard: View {
|
||||
let player: MAPlayer
|
||||
let onSelect: () -> Void
|
||||
|
||||
// Always read live state so the indicator reflects real-time changes
|
||||
private var livePlayer: MAPlayer { service.playerManager.players[player.playerId] ?? player }
|
||||
|
||||
private var currentItem: MAQueueItem? {
|
||||
service.playerManager.playerQueues[player.playerId]?.currentItem
|
||||
}
|
||||
@@ -79,12 +82,12 @@ private struct PickerPlayerCard: View {
|
||||
HStack(spacing: 12) {
|
||||
VStack(alignment: .leading, spacing: 4) {
|
||||
HStack(spacing: 6) {
|
||||
if player.state == .playing {
|
||||
if livePlayer.state == .playing {
|
||||
Image(systemName: "waveform")
|
||||
.font(.caption)
|
||||
.foregroundStyle(.green)
|
||||
}
|
||||
Text(player.name)
|
||||
Text(livePlayer.name)
|
||||
.font(.headline)
|
||||
.foregroundStyle(.primary)
|
||||
.lineLimit(1)
|
||||
@@ -102,7 +105,7 @@ private struct PickerPlayerCard: View {
|
||||
.lineLimit(1)
|
||||
}
|
||||
} else {
|
||||
Text(player.state == .off ? "Powered Off" : "No Track Playing")
|
||||
Text(livePlayer.state == .off ? "Powered Off" : "No Track Playing")
|
||||
.font(.subheadline)
|
||||
.foregroundStyle(.tertiary)
|
||||
.lineLimit(1)
|
||||
@@ -148,13 +151,16 @@ private struct PickerGroupCard: View {
|
||||
let memberNames: [String]
|
||||
let onSelect: () -> Void
|
||||
|
||||
// Always read live state so the indicator reflects real-time changes
|
||||
private var liveLeader: MAPlayer { service.playerManager.players[leader.playerId] ?? leader }
|
||||
|
||||
private var currentItem: MAQueueItem? {
|
||||
service.playerManager.playerQueues[leader.playerId]?.currentItem
|
||||
}
|
||||
private var mediaItem: MAMediaItem? { currentItem?.mediaItem }
|
||||
|
||||
private var groupName: String {
|
||||
([leader.name] + memberNames).joined(separator: " + ")
|
||||
([liveLeader.name] + memberNames).joined(separator: " + ")
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
@@ -164,7 +170,7 @@ private struct PickerGroupCard: View {
|
||||
Image(systemName: "speaker.2.fill")
|
||||
.font(.caption)
|
||||
.foregroundStyle(.blue)
|
||||
if leader.state == .playing {
|
||||
if liveLeader.state == .playing {
|
||||
Image(systemName: "waveform")
|
||||
.font(.caption)
|
||||
.foregroundStyle(.green)
|
||||
@@ -187,7 +193,7 @@ private struct PickerGroupCard: View {
|
||||
.lineLimit(1)
|
||||
}
|
||||
} else {
|
||||
Text(leader.state == .off ? "Powered Off" : "No Track Playing")
|
||||
Text(liveLeader.state == .off ? "Powered Off" : "No Track Playing")
|
||||
.font(.subheadline)
|
||||
.foregroundStyle(.tertiary)
|
||||
.lineLimit(1)
|
||||
|
||||
Reference in New Issue
Block a user