diff --git a/lib/features/iptv/screens/series_detail_screen.dart b/lib/features/iptv/screens/series_detail_screen.dart index 8126d36..2a1aeb9 100644 --- a/lib/features/iptv/screens/series_detail_screen.dart +++ b/lib/features/iptv/screens/series_detail_screen.dart @@ -76,6 +76,10 @@ class _SeriesDetailScreenState extends ConsumerState { appBar: AppBar( title: Text(widget.series.name), backgroundColor: Colors.black87, + leading: IconButton( + icon: const Icon(Icons.arrow_back, color: Colors.white), + onPressed: () => Navigator.pop(context), + ), ), backgroundColor: Colors.grey.shade900, body: _isLoading diff --git a/lib/features/iptv/widgets/movies_tab.dart b/lib/features/iptv/widgets/movies_tab.dart index 94fd4b1..3eefb66 100644 --- a/lib/features/iptv/widgets/movies_tab.dart +++ b/lib/features/iptv/widgets/movies_tab.dart @@ -292,7 +292,7 @@ class _MoviesTabState extends ConsumerState { return MediaCard( title: movie.name, imageUrl: movie.streamIcon, - imageUrl: movie.streamIcon, + subtitle: movie.rating != null ? '${_formatRating(movie.rating)} ★' : null, rating: _formatRating(movie.rating), isWatched: isWatched, diff --git a/lib/features/iptv/widgets/series_tab.dart b/lib/features/iptv/widgets/series_tab.dart index 2504c9b..e91beab 100644 --- a/lib/features/iptv/widgets/series_tab.dart +++ b/lib/features/iptv/widgets/series_tab.dart @@ -282,7 +282,7 @@ class _SeriesTabState extends ConsumerState { return MediaCard( title: serie.name, imageUrl: serie.cover, - imageUrl: serie.cover, + subtitle: serie.rating != null ? '${_formatRating(serie.rating)} ★' : null, rating: _formatRating(serie.rating), placeholderIcon: Icons.tv, diff --git a/lib/mobile/features/iptv/screens/mobile_series_detail_screen.dart b/lib/mobile/features/iptv/screens/mobile_series_detail_screen.dart index 059fea0..3c234dc 100644 --- a/lib/mobile/features/iptv/screens/mobile_series_detail_screen.dart +++ b/lib/mobile/features/iptv/screens/mobile_series_detail_screen.dart @@ -24,6 +24,30 @@ class MobileSeriesDetailScreen extends ConsumerStatefulWidget { } class _MobileSeriesDetailScreenState extends ConsumerState { + SeriesInfo? _seriesInfo; + bool _isLoading = true; + String? _error; + int _selectedSeason = 1; + + @override + void initState() { + super.initState(); + _loadSeriesInfo(); + } + + String? _formatRating(String? rating) { + if (rating == null || rating.isEmpty) return null; + final value = double.tryParse(rating); + if (value != null) { + return value.toStringAsFixed(1); + } + return rating; + } + + Future _loadSeriesInfo() async { + try { + setState(() { + _isLoading = true; _error = null; }); diff --git a/lib/mobile/features/iptv/widgets/mobile_movies_tab.dart b/lib/mobile/features/iptv/widgets/mobile_movies_tab.dart index 76cefae..5cab4d8 100644 --- a/lib/mobile/features/iptv/widgets/mobile_movies_tab.dart +++ b/lib/mobile/features/iptv/widgets/mobile_movies_tab.dart @@ -252,7 +252,7 @@ class _MobileMoviesTabState extends ConsumerState { return MediaCard( title: movie.name, imageUrl: movie.streamIcon, - imageUrl: movie.streamIcon, + subtitle: movie.rating != null ? '${_formatRating(movie.rating)} ★' : null, rating: _formatRating(movie.rating), isWatched: isWatched, diff --git a/lib/mobile/features/iptv/widgets/mobile_series_tab.dart b/lib/mobile/features/iptv/widgets/mobile_series_tab.dart index 809dd07..9c91206 100644 --- a/lib/mobile/features/iptv/widgets/mobile_series_tab.dart +++ b/lib/mobile/features/iptv/widgets/mobile_series_tab.dart @@ -252,7 +252,7 @@ class _MobileSeriesTabState extends ConsumerState { return MediaCard( title: series.name, imageUrl: series.cover, - imageUrl: series.cover, + subtitle: series.rating != null ? '${_formatRating(series.rating)} ★' : null, rating: _formatRating(series.rating), placeholderIcon: Icons.tv,