import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:kulinar_app/constants.dart'; import 'package:kulinar_app/views/main_view.dart'; import 'package:kulinar_app/util/notifications.dart'; import 'package:kulinar_app/models/data/recipe_data_class.dart'; import 'package:kulinar_app/models/data/shoplist_data_class.dart'; import 'package:kulinar_app/models/data/settings_data_class.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); const AndroidInitializationSettings initializationSettingsAndroid = AndroidInitializationSettings("@mipmap/notification_icon"); const InitializationSettings initializationSettings = InitializationSettings(android: initializationSettingsAndroid); await Notifications.flutterLocalNotificationsPlugin .initialize(initializationSettings); await RecipeData.load(); await SettingsData.load(); await ShoplistData.load(); runApp(const AppRoot()); } class AppRoot extends StatefulWidget { const AppRoot({Key? key}) : super(key: key); @override AppRootState createState() => AppRootState(); } class AppRootState extends State { @override Widget build(BuildContext context) { SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( statusBarColor: cPrimaryColor, statusBarIconBrightness: Brightness.light, )); return MaterialApp( debugShowCheckedModeBanner: false, localizationsDelegates: const [ AppLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [ Locale('de', ''), Locale('en', ''), Locale('ru', ''), ], theme: themeData(), title: "Kulinar", home: const MainView(), ); } ThemeData themeData() { return ThemeData( useMaterial3: false, brightness: Brightness.light, primarySwatch: cPrimarySwatchColor, textSelectionTheme: const TextSelectionThemeData( cursorColor: cIconColor, ), inputDecorationTheme: const InputDecorationTheme( hintStyle: cSearchTextStyle, ), appBarTheme: const AppBarTheme( actionsIconTheme: IconThemeData(color: cIconColor), titleTextStyle: cTitleStyle, toolbarTextStyle: cTitleStyle, iconTheme: IconThemeData(color: cIconColor), centerTitle: true, elevation: 10.0, ), buttonTheme: const ButtonThemeData( buttonColor: cPrimaryColor, ), ); } }