From ce460f98049a720c242c1ca27bebbd49b1b9636c Mon Sep 17 00:00:00 2001 From: "Hermes (Server)" Date: Sat, 29 Aug 2026 15:57:38 +0200 Subject: [PATCH] CHANGELOG: 3 Bugfixes aus dem finalen Code-Review dokumentiert Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01SM6e73V9ZethPiqHSocxUA --- CHANGELOG.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f683c13..cd94681 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,47 @@ Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.0.0/). ## [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) - ✅ **Teil 2 der Animations-Serie**: Übergang Mini-Player ↔ Vollbild-Player