Dustin
b8c206e58f
v2.40 — Issue #9 : Progress-Notification für Download/Upload (flutter_local_notifications)
...
- flutter_local_notifications ^22.2.0 hinzugefügt
- Notification-Channel 'de.baka.melo.downloads' in main() initialisiert
- DownloadService._showProgress(): Fortschritts-Notification mit ProgressBar
- DownloadService._completeNotification(): Abschluss-Notification (Erfolg/Fehler/Abbruch)
- Integration in downloadBatch(): Fortschritt pro Song, Abschluss nach Batch
- CloudScreen._upload(): Upload-Fortschritt + Abschluss-Notification
2026-08-02 16:04:09 +02:00
Dustin
f23dc685cb
v2.39 — Issue #8 : Persistente Notification (nicht wegwischbar)
...
- MediaControl.stop aus compact-Controls entfernt (nur play/pause, prev, next)
- Notification bleibt auch bei Pause bestehen
Build: ✓ flutter analyze
2026-08-02 15:56:25 +02:00
Dustin
0fc383daba
v2.38 — Issue #2 : Dauerverbindung Cloud Server (persistenter http.Client)
...
- CloudService: static final http.Client _client als Instanzvariable
- Alle http.get/post/put/delete/upload nutzen nun _client statt neuem Client
- DownloadService: gleicher Fix für _retryHttpPost und _retryHttpGet
Build: ✓ flutter analyze
2026-08-02 15:56:22 +02:00
Dustin
6ed416c8b1
v2.37 — Issue #6 : Auto-Scan beim Start + Timer.periodic alle 3h
...
- MusikScanner().scanneMusikOrdner() wird direkt nach Auth-Init aufgerufen
- Timer.periodic alle 3 Stunden für periodischen Scan
- androidStopForegroundOnPause=false für persistente Notification (Issue #8 )
Build: ✓ flutter analyze
2026-08-02 15:56:13 +02:00
Dustin
d555a7f146
v2.36 — Sprint 1: Behebe Issues #1 (Zurück-Button), #5 (Ausgeloggt), #4 (Berechtigungen)
...
Issue #1 : CloudScreen Zurück-Button — onZurueck Callback statt Navigator.pop()
- CloudScreen erhält VoidCallback? onZurueck Parameter
- Bei onZurueck != null → Callback (Tab-Wechsel in home_screen)
- Fallback: Navigator.pop(context) für Standalone-Nutzung
Issue #5 : Token wird nur bei HTTP 401 gelöscht
- _tokenOnlinePruefen(): nur statusCode == 401 → false
- 5xx, andere Fehler, Netzwerkfehler → true (Token behalten)
- Verhindert Ausloggen bei temporären Server-Problemen
Issue #4 : Android 13+ Berechtigungen beim App-Start
- main.dart: frageSpeicherZugriff() + POST_NOTIFICATIONS nach Auth-Init
- musik_scanner.dart: Permission-Check vor externen Ordnern in _sammleMusikPfade()
Build: ⏭️ (no APK)
2026-08-02 15:48:08 +02:00
Dustin
15993b1d0a
v2.35 — Vollständiges Sync-System: Playlisten, Favoriten, Auto-Sync, Persistent Login, Benutzerdefinierte Namen
...
## Server (melo_cloud.py v3.0.0)
- Neue DB-Tabellen: user_playlists, user_playlist_songs, user_favorites, user_history, sync_meta
- Playlist-Endpunkte: GET/POST /api/cloud/playlists, GET /api/cloud/playlists/<id>, POST songs, DELETE songs, PUT positions
- Favoriten-Endpunkte: GET/POST /api/cloud/favorites, POST /api/cloud/favorites/toggle
- History-Endpunkte: GET/POST /api/cloud/history (mit Dedup)
- Rename-Endpunkt: POST /api/cloud/rename (custom_title/custom_artist)
- Sync-Endpunkte: POST /api/cloud/sync-all, GET /api/cloud/sync-status
- delete-all erweitert um Playlists + Favorites + History
## App
- db_helper.dart: Migration v4→v5 (cloud_id, cloud_title, cloud_artist, server_favorites, sync_metadata)
- auth_service.dart: Token-Validierung beim Start (online check + Offline-Fallback), Persistent Login
- cloud_service.dart: Neue Methoden für Playlists (CRUD), Favorites (get/sync/toggle), Rename, History, syncAll/syncStatus
- cloud_screen.dart: Komplett-Rewrite mit Sync-Modus (Manuell/Auto), Intervall-Auswahl, Sync-Fortschritt-Anzeige, Playlist-Verwaltung, Favoriten-Anzeige + Umbenennen, Sync-Info-Karte, nächster Sync
- main.dart: Auto-Sync beim App-Start (nur wenn konfiguriert + fällig)
## Flutter Analyze
- 0 neue Issues — nur 7 pre-existing
2026-08-01 19:32:35 +02:00
Dustin
2b06a8e496
fix: Cloud-Status sofort anzeigen (kein leerer Ladekreis)
2026-08-01 18:23:19 +02:00
Dustin
ac543eb84b
fix: CloudService silent error → logging, Status zeigt Token-Fehler an
2026-08-01 18:15:04 +02:00
Dustin
a7dbf5e9e1
fix: Login-Fehlermeldung zeigt jetzt saubere Server-Nachricht, Passwort-Reset Baka
2026-08-01 18:08:10 +02:00
Dustin
30c85f823e
debug: Body-Inhalt im Login-Fehler anzeigen
2026-08-01 18:04:01 +02:00
Dustin
ebd3131117
debug: auth-response logging + Body-Länge im Fehler
2026-08-01 17:51:10 +02:00
Dustin
a495a183d8
fix: Login-Fehlerhandler — 200 ohne Token abfangen, Server-Nachrichten parsen
2026-08-01 17:44:05 +02:00
Dustin
7f17a5afd6
v2.33 — Login vereinfacht: keine Registrierung, Navidrome auto-sync, nur eine Anmeldung
2026-08-01 17:36:02 +02:00
Dustin
7d5cae64d1
fix: syntax error in player_service (missing });
2026-08-01 16:54:05 +02:00
Dustin
f00fd445f5
fix: code-review #2 — dedup MagicBytes, auth für check_corrupted, UI-Flag, merged player streams, jq-JSON
2026-08-01 16:48:45 +02:00
Dustin
2d4c7c8b98
v2.32 — Defekte Musik erkennen (Magic Bytes, ffprobe, DB-Flag, UI)
2026-08-01 16:40:42 +02:00
Dustin
4a05c76199
fix: code-review findings — error handling, null safety, persist settings, auth header
2026-08-01 15:09:48 +02:00
Dustin
669a02304e
fix: code-review warnings — deprecated APIs, debugPrint→Logger, unused import
2026-08-01 15:08:05 +02:00
Dustin
cdb137f724
fix: stale cloud_einstellungen.dart entfernt (Rebase-Artefakt)
2026-08-01 15:06:26 +02:00
Dustin
36c744d6e3
v2.31 — Login, Einstellungen & Cloud Sync Redesign
...
- Login-Screen im Melo-Design (Schwarz+Rot) mit Baka-Auth JWT
- AuthService fuer Token-Management ueber baka-net.de/auth
- Registrierungs-Modus + 'Ohne Login fortfahren'
- Navidrome-Credentials optional im Login aufklappbar
- SettingsScreen ersetzt AlertDialog
- BottomNav navigiert statt Dialog zu triggern
- Cloud Sync, Server verbinden, Diagnosedaten, App-Info, Abmelden
- CloudEinstellungen-Dialog entfernt, alles in CloudScreen konsolidiert
- Hardcode login('Baka','') entfernt → AuthService.benutzer
- Gradient-Statuskarte, animierte Segment-Intervall-Auswahl
- JWT Authorization statt Klartext-Passwort
- AppConfig: API-Key defaultValue entfernt (kein Fallback-Leak)
- Build crasht ohne --dart-define MELO_API_KEY
Build: split APK (arm64 19.6M, armeabi 17.1M, x86_64 21.1M)
2026-08-01 15:03:22 +02:00