diff --git a/CHANGELOG.md b/CHANGELOG.md index 8002bd7..d2f8583 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -107,6 +107,20 @@ Die Android-App zählt eigenständig weiter (mehrere APKs pro Release). Welche d weil `main.js` die schon offene Seite bereits auf `nsIdx 0` gesetzt hatte — auch das war ein toter Zurück-Druck gleich zu Beginn. Vorwärts funktioniert unverändert (mitgetestet). +### Fixed +- **Große Offline-Playlists ließen sich nicht abspielen (Android)** — bei ~100 Titeln ging alles, bei + 1900 nicht. Ursache war nicht die Größe an sich: die Warteschlange wurde aus **allen** Titeln der + Gruppe gebaut, ohne Rücksicht auf den Download-Zustand. Die Karte, aus der die lokale Datei kommt, + kennt dagegen nur fertige (`WHERE state = 'DONE'`) — für wartende oder fehlgeschlagene Titel + lieferte `streamUrl()` deshalb die **Netz-Adresse**, und die tut offline nichts. Bei 100 Titeln ist + der Download längst durch, bei 1900 praktisch nie; liegt so ein Titel vorn, scheitert die + Wiedergabe sofort und sieht aus, als ginge die ganze Playlist nicht. Play und Shuffle nehmen jetzt + nur fertige Titel, ein Hinweis nennt die Zahl der übersprungenen. Die Liste zeigt weiterhin alle, + damit man sieht, was noch fehlt; ein Tipp auf einen unfertigen Titel sagt das auch. + - Verworfen: die naheliegende Vermutung, Media3 stoße bei 1900 Einträgen an die 1-MB-Grenze einer + Binder-Transaktion. Tut es nicht — `MediaControllerImplBase` reicht die Liste als + `BundleListRetriever` durch, den die Session seitenweise abholt. Die Größe ist unschuldig. + ### Added - **Bei geteilten Playlists steht jetzt dabei, von wem sie sind (Web + Android)** — Navidrome liefert `owner` in `getPlaylists`/`getPlaylist` mit, im Web wurde das Feld nie benutzt. Übersicht @@ -868,6 +882,18 @@ Polish release: Android navigation and offline resilience, download accuracy for - **Web + Android** — yt-dlp backend update / maintenance - **Android** - Andorid Auto Sync last played and queue too with Phone then, rn its not really syncing or safin what last played on Android Auto, also check if selecting a song to play on Android Auto works that song is getting played and in a playlist it will play the queue a this point then like it works already in Android and Web +### Ideen / Backlog +- **Künstler und Alben liken, daraus „folgen" bauen** — anders als Playlists sind Künstler und Alben + in der Subsonic-API wirklich markierbar. Navidrome wirft in `media_annotation.go` sogar alle drei + Parameter in eine Liste (`id`, `albumId`, `artistId`) und behandelt sie gleich, unser bestehender + Aufruf `api('star', '&id=' + id)` würde für Künstler also **ohne Änderung** funktionieren; den + Zustand liefert `getStarred2` mit Künstlern und Alben zurück. Es fehlt nur die Oberfläche: ein Herz + auf der Künstler- und Albumseite. Darauf ließe sich das länger angedachte *Künstler folgen* setzen + — neue Veröffentlichungen markierter Künstler über Deezer erkennen und melden, ohne dafür eine + eigene Liste pflegen zu müssen. Playlists gehen dafür ausdrücklich **nicht**: `getStarred`/ + `getStarred2` geben nur Künstler, Alben und Songs zurück, ein in Navidromes Oberfläche geliktes + Playlist ist über die API unsichtbar. + ### Known Bugs - **Android (lyrics)** — Synced-lyrics auto-scroll is **not smooth**: it follows playback and highlights the right line, but the list jumps to it rather than gliding. Web autoscroll is smooth. Not yet fixed. - **Web (PWA, desktop)** — The Windows media tile (SMTC) briefly closes and reopens when skipping tracks. Swapping the `