Sync-Ausbau: Favoriten-Fix, Auswahl-Upload, Einzel-Offline, Playlist-Sicherung #5

Open
dustin wants to merge 18 commits from feature/sync-ausbau into fix/p0-vollwertigkeit
Showing only changes of commit 8126a16520 - Show all commits
+11 -6
View File
@@ -218,12 +218,17 @@ class _HomeShellState extends State<HomeShell> with WidgetsBindingObserver {
final sync = context.read<SyncService>();
final playlists = context.read<PlaylistService>();
await sync.automatisch();
// Nur auf einem Gerät ohne eigene Playlisten: nach dem ersten Abgleich
// (der Songs erst cloudIds zuweist) holt das die gesicherten Listen
// zurück. Vor dem Sync liefe jede songByCloudId-Suche ins Leere und
// legte leere Playlisten an, die der countPlaylists()-Riegel dann für
// immer blockierte.
unawaited(playlists.stelleWiederHer());
// Nur auf einem Gerät ohne eigene Playlisten, und nur nach einem
// tatsächlich abgeschlossenen Sync-Lauf: läuft parallel schon ein
// echter Sync (z. B. weil ein Berechtigungsdialog während des
// Erststarts einen App-Resume auslöst und diese Methode ein zweites
// Mal anstößt), kehrt automatisch() oben wegen des _laeuft-Guards
// sofort zurück — dann liefe jede songByCloudId-Suche noch ins Leere,
// legte leere Playlisten an, und der countPlaylists()-Riegel würde
// jeden weiteren Versuch für immer blockieren.
if (!sync.laeuft) {
unawaited(playlists.stelleWiederHer());
}
if (!mounted) return;
final bericht = sync.bericht;
if (bericht == null) return;