UX-Simulation: Mehrfachauswahl überall, Baka-Login, Bestätigungen, Suche
7 Agenten sind die App als normaler Nutzer durchgegangen (Erststart, Bibliothek, Download, Suche, Favoriten, Player, Einstellungen) und haben 39 Reibungspunkte gefunden. Erster Block: - Mehrfachauswahl lief nur im Lieder-/Favoriten-Reiter, nicht in Kategorie-/Künstler-/Album-Ansichten — jetzt überall, per geteilter auswahl_leiste.dart - Zwei unterschiedlich ausgestattete Favoriten-Listen (Tab vs. Playlisten) vereinheitlicht - Baka-Login zeigt Ladezustand + Fehler im Dialog statt bis zu 15s stumm zu bleiben (wie der Navidrome-Login) - Cache leeren, Navidrome-Abmelden, Download einzeln entfernen fragen jetzt nach - Download-Fehlermeldung bei toter Serververbindung nennt den echten Grund statt "War schon heruntergeladen" - YouTube-Fehlermeldungen sind jetzt rot statt neutralfarben - Suche schließt die Tastatur nach Auswahl, nennt den Suchbegriff bei "Nichts gefunden", einzelne Verlaufseinträge sind entfernbar - Icon-/Text-Korrekturen (Mikrofon-Icon fälschlich bei Speicherzugriff, "Online"-Tab existiert nicht, ReplayGain-Jargon) 537 Tests grün (vorher 533), flutter analyze ohne Befund.
This commit is contained in:
@@ -3,7 +3,8 @@ import 'package:provider/provider.dart';
|
||||
|
||||
import '../library/database.dart';
|
||||
import '../library/playlist_service.dart';
|
||||
import '../library/song_list.dart';
|
||||
import '../shared/sort_store.dart';
|
||||
import '../shared/sortable_song_list.dart';
|
||||
import '../shared/theme.dart';
|
||||
import 'create_playlist_dialog.dart';
|
||||
import 'playlist_detail_screen.dart';
|
||||
@@ -146,6 +147,10 @@ class _Empty extends StatelessWidget {
|
||||
}
|
||||
|
||||
/// Gepushte Ansicht der favorisierten Songs.
|
||||
///
|
||||
/// Dieselbe [SortableSongList] wie im Favoriten-Tab (Shuffle, Sortieren,
|
||||
/// Mehrfachauswahl) — vorher stand hier eine nackte [SongList] ohne all das,
|
||||
/// obwohl es dieselben Songs sind wie im Tab.
|
||||
class FavoritesListScreen extends StatelessWidget {
|
||||
const FavoritesListScreen({super.key});
|
||||
|
||||
@@ -157,13 +162,15 @@ class FavoritesListScreen extends StatelessWidget {
|
||||
body: StreamBuilder<List<Song>>(
|
||||
stream: db.watchFavorites(),
|
||||
builder: (context, snapshot) {
|
||||
final songs = snapshot.data ?? const [];
|
||||
if (songs.isEmpty) {
|
||||
return const Center(
|
||||
child: Text('Noch keine Favoriten', style: TextStyle(color: MeloTheme.text2)),
|
||||
);
|
||||
}
|
||||
return SongList(songs);
|
||||
final songs = snapshot.data ?? const <Song>[];
|
||||
return SortableSongList(
|
||||
songs: songs,
|
||||
storeKey: SortStore.favoriten,
|
||||
empty: const Center(
|
||||
child: Text('Noch keine Favoriten',
|
||||
style: TextStyle(color: MeloTheme.text2)),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user