- androidShowNotificationBadge aktiviert für bessere Notification-Sichtbarkeit
- Notification bleibt aktiv auch wenn Musik pausiert (AndroidService-Konfiguration)
- Play/Pause/Skip-Controls auf Lock Screen + Notification (AudioService-Standard)
- Media-Session Integration für Android SystemUI Controls
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJzQjUtnvYUtHdnTs3iCru
- Bibliotheks-Statistik: Song-Anzahl + Gesamtspieldauer via watchSongs()
(reine Summier-/Format-Funktion in lib/settings/library_stats.dart,
unabhängig von Flutter/Plattform testbar)
- Berechtigungen: Musik-Berechtigung öffnet Systemeinstellungen über das
bereits vorhandene openMusicPermissionSettings()
- Über Melo: kurzer Name + Slogan, keine erfundene Versionsnummer
(package_info_plus ist keine Dependency)
- Keine Platzhalter für Profil/Cloud-Sync/Geräte-Verwaltung, da es noch
kein Account-/Cloud-System gibt (Phase 2)
- HomeShell nutzt SettingsScreen statt des Settings-Placeholders,
toter _Placeholder-Widget-Code entfernt
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- MeloAudioHandler bekommt MeloDb per Konstruktor injiziert
- Positions-Timer (alle 5s) schreibt db.recordPlayback(songId, positionMs)
während aktiv abgespielt wird (songId aus mediaItem.extras['songId'])
- loadPlaylist liest db.lastPosition() für den Start-Song und seekt vor
dem play() an die gespeicherte Position, statt immer von vorne zu starten
- shouldResumeAt() als reine, testbare Funktion extrahiert: kein Resume bei
Position 0 oder innerhalb der letzten 3s einer bekannten Track-Dauer
- dispose() zum gefahrlosen Abbrechen des Positions-Timers in Tests ohne
vollen App-Lifecycle (super.stop() lässt sich in Widget-Tests wegen der
aktiven playbackState-Pipe nicht gefahrlos aufrufen)
- library_screen_test.dart: MeloAudioHandler-Konstruktion angepasst (db
jetzt Pflichtparameter) + handler.dispose() im Teardown
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- PlaylistsScreen: Favoriten-ListTile oben (watchFavorites, pusht FavoritesListScreen),
darunter alle Playlisten (watchPlaylists) mit Songanzahl, Löschen via Icon/Long-Press
+ Bestätigungsdialog
- CreatePlaylistDialog: Name-Eingabe, Erstellen-Button erst aktiv bei nicht-leerem Text,
gibt die neue Playlist-ID zurück
- Leer-Zustand "Noch keine Playlisten" nach Vorbild von library_screen.dart
- main.dart: Playlisten-Platzhalter durch PlaylistsScreen ersetzt
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- "Zuletzt hinzugefügt" aus dem alten HomeScreen in die Bibliothek verschoben:
horizontal scrollende Leiste über der vollen Songliste, nur sichtbar wenn
nicht leer und nicht gerade gescannt wird
- home_screen.dart entfernt (Funktionalität jetzt Teil von LibraryScreen)
- HomeShell-Tabs auf die finale Struktur umgestellt: NowPlayingScreen an
Position 0, Playlisten- und Settings-Platzhalter an ihren finalen
Positionen (werden in späteren Tasks durch echte Screens ersetzt)
- BottomNavigationBar-Icons/Labels an die neue Reihenfolge angepasst
- MiniPlayer wird ausgeblendet, solange der Now-Playing-Tab aktiv ist
(redundant, da der Tab selbst schon die volle Wiedergabe-Ansicht zeigt)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>