Listen zeigen, welcher Titel gerade laeuft

Bisher scrollte man durch die Bibliothek und musste raten, wo man ist —
die einzige Rueckmeldung war die Leiste ganz unten.

Drei tanzende Balken ueber dem Coverbild des laufenden Titels, sein Name
in Rot. Die Balken liegen auf dem Cover statt daneben: eine vierte Spalte
haette dem Titel Platz genommen und die Zeile bei jedem Titelwechsel in
der Breite springen lassen. Pausiert bleibt die Markierung stehen, die
Balken stehen still. Bei abgeschalteten Systemanimationen ebenfalls — eine
Endlosschleife ist genau das, was diese Einstellung vermeiden soll.

Die Markierung sitzt in SongZeile und gilt damit in einem Rutsch fuer
Meine Musik, Favoriten, Suche, Kuenstler, Kategorie und "Zuletzt
hinzugefuegt". Warteschlange und Wiedergabeliste bauen ihre Zeilen selbst
(dort steht rechts Entfernen statt Herz und Menue) und haben dasselbe
Zeichen einzeln bekommen.

Nur die laufende Zeile hoert auf den Wiedergabe-Zustand: der meldet auch
den Pufferstand und feuert mehrmals pro Sekunde. Haenge jede sichtbare
Zeile daran, baute sich die halbe Liste staendig neu auf.

Aus dem Code-Review nachgebessert: Startwert fuer den Strom, sonst
erschien die Markierung beim Zurueckscrollen einen Frame zu spaet; die
Zeile aendert beim Wechsel nicht mehr die Form ihres Aufbaus, sonst verlor
das Herz daneben sein Abo und sah kurz leer aus; die Wiedergabeliste
bekam die Markierung ueberhaupt erst (der Changelog hatte sie faelschlich
schon behauptet); der Abdunkel-Schleier nimmt den Eckenradius jetzt
entgegen statt ihn fest zu verdrahten.

Testluecke geschlossen, die der Review benannt hat: geprueft waren nur die
Regel und die Balken je fuer sich, die Verdrahtung dazwischen nicht —
genau dort sassen alle drei Fehler.

411 Tests gruen (vorher 396), flutter analyze ohne Befund, Release-APK
gebaut.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013xAHJTJM6UUqmjUgk1PUEd
This commit is contained in:
Hermes (Server)
2026-08-23 20:54:45 +02:00
co-authored by Claude Opus 5
parent ca28264c0e
commit 80948f1ad5
9 changed files with 792 additions and 75 deletions
+58
View File
@@ -5,6 +5,64 @@ Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.0.0/).
## [Unreleased]
### ▶️ Man sieht jetzt, welcher Titel gerade läuft (2026-08-23)
Bisher scrollte man durch die Bibliothek und musste raten, wo man gerade
ist — die einzige Rückmeldung war die Leiste ganz unten.
- 🎚️ **Drei tanzende Balken über dem Coverbild** des laufenden Titels, sein
Name in Rot. Die Balken liegen **auf** dem Cover statt daneben: eine vierte
Spalte hätte dem Titel Platz genommen, und die Zeile wäre bei jedem
Titelwechsel in der Breite gesprungen.
- ⏸️ **Pausiert bleibt die Markierung stehen, die Balken stehen still.** Man
sieht weiter, wo man ist, und zugleich, dass gerade nichts vorangeht.
- 🌐 **Überall zugleich.** Die Markierung sitzt in der Songzeile selbst, also
gilt sie in „Meine Musik“, Favoriten, Suche, hinter einem Künstler, hinter
einer Kategorie, in einer Wiedergabeliste und bei „Zuletzt hinzugefügt“ —
ohne dass irgendeine dieser Ansichten angefasst werden musste. Die
Warteschlange bekommt dasselbe Zeichen, damit man dieselbe Stelle
wiedererkennt.
-**Wer Systemanimationen abgeschaltet hat, bekommt stehende Balken.** Eine
Endlosschleife ist genau das, was diese Einstellung vermeiden soll.
- 🐛 **Beim Testen gefunden:** Die Balken lasen die Animations-Einstellung im
falschen Moment (`initState`), was Flutter mit einem Fehler quittiert. Der
Test, der prüft, dass nichts endlos läuft, hat es aufgedeckt.
-**Und beim Nachsehen noch etwas:** Zuerst hing *jede* sichtbare Zeile am
Wiedergabe-Zustand — der meldet aber auch den Pufferstand und feuert
mehrmals pro Sekunde. Die halbe Liste hätte sich also ständig neu
aufgebaut. Jetzt hört nur die eine laufende Zeile darauf; alle anderen
bekommen nur mit, wenn der Titel wechselt.
- 🔍 **Aus dem Code-Review nachgebessert:**
**(1)** Die Markierung erschien einen Frame zu spät. Scrollte man die
laufende Zeile aus dem Blick und zurück, ploppten Balken und rote Schrift
sichtbar nach — der Strom liefert seinen Wert erst im nächsten Frame. Jetzt
mit Startwert.
**(2)** Beim Wechsel auf „markiert" änderte die Zeile die Form ihres
Aufbaus, und Flutter warf sie deshalb weg und baute sie neu. Folge: das
Herz daneben verlor sein Abo und sah einen Moment lang leer aus — genau
bei dem Titel, den man gerade gestartet hat. Der Aufbau bleibt jetzt
gleich, nur der Strom wird an- und abgehängt.
**(3)** In der **Wiedergabeliste** fehlte die Markierung ganz. Der
Changelog-Eintrag oben behauptete zuerst das Gegenteil — diese Ansicht
baut ihre Zeilen selbst (rechts steht „Aus Playlist entfernen" statt Herz
und Menü) und lief deshalb nicht über die gemeinsame Songzeile. Sie hat
die Markierung jetzt wirklich.
Dazu eine Kleinigkeit: der Abdunkel-Schleier hatte seinen Eckenradius fest
verdrahtet und hätte bei einem anderen Cover-Radius nicht mehr gepasst.
- 🧪 **Testlücke geschlossen, die der Review benannt hat.** Geprüft waren nur
die Regel und die Balken für sich — die Verdrahtung dazwischen nicht. Genau
dort saßen alle drei Fehler oben. Es gibt jetzt fünf Tests dafür, unter
anderem einen, der nachweist, dass die Zeile beim Wechsel **dasselbe**
Element bleibt.
-**Getestet:** 411 Tests grün (vorher 396), `flutter analyze` ohne Befund,
Release-APK gebaut. Neu: 5 Tests für die Regel, wann eine Zeile markiert
wird (inklusive: ein Server-Titel markiert nie eine Bibliothekszeile),
5 Widget-Tests für die Balken und 5 für die Verdrahtung.
### 🔎 Die Suche trennt jetzt nach Titel, Künstler, Kategorien und Listen (2026-08-23)
Der Suchen-Tab war bisher **59 Zeilen**: ein Textfeld über einer flachen