import 'package:flutter/material.dart'; import 'package:permission_handler/permission_handler.dart'; import 'screens/channel_list_screen.dart'; import 'screens/login_screen.dart'; import 'services/auth_service.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Permission.microphone.request(); runApp(const WalkieTalkieApp()); } class WalkieTalkieApp extends StatelessWidget { const WalkieTalkieApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, title: 'WalkieTalkie', theme: ThemeData( brightness: Brightness.dark, colorScheme: ColorScheme.dark( primary: const Color(0xFF00C853), secondary: const Color(0xFF1DE9B6), surface: const Color(0xFF1C1C1E), ), scaffoldBackgroundColor: Colors.black, useMaterial3: true, ), home: const _Splash(), ); } } class _Splash extends StatefulWidget { const _Splash(); @override State<_Splash> createState() => _SplashState(); } class _SplashState extends State<_Splash> { @override void initState() { super.initState(); _route(); } Future _route() async { final loggedIn = await AuthService().isLoggedIn(); if (!mounted) return; Navigator.pushReplacement( context, MaterialPageRoute( builder: (_) => loggedIn ? const ChannelListScreen() : const LoginScreen(), ), ); } @override Widget build(BuildContext context) { return const Scaffold( backgroundColor: Colors.black, body: Center( child: CircularProgressIndicator( color: Color(0xFF00C853), strokeWidth: 2, ), ), ); } }