Equalizer-Fix für Xiaomi/MIUI (Dolby Atmos) + In-App-YouTube-Suche als Extra-Tab
- openSystemPanel(): Xiaomi-Sound-Settings-Intent zuerst, dann Settings.ACTION_SOUND_SETTINGS, dann Android-Standard-Intent als Fallback. Behebt "kein System-Klangeffekte" trotz Dolby Atmos auf MIUI/HyperOS (POCO X7 Pro), wo der Standard-Intent keine Activity findet. - Neuer Tab "YT-Suche": YouTube-Suche über den bestehenden /api/search-Endpunkt des Baka-Proxys, Ergebnisliste mit Thumbnail (YouTube-CDN), Titel, Dauer und Download-Knopf pro Treffer — derselbe Download-Weg wie im bestehenden Download-Tab. 574 Tests grün, flutter analyze ohne Befund, Kotlin kompiliert sauber (gradlew :app:compileDebugKotlin). Xiaomi-Fix konnte nicht auf echter Hardware getestet werden. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VM2JK5mV7AL1g2Rt6H6h9w
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
9e65ddcbb5
commit
f0313724d4
@@ -5,6 +5,44 @@ Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.0.0/).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### 🎚️📺 Equalizer-Fix (Xiaomi) + In-App-YouTube-Suche, Extra-Tab (2026-08-25)
|
||||
|
||||
- 🎚️ **Equalizer: "kein System-Klangeffekte" trotz Dolby Atmos behoben.**
|
||||
`openSystemPanel()` nutzte bisher nur den Android-Standard-Intent
|
||||
(`ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL`) — dafür registriert
|
||||
MIUI/HyperOS auf dem POCO X7 Pro keine Activity, `resolveActivity()`
|
||||
liefert dort immer `null`. Neu: zuerst der Xiaomi-Weg direkt zur
|
||||
System-Ton-Seite (`com.android.settings.Settings$SoundSettingsActivity`,
|
||||
wo Dolby Atmos liegt), danach `Settings.ACTION_SOUND_SETTINGS` als
|
||||
universeller Fallback, zuletzt weiter der Android-Standard-Intent für
|
||||
Geräte, die den unterstützen. Kotlin kompiliert sauber
|
||||
(`gradlew :app:compileDebugKotlin`); echtes Testen auf einem POCO X7 Pro
|
||||
war von hier aus nicht möglich.
|
||||
- 📺 **In-App-YouTube-Suche — neuer Extra-Tab "YT-Suche" (zum Testen).**
|
||||
Bisher ließ sich nur eine YouTube-Adresse einfügen; jetzt gibt es eine
|
||||
echte Suche mit Ergebnisliste (Vorschaubild, Titel, Dauer) und
|
||||
Download-Knopf pro Treffer. Nutzt den bereits vorhandenen
|
||||
`/api/search`-Endpunkt des Baka-Proxys (yt-dlp-gestützt, dieselbe
|
||||
Anmeldung wie der bestehende YouTube-Downloader) — kein neuer Server,
|
||||
kein YouTube-API-Key nötig. Die Vorschaubilder kommen direkt von
|
||||
YouTubes öffentlichem Thumbnail-CDN, aus der Video-ID der Ergebnis-URL.
|
||||
Der Download-Knopf läuft über denselben Weg wie im Download-Tab
|
||||
(Baka-Proxy → App-Zwischenordner → MediaStore → Bibliotheks-Scan).
|
||||
- 🐛 **Beim Testen gefunden:** `YtDownloadService.herunterladen()`
|
||||
(Future.any + `.timeout()`) lässt sich nicht sicher aus einem
|
||||
`testWidgets()`-Test heraus aufrufen — der Timeout-Timer bleibt unter
|
||||
Flutters `fake_async`-Testbindung dauerhaft "pending" und lässt den Lauf
|
||||
hängen bzw. an der Pending-Timer-Prüfung scheitern (reproduziert auch
|
||||
ganz ohne die neue UI). Genau deshalb hat auch der bestehende
|
||||
Download-Knopf im Download-Tab keinen eigenen Widget-Test — die
|
||||
Download-Logik selbst ist über `yt_download_test.dart` schon ausführlich
|
||||
abgedeckt, an `YtDownloadService` wurde nichts geändert.
|
||||
- ✅ **Getestet:** 574 Tests grün (vorher 557), `flutter analyze` ohne
|
||||
Befund. Neu: Tests für `youtubeVideoId`/Thumbnail-Ableitung, für
|
||||
`YtSearchService.suchen` (Anmeldung, Erfolg, 401, Fehlertext, Timeout,
|
||||
neue Suche ersetzt alte Treffer) und zwei Widget-Tests für den neuen Tab
|
||||
(Anmelde-Hinweis, Suchergebnisse mit Titel/Dauer).
|
||||
|
||||
### 🔒 Worktree-Lock gegen Doppelarbeit (2026-08-25)
|
||||
|
||||
Aus der Workflow-Analyse desselben Tages (Dustin↔Hermes↔Claude, siehe
|
||||
|
||||
Reference in New Issue
Block a user