import 'package:aitrainer_app/view/account.dart'; import 'package:aitrainer_app/view/customer_bodytype_page.dart'; import 'package:aitrainer_app/view/customer_fitness_page.dart'; import 'package:aitrainer_app/view/customer_goal_page.dart'; import 'package:aitrainer_app/view/customer_modify_page.dart'; import 'package:aitrainer_app/view/customer_new_page.dart'; import 'package:aitrainer_app/view/customer_welcome_page.dart'; import 'package:aitrainer_app/view/gdpr.dart'; import 'package:aitrainer_app/view/login.dart'; import 'package:aitrainer_app/view/exercise_new_page.dart'; import 'package:aitrainer_app/view/exercise_type_modify_page.dart'; import 'package:aitrainer_app/view/exercise_type_new_page.dart'; import 'package:aitrainer_app/view/menu_page.dart'; import 'package:aitrainer_app/view/registration.dart'; import 'package:aitrainer_app/view/settings.dart'; import 'package:aitrainer_app/viewmodel/customer_changing_view_model.dart'; import 'package:aitrainer_app/viewmodel/exercise_changing_view_model.dart'; import 'package:aitrainer_app/widgets/home.dart'; import 'package:aitrainer_app/widgets/loading.dart'; import 'package:flutter/material.dart'; import 'package:aitrainer_app/view/customer_list_page.dart'; import 'package:aitrainer_app/view/exercise_type_list_page.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:provider/provider.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:aitrainer_app/localization/app_localization.dart'; void main() { runApp( MultiProvider( // Initialize the model in the builder. That way, Provider // can own Models's lifecycle, making sure to call `dispose` // when not needed anymore. providers: [ ChangeNotifierProvider(create: (context) => ExerciseChangingViewModel(null)), ChangeNotifierProvider(create: (context) => CustomerChangingViewModel(null)), ], child: AitrainerApp(), ), ); } class AitrainerApp extends StatelessWidget { @override Widget build(BuildContext context) { SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); return MaterialApp( localizationsDelegates: [ // ... app-specific localization delegate[s] here AppLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: [ const Locale('en', "US"), // English const Locale('hu', "HU"), // Hungarian // ... other locales the app supports ], localeResolutionCallback: (Locale locale, Iterable supportedLocales) { //myLocale = deviceLocale ; // here you make your app language similar to device language , // but you should check whether the localization is supported by your app Locale realSupportedLocale = Locale('en', "US"); supportedLocales.forEach((supportedLocale) { if ( supportedLocale.countryCode == locale.countryCode ) { realSupportedLocale = supportedLocale; } }); if ( realSupportedLocale.countryCode != locale.countryCode ) { print ("Locale " + locale.countryCode + " not supported on this device :("); } return realSupportedLocale; }, routes: { 'home': (context) => AitrainerHome(), 'loading': (context) => LoadingScreenMain(), 'customersPage': (context) => CustomerListPage(), 'customerNewPage': (context) => CustomerNewPage(), 'customerModifyPage': (context) => CustomerModifyPage(), 'customerGoalPage': (context) => CustomerGoalPage(), 'customerFitnessPage': (context) => CustomerFitnessPage(), 'customerBodyTypePage': (context) => CustomerBodyTypePage(), 'customerWelcomePage': (context) => CustomerWelcomePage(), 'exerciseTypeListPage': (context) => ExerciseTypeListPage(), 'exerciseTypeNewPage': (context) => ExerciseTypeNewPage(), 'exerciseTypeModifyPage': (context) => ExerciseTypeModifyPage(), 'exerciseNewPage': (context) => ExerciseNewPage(), 'login': (context) => LoginPage(), 'registration': (context) => RegistrationPage(), 'gdpr': (context) => Gdpr(), 'menu_page': (context) => MenuPage(), 'account': (context) => AccountPage(), 'settings': (context) => SettingsPage(), }, initialRoute: 'loading', title: 'Aitrainer', theme: ThemeData( brightness: Brightness.light, //primarySwatch: Colors.transparent, fontFamily: 'Arial', textTheme: TextTheme( bodyText1: TextStyle(fontSize: 14.0), ) ), home: LoadingScreenMain(), ); } }