Add local Live Activity and Dynamic Island track display
This commit is contained in:
@@ -2,6 +2,7 @@ import SwiftUI
|
||||
|
||||
struct ContentView: View {
|
||||
@ObservedObject var store: PlayerStore
|
||||
@ObservedObject var liveActivity: LiveActivityManager
|
||||
@State private var showForget = false
|
||||
|
||||
var body: some View {
|
||||
@@ -19,6 +20,18 @@ struct ContentView: View {
|
||||
} else {
|
||||
PlayerView(store: store, coverSize: min(280, max(120, min(viewport.size.width - 40, viewport.size.height * 0.30))))
|
||||
|
||||
VStack(alignment: .leading, spacing: 10) {
|
||||
Button {
|
||||
if liveActivity.running { liveActivity.end() }
|
||||
else if let state = store.state { liveActivity.start(state) }
|
||||
} label: {
|
||||
Label(liveActivity.running ? "Убрать с экрана блокировки" : "Показать на экране блокировки", systemImage: "waveform.rectangle")
|
||||
}.disabled(!liveActivity.running && (!store.connected || store.state?.hasSession != true))
|
||||
Text("Live Activity и Dynamic Island показывают последний трек. В фоне данные могут устареть; нажмите карточку, чтобы открыть плеер.")
|
||||
.font(.caption).foregroundStyle(.secondary)
|
||||
if let error = liveActivity.error { Text(error).font(.caption).foregroundStyle(.red) }
|
||||
}.frame(maxWidth: .infinity, alignment: .leading).bridgeCard()
|
||||
|
||||
if !store.connected && !store.needsPairing {
|
||||
Button("Подключиться снова") { store.resume() }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user