Merge pull request #13 from R0m1k3/antigravity

Antigravity
This commit is contained in:
LogiFlow authored and GitHub committed 2025-12-06 00:34:17 +01:00
commit 42fc08ed97
4 files changed
+15 -5

No files matched your search

+2 -2
View File
@@ -26,8 +26,8 @@ COPY . .
# Re-run pub get after copying source to ensure lockfile consistency # Re-run pub get after copying source to ensure lockfile consistency
RUN flutter pub get RUN flutter pub get
# Build web application (CanvasKit renderer is now default) # Build web application (Debug mode for better error messages)
RUN flutter build web --release --verbose RUN flutter build web --debug --verbose
# ============================================ # ============================================
# Stage 2: Serve with dhttpd (Dart HTTP server) # Stage 2: Serve with dhttpd (Dart HTTP server)
@@ -38,6 +38,12 @@ final liveChannelsProvider = FutureProvider.autoDispose((ref) async {
return await service.getLiveChannels(); return await service.getLiveChannels();
}); });
/// Provider for live TV channels by playlist (family provider)
final liveChannelsByPlaylistProvider = FutureProvider.family.autoDispose((ref, PlaylistConfig playlist) async {
final service = ref.watch(xtreamServiceProvider(playlist));
return await service.getLiveChannels();
});
/// Provider for VOD items (movies) grouped by category /// Provider for VOD items (movies) grouped by category
final vodItemsProvider = FutureProvider.autoDispose((ref) async { final vodItemsProvider = FutureProvider.autoDispose((ref) async {
final service = ref.watch(activeXtreamServiceProvider); final service = ref.watch(activeXtreamServiceProvider);
@@ -28,7 +28,7 @@ class _DashboardScreenState extends ConsumerState<DashboardScreen> {
void initState() { void initState() {
super.initState(); super.initState();
_tabs = [ _tabs = [
const LiveTVTab(), LiveTVTab(playlist: widget.playlist),
MoviesTab(playlist: widget.playlist), MoviesTab(playlist: widget.playlist),
SeriesTab(playlist: widget.playlist), SeriesTab(playlist: widget.playlist),
const SettingsTab(), const SettingsTab(),
+6 -2
View File
@@ -4,10 +4,13 @@ import 'package:cached_network_image/cached_network_image.dart';
import '../providers/xtream_provider.dart'; import '../providers/xtream_provider.dart';
import '../screens/player_screen.dart'; import '../screens/player_screen.dart';
import '../../../core/models/iptv_models.dart'; import '../../../core/models/iptv_models.dart';
import '../../../core/models/playlist_config.dart';
/// Live TV tab with group-based pagination /// Live TV tab with group-based pagination
class LiveTVTab extends ConsumerStatefulWidget { class LiveTVTab extends ConsumerStatefulWidget {
const LiveTVTab({super.key}); final PlaylistConfig playlist;
const LiveTVTab({super.key, required this.playlist});
@override @override
ConsumerState<LiveTVTab> createState() => _LiveTVTabState(); ConsumerState<LiveTVTab> createState() => _LiveTVTabState();
@@ -26,7 +29,8 @@ class _LiveTVTabState extends ConsumerState<LiveTVTab>
Widget build(BuildContext context) { Widget build(BuildContext context) {
super.build(context); super.build(context);
final channelsAsync = ref.watch(liveChannelsProvider); final service = ref.watch(xtreamServiceProvider(widget.playlist));
final channelsAsync = ref.watch(liveChannelsByPlaylistProvider(widget.playlist));
return channelsAsync.when( return channelsAsync.when(
data: (groupedChannels) { data: (groupedChannels) {