Tab-Reihenfolge, konfigurierbare Meine-Musik-Sektionen, Berechtigungen beim Start, schärferes Sperrbildschirm-Cover

- Tabs: Meine Musik, Suchen, Download, Favoriten (vorher Download vor Suchen)
- "Meine Musik": Schnellzugriffe (Favoriten/Wiedergabelisten/Zuletzt) einzeln
  über die Einstellungen abschaltbar
- Audio- und Benachrichtigungs-Berechtigung werden jetzt beim ersten Start
  gemeinsam angefragt statt erst bei Bedarf; Hinweisbanner + Einstellungen-
  Button bei dauerhafter Verweigerung (auch für Benachrichtigungen neu)
- Cover-Extraktion beim Android-Scan von 512px auf 1024px erhöht, für ein
  schärferes Cover im Sperrbildschirm
- Fix: notifyListeners() in LibraryService nur noch bei echter Wertänderung
  (verhinderte einen Test-Hang durch den neuen Start-Berechtigungs-Aufruf)

557 Tests grün, flutter analyze ohne Befund.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VM2JK5mV7AL1g2Rt6H6h9w
This commit is contained in:
Hermes (Server)
2026-08-25 14:17:13 +02:00
co-authored by Claude Sonnet 5
parent 54cb523cf4
commit da012a3dca
12 changed files with 364 additions and 73 deletions
+33
View File
@@ -5,6 +5,39 @@ Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.0.0/).
## [Unreleased]
### 🔐 Berechtigungen beim Start, schärferes Sperrbildschirm-Cover (2026-08-25)
Vier Punkte aus dem Auftrag geprüft — zwei davon waren schon erledigt:
-**Tab-Reihenfolge** (Meine Musik, Suchen, Download, Favoriten) und
**konfigurierbare Schnellzugriffe in "Meine Musik"** (Checkboxen in
den Einstellungen) waren bereits vollständig umgesetzt — nichts zu tun,
siehe Test `home_shell_test.dart` bzw. `AppSettings.meineMusikSektionen`.
- 🔑 **Alle Berechtigungen beim ersten Start.** Bisher fragte die App das
Musik-Recht erst beim manuellen Scannen und das Benachrichtigungs-Recht
erst nach dem ersten abgespielten Titel — beides isoliert und spät.
`LibraryService.ensureStartupPermissions()` fragt jetzt gleich beim
App-Start beide Rechte nacheinander ab (nicht gleichzeitig —
`permission_handler` wirft sonst einen Fehler). Wird eines dauerhaft
verweigert, zeigt "Meine Musik" ein Hinweisbanner mit Button direkt zu
den App-Einstellungen (`openAppSettings`) — für die Benachrichtigung neu,
fürs Musik-Recht gab es das schon. Auch in den Einstellungen selbst gibt
es jetzt für beide Rechte eine eigene Zeile mit "Einstellungen öffnen".
- 🖼️ **Schärferes Cover für den Sperrbildschirm.** `audio_service` liefert
das Album-Cover fürs große Sperrbildschirm-Bild (MIUI & Co.) technisch
schon über die MediaSession — die extrahierte Auflösung beim
Android-Scan war mit 512px aber knapp. Jetzt 1024px.
- 🐛 **Dabei gefunden:** Der neue Start-Berechtigungs-Aufruf ließ einen
bestehenden Widget-Test (`home_shell_test.dart`) hängen — ein
unbedingter `notifyListeners()`-Aufruf ohne echte Wertänderung kollidierte
mit dessen Test-Teardown (nur ein `pump()`, kein `pumpAndSettle()`).
`LibraryService` meldet Änderungen an `permissionDenied` und
`notificationPermissionDenied` jetzt nur noch, wenn sich der Wert
tatsächlich ändert.
-**Getestet:** 557 Tests grün (vorher 550), `flutter analyze` ohne
Befund. Neu: Banner-Test für die verweigerte Benachrichtigung, Test für
die neue Berechtigungs-Zeile in den Einstellungen.
### 🧑‍🤝‍🧑 UX-Simulation, Teil 3: die zurückgestellten Punkte (2026-08-25)
Die vier Punkte aus Teil 2, die als "eigenes kleines Vorhaben" zurückgestellt