import 'package:flutter/material.dart'; import 'package:mymuseum_visitapp/Screens/Home/home.dart'; import 'package:provider/provider.dart'; import 'Helpers/DatabaseHelper.dart'; import 'Models/visitContext.dart'; import 'app_context.dart'; import 'constants.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); String initialRoute; VisitAppContext? localContext = await DatabaseHelper.instance.getData(DatabaseTableType.main); if(localContext != null) { print("we've got an local db !"); print(localContext); } else { localContext = VisitAppContext(language: "FR", id: "UserId_Init"); DatabaseHelper.instance.insert(DatabaseTableType.main, localContext.toMap()); print("NO LOCAL DB !"); } initialRoute = '/home'; final MyApp myApp = MyApp( initialRoute: initialRoute, visitAppContext: localContext, ); runApp(myApp); } class MyApp extends StatefulWidget { String initialRoute = ""; VisitAppContext visitAppContext; MyApp({Key? key, required this.initialRoute, required this.visitAppContext}) : super(key: key); @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State { @override Widget build(BuildContext context) { return ChangeNotifierProvider( create: (_) => AppContext(widget.visitAppContext), child: MaterialApp( debugShowCheckedModeBanner: false, title: 'MyVisit App Demo', initialRoute: widget.initialRoute, localizationsDelegates: const [ AppLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: [ const Locale('en', ''), const Locale('fr', ''), ], theme: ThemeData( primarySwatch: Colors.blue, scaffoldBackgroundColor: kBackgroundColor, //fontFamily: "Vollkorn", textTheme: const TextTheme(bodyText1: TextStyle(color: kTestSecondColor)), visualDensity: VisualDensity.adaptivePlatformDensity, ), routes: { '/home': (context) => const HomePage(), } ), ); } }