import 'package:base_project/resources/app_colors.dart'; import 'package:base_project/routes/route_names.dart'; import 'package:base_project/view_model/auth/auth_view_model.dart'; import 'package:base_project/view_model/profile/profile_view_model.dart'; import 'package:base_project/view_model/system_params/system_params_view_model.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; import 'core/providers/dynamic_theme_provider.dart'; import 'core/providers/theme_provider.dart'; import 'core/theme/app_theme.dart'; import 'routes/app_routes.dart'; import 'utils/managers/user_manager.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await UserManager().initialize(); SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); runApp(MultiProvider( providers: [ ChangeNotifierProvider(create: (context) => AuthViewModel()), ChangeNotifierProvider(create: (context) => ProfileViewModel()), ChangeNotifierProvider(create: (context) => SystemParamsViewModel()), ChangeNotifierProvider(create: (context) => ThemeProvider()), ChangeNotifierProvider(create: (context) => DynamicThemeProvider()), ], child: const MyApp(), )); } final GlobalKey navigatorKey = GlobalKey(); class MyApp extends StatelessWidget { const MyApp({super.key}); // @override // Widget build(BuildContext context) { // // Set the navigation bar color when the app starts // SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( // systemNavigationBarColor: // AppColors.primary, // Set your desired color here // systemNavigationBarIconBrightness: Brightness.light, // Icons color // )); // return MaterialApp( // theme: ThemeData( // primaryColor: AppColors.primary, // visualDensity: VisualDensity.adaptivePlatformDensity, // useMaterial3: false, // scaffoldBackgroundColor: Colors.grey[200], // drawerTheme: DrawerThemeData(backgroundColor: Colors.grey[200]), // iconTheme: const IconThemeData(color: AppColors.primary), // appBarTheme: const AppBarTheme( // scrolledUnderElevation: 0, backgroundColor: AppColors.primary)), // title: 'Base Project', // debugShowCheckedModeBanner: false, // // home: const SysParameter(), // initialRoute: RouteNames.splashView, // onGenerateRoute: AppRoutes.generateRoutes, // ); // } // } @override Widget build(BuildContext context) { return Consumer2( builder: (context, themeProvider, dynamicThemeProvider, child) { final theme = AppTheme.getTheme(context); // Set system UI overlay style SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle( statusBarColor: Colors.transparent, statusBarIconBrightness: themeProvider.isDarkMode ? Brightness.light : Brightness.dark, systemNavigationBarColor: theme.colorScheme.surface, systemNavigationBarIconBrightness: themeProvider.isDarkMode ? Brightness.light : Brightness.dark, )); return MaterialApp( title: 'AuthSec Flutter', debugShowCheckedModeBanner: false, theme: AppTheme.getLightTheme(context), darkTheme: AppTheme.getDarkTheme(context), themeMode: themeProvider.isDarkMode ? ThemeMode.dark : ThemeMode.light, initialRoute: RouteNames.splashView, onGenerateRoute: AppRoutes.generateRoutes, navigatorKey: navigatorKey, builder: (context, child) { return MediaQuery( data: MediaQuery.of(context).copyWith( textScaler: MediaQuery.of(context).textScaler.clamp( minScaleFactor: 0.8, maxScaleFactor: 1.4, ), ), child: child!, ); }, ); }, ); } }