import 'package:ambito/src/config/config.dart'; import 'package:ambito/src/consts/consts.dart'; import 'package:ambito/src/packages/ambito_api/base_api.dart'; import 'package:ambito/src/packages/ambito_db/base_db.dart'; import 'package:ambito/src/packages/ambito_notifier/notifier/theme_manager.dart'; import 'package:ambito/src/packages/ambito_sharedprefs/ambito_sharedprefs.dart'; import 'package:ambito/src/pages/actions/actions_categories_page.dart'; import 'package:ambito/src/pages/actions/actions_page.dart'; import 'package:ambito/src/pages/actions/actions_types_page.dart'; import 'package:ambito/src/pages/actions/create/action_create_page.dart'; import 'package:ambito/src/pages/actions/detail/action_detail_page.dart'; import 'package:ambito/src/pages/calendar/calendar_page.dart'; import 'package:ambito/src/pages/calendar/calendar_page_year.dart'; import 'package:ambito/src/pages/dashboard/dashboard_page.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_i18n/flutter_i18n.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:get/get.dart'; import 'package:provider/provider.dart'; import 'package:screen_breakpoints/screen_breakpoints.dart'; import 'package:syncfusion_localizations/syncfusion_localizations.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await AmbitoSharedPrefs.start(); await AmbitoIsarDB.init(); await Future.wait([ //BaseApi().getContent('tree_type'), BaseApi().getContent('measure'), BaseApi().getContent('measure_combination'), //BaseApi().getContent('organism'), //BaseApi().getContent('funding_program'), //BaseApi().getContent('location_requirements'), //BaseApi().getContent('reference_implementation'), //BaseApi().getContent('business'), //BaseApi().getContent('service_provider'), //BaseApi().getContent('service_provider_contact_person'), //BaseApi().getContent('material'), //BaseApi().getContent('source'), ]); await MeasureRepository().getCategoriesAndTypes(); await MeasureRepository().buildMeasureFilters(); //await MeasureRepository().downloadImages(); runApp(const Ambito()); } class Ambito extends StatelessWidget { const Ambito({super.key}); @override Widget build(BuildContext context) { return BreakpointConfigurator( configuration: myBreakpoints, child: ChangeNotifierProvider( create: (_) => ThemeManager(), child: Consumer( builder: (context, ThemeManager themeManager, child) { return GetMaterialApp( debugShowCheckedModeBanner: false, localizationsDelegates: [ FlutterI18nDelegate( translationLoader: FileTranslationLoader( fallbackFile: 'de', basePath: 'i18n', ), missingTranslationHandler: (key, locale) { if (kDebugMode) { print("--- Missing Key: $key, languageCode: $locale"); } }, ), GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, GlobalWidgetsLocalizations.delegate, SfGlobalLocalizations.delegate, ], title: 'AmBiTo', supportedLocales: supportedLocales, locale: ThemeManager().locale, builder: FlutterI18n.rootAppBuilder(), theme: ThemeManager().themeData?.lightThemeData, darkTheme: ThemeManager().themeData?.darkThemeData, themeMode: ThemeMode.light, initialRoute: '/massnahmen', getPages: [ GetPage( name: '/', page: () => const ActionsCategoriesPage(), ), GetPage( name: '/kalender', page: () => const CalendarPage(), ), GetPage( name: '/kalender/jahr', page: () => const CalendarPageYear(), ), GetPage( name: '/massnahmen', page: () => const ActionsCategoriesPage(), ), GetPage( name: '/massnahmendatenbank', page: () => const ActionsCategoriesPage(), ), GetPage( name: '/massnahmendatenbank/:kategorie', page: () => const ActionsTypesPage(), ), GetPage( name: '/massnahmendatenbank/:kategorie/:typ', page: () => const ActionsPage(), ), GetPage( name: '/dashboard', page: () => DashboardPage( businessId: prefs.getInt('currentUser') ?? 22, userId: 0, ), ), GetPage( name: '/dashboard/meine-massnahmen', page: () => DashboardPage( businessId: prefs.getInt('currentUser') ?? 22, userId: 0, ), ), GetPage( name: '/dashboard/urkunde', page: () => DashboardPage( businessId: prefs.getInt('currentUser') ?? 22, userId: 0, ), ), GetPage( name: '/dashboard/flaechen', page: () => DashboardPage( businessId: prefs.getInt('currentUser') ?? 22, userId: 0, ), ), GetPage( name: '/dashboard/stammdaten', page: () => DashboardPage( businessId: prefs.getInt('currentUser') ?? 22, userId: 0, ), ), GetPage( name: '/massnahme/neu', page: () => const ActionsCreatePage(), ), GetPage( name: '/massnahme/:id', page: () => const ActionDetailPage()) ], ); }), ), ); } }