Neda/Front/lib/main.dart
2026-03-05 23:08:50 +03:30

76 lines
1.7 KiB
Dart

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<void> _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,
),
),
);
}
}