Add local Live Activity and Dynamic Island track display
This commit is contained in:
@@ -14,6 +14,7 @@ final class PlayerStore: ObservableObject {
|
||||
@Published var artworkError: String?
|
||||
@Published var incomingInvitation: String?
|
||||
let discovery = DiscoveryStore()
|
||||
var liveActivity: LiveActivityManager?
|
||||
private(set) var receivedAt = Date()
|
||||
private var client: BridgeClient?
|
||||
private var runner: Task<Void, Never>?
|
||||
@@ -143,6 +144,7 @@ final class PlayerStore: ObservableObject {
|
||||
client.close()
|
||||
guard !Task.isCancelled, self.generation == current else { return }
|
||||
self.connected = false
|
||||
self.liveActivity?.unavailable()
|
||||
self.state = nil
|
||||
self.artworkTask?.cancel()
|
||||
self.artwork = nil
|
||||
@@ -167,6 +169,7 @@ final class PlayerStore: ObservableObject {
|
||||
receivedAt = Date()
|
||||
connected = true
|
||||
status = "Подключено"
|
||||
liveActivity?.receive(snapshot)
|
||||
guard artworkID != snapshot.artworkId else { return }
|
||||
artworkID = snapshot.artworkId
|
||||
artworkTask?.cancel()
|
||||
@@ -244,6 +247,7 @@ final class PlayerStore: ObservableObject {
|
||||
func forget() {
|
||||
do { try storage.delete() }
|
||||
catch { self.error = error.localizedDescription; return }
|
||||
liveActivity?.end()
|
||||
stop()
|
||||
cancelPairing()
|
||||
needsPairing = false
|
||||
@@ -253,6 +257,7 @@ final class PlayerStore: ObservableObject {
|
||||
}
|
||||
|
||||
private func stop() {
|
||||
liveActivity?.unavailable()
|
||||
generation = UUID()
|
||||
runner?.cancel()
|
||||
runner = nil
|
||||
@@ -268,6 +273,7 @@ final class PlayerStore: ObservableObject {
|
||||
}
|
||||
|
||||
private func revokeAccess() {
|
||||
liveActivity?.end()
|
||||
stop()
|
||||
needsPairing = true
|
||||
status = "Нужно повторное сопряжение"
|
||||
|
||||
Reference in New Issue
Block a user