Cover-Farbe, Teilen aus YouTube, Android Auto, geschärfte Typografie

P3-Liste aus dem UX-Review: Player nimmt Cover-Farbe auf, "Teilen" aus
YouTube trägt die Adresse in den Downloader ein, Android Auto blättert
durch die Bibliothek, Laufweite der Typografie geschärft, Überschriften
vereinheitlicht. 533 Tests grün, flutter analyze ohne Befund.
This commit is contained in:
Hermes (Server)
2026-08-25 09:09:27 +02:00
parent 490e73ce41
commit 60c57577a3
22 changed files with 1040 additions and 40 deletions
+5
View File
@@ -461,6 +461,11 @@ class MeloDb extends _$MeloDb {
));
}
/// Der Song mit dieser UUID, oder `null`. Grundlage dafür, aus einer
/// Adresse im Auto wieder einen Titel zu machen.
Future<Song?> songById(String id) =>
(select(songs)..where((s) => s.id.equals(id))).getSingleOrNull();
/// Der Song mit genau diesem Dateipfad, oder `null`.
Future<Song?> songByPath(String path) =>
(select(songs)..where((s) => s.path.equals(path))).getSingleOrNull();
+3 -8
View File
@@ -3,6 +3,7 @@ import 'package:provider/provider.dart';
import '../shared/sort_store.dart';
import '../shared/sortable_song_list.dart';
import '../shared/ueberschrift.dart';
import 'database.dart';
import '../shared/theme.dart';
@@ -18,14 +19,7 @@ class FavoritesScreen extends StatelessWidget {
bottom: false,
child: Column(
children: [
const Padding(
padding: EdgeInsets.fromLTRB(20, 16, 20, 4),
child: Align(
alignment: Alignment.centerLeft,
child: Text('Favoriten',
style: TextStyle(fontSize: 24, fontWeight: FontWeight.w700)),
),
),
const Ueberschrift('Favoriten'),
Expanded(
child: StreamBuilder<List<Song>>(
stream: db.watchFavorites(),
@@ -65,3 +59,4 @@ class _Empty extends StatelessWidget {
);
}
}
+3 -8
View File
@@ -5,6 +5,7 @@ import 'package:provider/provider.dart';
import '../playlists/playlist_detail_screen.dart';
import '../shared/theme.dart';
import '../shared/ueberschrift.dart';
import '../shared/titel_listen_screen.dart';
import 'category_service.dart';
import 'database.dart';
@@ -104,14 +105,7 @@ class _SearchScreenState extends State<SearchScreen> {
bottom: false,
child: Column(
children: [
const Padding(
padding: EdgeInsets.fromLTRB(20, 16, 20, 4),
child: Align(
alignment: Alignment.centerLeft,
child: Text('Suchen',
style: TextStyle(fontSize: 24, fontWeight: FontWeight.w700)),
),
),
const Ueberschrift('Suchen'),
_Suchfeld(
controller: _feld,
onChanged: _tippt,
@@ -421,3 +415,4 @@ class _Hinweis extends StatelessWidget {
);
}
}