v2.52 — Favoriten-Sync-Fix: bidirektionaler Merge (lokal↔Server), Toggle-Push sofort, cloud_id-Verdrahtung

This commit is contained in:
Dustin
2026-08-05 10:33:23 +02:00
parent 4694955f5f
commit 3b898e238e
7 changed files with 286 additions and 17 deletions
+15
View File
@@ -81,6 +81,21 @@ void main() async {
// Auth initialisieren (Token aus SharedPreferences laden + online validieren)
await AuthService().initialisieren();
// Favoriten-Toggle → Server-Push (Feuer-und-Vergessen, deterministisch via
// `set` statt Toggle — verhindert Doppel-Toggle). Songs ohne cloud_id
// (nicht hochgeladen) werden übersprungen; ein Fehlschlag wird beim
// nächsten vollständigen Sync korrigiert (favoritenMerge-Vereinigung).
FavoritenService().onStatusGeaendert = (songId, neuerStatus) async {
try {
final song = await DbHelper().songNachId(songId);
final cid = song?.cloudId;
if (cid == null || cid.isEmpty) return;
await CloudService().setFavorite(cid, favorit: neuerStatus);
} catch (e) {
MeloLogger().fehler('favoriten_server_push', e);
}
};
// Android-Berechtigungen beim Start abfragen (Issue #4)
// Speicherzugriff für Musik-Scan (READ_MEDIA_AUDIO / Storage)
await MusikScanner().frageSpeicherZugriff();