CHANGELOG: 3 Bugfixes aus dem finalen Code-Review dokumentiert

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SM6e73V9ZethPiqHSocxUA
This commit is contained in:
Hermes (Server)
2026-08-29 15:57:38 +02:00
co-authored by Claude Sonnet 5
parent bc58438262
commit ce460f9804
+41
View File
@@ -5,6 +5,47 @@ Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.0.0/).
## [Unreleased] ## [Unreleased]
### 🐛 Vollbild-Player Live-Blur-Übergang: 3 Bugfixes aus dem finalen Code-Review (2026-08-29)
Vor dem Push ein Review über den gesamten Diff der Blur-Übergang-Serie
(siehe Eintrag darunter) — 3 echte Bugs gefunden und per TDD behoben:
- 🐛 **Player öffnete sich nicht, wenn er per `Navigator.push` erreicht
wurde** (z. B. Song in einer Playlist oder in Server-Album/Künstler-
Ansicht antippen): `PlayerExpansionController` wurde nur INNERHALB von
`HomeShell.build()` bereitgestellt — ein per `Navigator.push` geöffneter
Screen ist im Baum aber ein Geschwister von `HomeShell`, kein Nachfahre,
und sah den Provider deshalb nicht (`ProviderNotFoundException`,
abgefangen zu einer "Wiedergabe fehlgeschlagen"-Snackbar). Fix: `MeloApp`
stellt den Controller jetzt oberhalb von `MaterialApp`/Navigator bereit,
wie alle anderen App-weiten Provider.
- 🐛 **"RenderFlex overflowed"-Fehler während fast jeder Öffnen-Geste**:
Titel/Künstler/Fortschritt/Controls brauchten mehr Höhe, als das noch
kleine, interpolierte Rechteck zwischen Mini- und Vollbild-Player während
der Übergangsphase hatte. Fix: der Inhalt steckt jetzt in einer
`ClipRect`/`OverflowBox`-Kapselung — er behält seine natürliche Größe,
der überschüssige Teil wird während der kurzen, ohnehin noch
durchsichtigen Übergangsphase einfach nicht gemalt statt eine
Fehlermeldung auszulösen. Der Endzustand bei vollständig geöffnetem
Player sieht unverändert aus.
- 🐛 **Player klappte bei einem schwachen Fingerzittern ungewollt zu**: War
der Player bereits vollständig offen und der Finger verrutschte beim
Versuch, einen Knopf zu treffen, leicht nach oben, wählte die
Wisch-Auswertung fälschlich den ÖFFNEN-Zweig (geraten aus dem Vorzeichen
der Zugstrecke statt aus dem tatsächlichen Aufrufer-Kontext) — der klappte
bei einer so schwachen Geste zu, statt gar nichts zu tun. Fix:
`PlayerExpansionController.dragEnd()` bekommt jetzt den Pflichtparameter
`ausVollbild`, der explizit sagt, ob die Geste am Mini-Player (öffnend)
oder am Vollbild-Player (schließend) passiert.
-**Getestet (RED→GREEN je Fix, eigener Commit):**
`test/player/provider_scope_navigator_push_test.dart` (echtes `HomeShell`
+ echter `Navigator.push`, reproduziert die reale
`ProviderNotFoundException`), `test/player/now_playing_screen_overflow_test.dart`
(reproduziert "RenderFlex overflowed by 13 pixels" in einem echten,
interpolierten Zwischenrechteck), neuer Testfall in
`test/player/player_expansion_controller_test.dart`. Volle Suite
(626 Tests) grün, `flutter analyze` ohne Befund.
### ✨ Vollbild-Player: Live-Blur-Übergang statt fester Animation (2026-08-29) ### ✨ Vollbild-Player: Live-Blur-Übergang statt fester Animation (2026-08-29)
-**Teil 2 der Animations-Serie**: Übergang Mini-Player ↔ Vollbild-Player -**Teil 2 der Animations-Serie**: Übergang Mini-Player ↔ Vollbild-Player