import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'services/iptv_provider.dart'; import 'screens/login_screen.dart'; import 'screens/home_screen.dart'; void main() { runApp(const XStreamTVApp()); } class XStreamTVApp extends StatelessWidget { const XStreamTVApp({super.key}); @override Widget build(BuildContext context) { return ChangeNotifierProvider( create: (_) => IPTVProvider(), child: MaterialApp( title: 'XStream TV', debugShowCheckedModeBanner: false, theme: ThemeData( brightness: Brightness.dark, primarySwatch: Colors.red, scaffoldBackgroundColor: Colors.black, appBarTheme: const AppBarTheme( backgroundColor: Colors.red, foregroundColor: Colors.white, ), ), home: const AuthWrapper(), ), ); } } class AuthWrapper extends StatefulWidget { const AuthWrapper({super.key}); @override State createState() => _AuthWrapperState(); } class _AuthWrapperState extends State { bool _isChecking = true; @override void initState() { super.initState(); _checkAuth(); } Future _checkAuth() async { final provider = context.read(); // Auto-login with embedded credentials await provider.login( 'http://kenmhzxn.fqvpnw.com', '55UDKCFH', '6ZNP8Y81', ); setState(() { _isChecking = false; }); } @override Widget build(BuildContext context) { if (_isChecking) { return const Scaffold( backgroundColor: Colors.black, body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Icon(Icons.live_tv, size: 80, color: Colors.red), SizedBox(height: 24), Text( 'XStream TV', style: TextStyle( fontSize: 32, fontWeight: FontWeight.bold, color: Colors.white, ), ), SizedBox(height: 24), CircularProgressIndicator(color: Colors.red), ], ), ), ); } final provider = context.watch(); if (provider.userInfo != null) { return const HomeScreen(); } return const LoginScreen(); } }