feat(player): Warteschlangen-Ansicht mit Springen, Entfernen, Umsortieren
- Neuer QueueScreen: zeigt handler.queue, hebt aktuell spielenden Titel hervor (fett/rot), Antippen springt per skipToQueueItem - Entfernen und Umsortieren ohne Änderung an MeloAudioHandler: Queue wird clientseitig neu berechnet und per loadPlaylist neu geladen; Position wird nur wiederhergestellt, wenn der abgespielte Titel unverändert blieb - Reine Queue-Logik (removeFromQueue/reorderQueue/newPlayingIndex) als eigenständige, ohne AudioHandler testbare Funktionen extrahiert - Warteschlangen-Button in der Now-Playing-AppBar verlinkt den neuen Screen Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Haiku 4.5
parent
ea6d8ab18e
commit
d267bb9658
@@ -6,6 +6,7 @@ import '../shared/cover.dart';
|
||||
import '../shared/favorite_button.dart';
|
||||
import '../shared/theme.dart';
|
||||
import 'audio_handler.dart';
|
||||
import 'queue_screen.dart';
|
||||
|
||||
/// Vollbild-Wiedergabe: Cover, Titel, Fortschritt, Transport-Controls.
|
||||
class NowPlayingScreen extends StatelessWidget {
|
||||
@@ -27,6 +28,14 @@ class NowPlayingScreen extends StatelessWidget {
|
||||
},
|
||||
),
|
||||
_SleepTimerButton(handler: handler),
|
||||
IconButton(
|
||||
tooltip: 'Warteschlange',
|
||||
icon: const Icon(Icons.queue_music),
|
||||
onPressed: () => Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (_) => const QueueScreen()),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
body: SafeArea(
|
||||
|
||||
Reference in New Issue
Block a user