Multi-IPTV : déclarer l'IPTV active de façon synchrone dans AuthedHttp

AuthedHttp lisait l'IPTV dans localStorage, écrit par un écouteur
Riverpod enregistré tardivement : après un changement d'IPTV l'en-tête
X-Playlist-Id pouvait rester périmé. AuthedHttp.usePlaylist pose l'IPTV
en mémoire dès la sélection et à chaque construction du tableau de bord.

Auto NBA reçoit la playlist, recharge sa règle quand elle change et
nomme l'IPTV sur laquelle les matchs sont enregistrés.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MichaelandClaude Opus 5.5 committed 2026-10-19 18:16:35 +02:00
1 parent a6322b57b8
commit 6368fd6ee2
6 files changed
+58 -7

No files matched your search

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../../auth/providers/auth_provider.dart';
import '../../../core/api/authed_http.dart';
import '../../../core/models/playlist_config.dart';
import '../../../core/theme/app_colors.dart';
import '../../../core/widgets/glass_container.dart';
@@ -43,6 +44,8 @@ class _DashboardScreenState extends ConsumerState<DashboardScreen> {
@override
Widget build(BuildContext context) {
// Toutes les requêtes /api/* de ce tableau de bord visent cette IPTV.
AuthedHttp.usePlaylist(widget.playlist.id, json: widget.playlist.toJson());
return Scaffold(
backgroundColor: AppColors.background,
body: Stack(
@@ -3,6 +3,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import 'package:google_fonts/google_fonts.dart';
import '../../../core/services/playlist_api_service.dart';
import '../../../core/api/authed_http.dart';
import '../../../core/models/playlist_config.dart';
import '../../../core/theme/app_colors.dart';
import '../../../core/theme/app_theme.dart';
@@ -163,6 +164,10 @@ class PlaylistSelectionScreen extends ConsumerWidget {
child: _PlaylistCard(
playlist: playlist,
onTap: () {
AuthedHttp.usePlaylist(
playlist.id,
json: playlist.toJson(),
);
selectPlaylist(ref, playlist);
context.go('/dashboard');
},