diff --git a/lib/main.dart b/lib/main.dart index 6a90799..cce5310 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,97 +1,20 @@ -import 'package:firebase_auth/firebase_auth.dart'; -import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:mone/core/services/navigation/navigation_service.dart'; -import 'package:mone/core/services/notification/fcm_service.dart'; -import 'package:mone/core/services/notification/notification_service.dart'; -import 'package:mone/core/services/notification/notification_settings_service.dart'; -import 'package:mone/core/services/theme/theme_service.dart'; -import 'package:mone/core/themes/app_theme.dart'; -import 'package:mone/data/enums/route_enum.dart'; -import 'package:mone/data/providers/user_provider.dart'; -import 'package:mone/firebase_options.dart'; -import 'package:mone/route.dart'; - -late ThemeService themeService; -late NotificationSettingsService notificationSettingsService; +import 'screens/home_screen.dart'; +import 'firebase_core.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); - - await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform); - await NotificationService.initializeLocalNotifications(debug: true); - await NotificationService.initializeRemoteNotifications(debug: true); - - // Initialize services - themeService = ThemeService(); - await themeService.loadTheme(); - - notificationSettingsService = NotificationSettingsService(); - await notificationSettingsService.loadNotificationSettings(); - - runApp(const ProviderScope(child: App())); + await Firebase.initializeApp(); + runApp(MyApp()); } -class App extends ConsumerStatefulWidget { - const App({super.key}); - - @override - ConsumerState createState() => _AppState(); -} - -class _AppState extends ConsumerState { - @override - void initState() { - super.initState(); - themeService.addListener(_onThemeChanged); - } - - @override - void dispose() { - themeService.removeListener(_onThemeChanged); - super.dispose(); - } - - void _onThemeChanged() { - setState(() {}); - } - +class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( - title: 'Mone', - navigatorKey: NavigationService.navigatorKey, - - // Theme configuration - theme: AppTheme.lightTheme, - darkTheme: AppTheme.darkTheme, - themeMode: themeService.themeMode, - - onGenerateRoute: (settings) => AppRouter.onGenerateRoute(settings, ref), - builder: (context, child) { - return StreamBuilder( - stream: ref.read(authRepositoryProvider).auth.authStateChanges(), - builder: (context, authSnapshot) { - if (authSnapshot.connectionState == ConnectionState.waiting) { - return const Scaffold( - body: Center(child: CircularProgressIndicator()), - ); - } - - WidgetsBinding.instance.addPostFrameCallback((_) { - if (authSnapshot.hasData) { - FcmTokenService().updateFcmToken(); - NavigationService.replaceWith(RouteEnum.transaction); - } else { - NavigationService.replaceWith(RouteEnum.login); - } - }); - - return child ?? const SizedBox(); - }, - ); - }, + title: 'Mone App', + theme: ThemeData(primarySwatch: Colors.blue), + home: HomeScreen(), ); } }