UX-Simulation, Teil 3: Abbrechen, Badge, Versionsnummer, Wisch-Strecke

Die vier zuletzt zurückgestellten Punkte aus der UX-Simulation:

- Abbrechen-Knopf für hängende YouTube-Downloads (Future.any gegen ein
  Abbruch-Signal, Anfrage läuft im Hintergrund aus statt die App zu
  blockieren)
- Punkt am inaktiven Download-Unterreiter, wenn dort etwas im Hintergrund
  läuft (SubTabs bekommt einen optionalen badges-Parameter)
- Versionsnummer unter "Über Melo" (neue Abhängigkeit: package_info_plus)
- Mini-Player führt beim Wischen jetzt sichtbar mit und wertet zusätzlich
  zum Schwung auch die zurückgelegte Strecke aus — ein langsames, aber
  weites Wischen wurde vorher komplett ignoriert

Dabei drei bestehende Widget-Tests korrigiert, die den Download-Tab ohne
Provider<DownloadService> aufbauten (hauptmenue_test.dart,
home_shell_test.dart, online_screen_test.dart) — lief bisher nur, weil
niemand danach fragte; das neue Badge tut das jetzt app-weit.

550 Tests grün (vorher 539), flutter analyze ohne Befund.
This commit is contained in:
Hermes (Server)
2026-08-25 10:25:43 +02:00
parent 8f80362f08
commit c2f31dee01
16 changed files with 392 additions and 33 deletions
+35
View File
@@ -5,6 +5,41 @@ Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.0.0/).
## [Unreleased]
### 🧑‍🤝‍🧑 UX-Simulation, Teil 3: die zurückgestellten Punkte (2026-08-25)
Die vier Punkte aus Teil 2, die als "eigenes kleines Vorhaben" zurückgestellt
waren, sind jetzt auch erledigt:
- ⏹️ **Abbrechen-Knopf für YouTube-Downloads.** Ein hängender Download (bis
zu zwei mal 180s) ließ sich vorher nur durch Schließen der App stoppen.
`YtDownloadService` wartet jetzt mit `Future.any` gegen ein Abbruch-Signal
— die Netzwerk-Anfrage läuft im Hintergrund aus, die App wartet aber
nicht mehr darauf und meldet sich sofort zurück.
- 🔴 **Punkt am inaktiven Download-Unterreiter,** wenn dort im Hintergrund
ein Download läuft — man sah vorher nicht, dass beim Wechsel zu
YouTube/Server nebenan noch etwas passiert. `SubTabs` kann das jetzt für
jeden Reiter einzeln (neuer, optionaler `badges`-Parameter).
- 🔢 **Versionsnummer unter "Über Melo"** — dafür kam `package_info_plus`
als neue Abhängigkeit dazu (federated plugin, kein zusätzliches
Manifest nötig).
- 👆 **Mini-Player folgt jetzt dem Finger.** Vorher zählte nur ein kräftiger
Schwung (≥ 300 px/s); wer langsam, aber weit genug wischte, bekam gar
keine Reaktion — wie ein hängender Bildschirm statt "zu langsam
gewischt". Der Player führt die Bewegung jetzt sichtbar mit
(`AnimatedContainer.transform`) und entscheidet beim Loslassen über
Schwung **oder** zurückgelegte Strecke; ohne Wirkung schnappt er sichtbar
zurück. Nach unten bleibt weiterhin unbelegt (Absicht, unverändert).
- 🔧 **Nebenbei gefunden:** Drei bestehende Widget-Tests
(`hauptmenue_test.dart`, `home_shell_test.dart`,
`online_screen_test.dart`) bauten den Download-Tab ohne
`Provider<DownloadService>` auf — funktionierte bisher nur, weil niemand
ihn dort abfragte. Das Badge tut das jetzt app-weit; die drei
Test-Aufbauten sind entsprechend ergänzt.
-**Getestet:** 550 Tests grün (vorher 539), `flutter analyze` ohne
Befund. Neu: Abbruch-Test für den YouTube-Download (hängende Anfrage per
`Completer`), zwei Tests für das SubTabs-Badge, vier für die
streckenbasierten Wisch-Funktionen.
### 🧑‍🤝‍🧑 UX-Simulation, Teil 2: Player-Feinschliff, Downloads, Einstellungen (2026-08-25)
Zweiter Block derselben 39 Funde: