diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..b4fc1af --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,7 @@ +{ + "permissions": { + "allow": [ + "Bash(dart analyze:*)" + ] + } +} diff --git a/lib/features/iptv/widgets/recordings_tab.dart b/lib/features/iptv/widgets/recordings_tab.dart index 10ba24c..8984ad3 100644 --- a/lib/features/iptv/widgets/recordings_tab.dart +++ b/lib/features/iptv/widgets/recordings_tab.dart @@ -7,7 +7,6 @@ import '../../../core/models/iptv_models.dart'; import '../../../core/models/playlist_config.dart'; import '../providers/xtream_provider.dart'; import '../providers/settings_provider.dart'; -import '../screens/player_screen.dart'; // ═══════════════════════════════════════════════════════════════════════════ // ENTRÉE — Onglet "Enregistrements" @@ -50,7 +49,7 @@ class _RecordingsTabState extends State { ), ), Expanded( - child: _RecordingsListView(playlist: widget.playlist), + child: const _RecordingsListView(), ), ], ); @@ -722,8 +721,7 @@ class _ProgrammeCard extends StatelessWidget { // ═══════════════════════════════════════════════════════════════════════════ class _RecordingsListView extends StatefulWidget { - final PlaylistConfig playlist; - const _RecordingsListView({required this.playlist}); + const _RecordingsListView(); @override State<_RecordingsListView> createState() => _RecordingsListViewState(); } @@ -779,31 +777,6 @@ class _RecordingsListViewState extends State<_RecordingsListView> { _fetchRecordings(); } - Future _playRecording(BuildContext context, Map rec) async { - final streamUrl = rec['stream_url'] as String? ?? ''; - final title = rec['title'] as String? ?? 'Enregistrement'; - - if (streamUrl.isEmpty) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('URL du flux indisponible')), - ); - return; - } - - if (!mounted) return; - Navigator.of(context).push( - MaterialPageRoute( - builder: (ctx) => PlayerScreen( - streamId: streamUrl, - title: title, - playlist: widget.playlist, - streamType: StreamType.vod, - containerExtension: 'ts', - ), - ), - ); - } - Future _showLogs(String id, String title) async { try { final response = await http.get(Uri.parse('/api/recordings/logs/$id')); @@ -1016,16 +989,6 @@ class _RecordingsListViewState extends State<_RecordingsListView> { rec['title'] ?? '', ), ), - if (status == 'completed') - IconButton( - icon: const Icon( - Icons.play_circle_outline, - color: Colors.greenAccent, - size: 20, - ), - tooltip: 'Lecture', - onPressed: () => _playRecording(context, rec), - ), IconButton( icon: const Icon( Icons.description_outlined,