Light theme default + yt-dlp search fallback

This commit is contained in:
iliasmouhcine
2026-08-22 13:02:32 +01:00
commit 7704cae4a0
282 changed files with 52324 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
# Correctif écran verrouillé lorsque le PiP est actif
Le log précédent montrait :
```text
[BACKGROUND] lifecycle=AppLifecycleState.hidden pip=true playing=true
[BACKGROUND] lifecycle=AppLifecycleState.paused pip=true playing=true
...
AudioTrack ... stop
```
Le problème était que le code interprétait `pip=true` comme
« la vidéo est toujours visible » et refusait donc d'activer le mode
audio-only.
Or, lors du verrouillage, Android peut conserver l'état PiP pendant que
l'écran s'éteint et que la Surface vidéo disparaît.
## Nouveau comportement
`MainActivity.kt` écoute maintenant directement :
- `ACTION_SCREEN_OFF`
- `ACTION_SCREEN_ON`
Quand `ACTION_SCREEN_OFF` arrive :
1. Flutter reçoit `screenInteractiveChanged=false`.
2. La piste vidéo est désactivée avec `VideoTrack.no()`, même si `pip=true`.
3. Le Player garde l'audio et la MediaSession.
4. Le foreground service reste actif.
Quand l'écran revient :
1. Flutter reçoit `screenInteractiveChanged=true`.
2. Il attend 450 ms que la Surface Android revienne.
3. `VideoTrack.auto()` restaure l'image.
## Test utile
Lance Android en debug, démarre une vidéo, passe éventuellement en PiP,
puis verrouille le téléphone.
Cherche ces lignes :
```text
[BACKGROUND] native screen interactive=false
[BACKGROUND] disable video track
[BACKGROUND] audio-only active
```
Si ensuite Android affiche malgré tout `AudioTrack ... stop`, cela voudra
dire que `media_kit` arrête son moteur audio indépendamment de la piste vidéo.
Dans ce cas, la prochaine étape sera de déplacer la lecture audio de fond
dans un Player séparé géré par le service Android.