Console du navigateur, à deux playlists :
QuotaExceededError: Failed to execute 'setItem' on 'Storage':
Setting the value of 'xtream_cache_<id>_live_channels' exceeded the quota.
Les catalogues mis en cache (chaînes, films, séries), plusieurs Mo par
IPTV, saturent le stockage. L'erreur était avalée, mais le stockage
restait plein : toute écriture suivante échouait, dont celle de
localStorage['selected_playlist']. L'entrée gardait l'IPTV précédente,
AuthedHttp envoyait un X-Playlist-Id périmé, le serveur résolvait la même
playlist pour les deux, et Auto NBA n'avait qu'une règle commune —
désactivée d'un côté, désactivée de l'autre.
- persistSelectedPlaylist purge les catalogues et réessaye avant de
renoncer ; elle ne lève plus jamais, sans quoi le clic de sélection
n'aurait plus posé l'état du tout.
- _saveToLocalCache purge les catalogues des autres IPTV puis réessaye :
un catalogue se recharge depuis le serveur, le choix d'IPTV ne se
devine pas.
Non vérifié localement : le SDK Flutter de cette machine (3.10.3) est
antérieur au ^3.13.0 exigé par le projet.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Déconnecter Auto NBA sur une IPTV la déconnectait sur l'autre : les deux
tombaient en fait sur la même règle. L'en-tête X-Playlist-Id était absent,
donc le serveur repliait sur la playlist la plus récente, pour la lecture
comme pour l'écriture.
AuthedHttp lit localStorage['selected_playlist'], écrit jusqu'ici par le
seul ref.listen de playlistPersistenceProvider. Or ce listener n'existe
qu'une fois activeXtreamServiceProvider lu, c'est-à-dire une fois le
tableau de bord construit : le premier choix d'une session changeait
l'état avant que quiconque n'écoute, et n'était jamais écrit.
- persistSelectedPlaylist écrit l'entrée ; le listener l'appelle.
- selectPlaylist persiste puis pose l'état ; les deux écrans de
sélection (web et mobile) passent par lui.
Non vérifié localement : le SDK Flutter de cette machine (3.10.3) est
antérieur au ^3.13.0 exigé par le projet.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>