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:
co-authored by
Claude Sonnet 5
parent
bc58438262
commit
ce460f9804
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user