workouttest_app/lib/main.dart
2020-07-09 20:59:51 +02:00

116 lines
4.8 KiB
Dart

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<Locale> 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 ( locale != null && supportedLocale != null &&
supportedLocale.countryCode == locale.countryCode ) {
realSupportedLocale = supportedLocale;
}
});
if ( locale.countryCode != null && 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(),
);
}
}