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_sharedprefs/ambito_sharedprefs.dart'; import 'package:ambito/src/packages/ambito_theme/ambito_theme.dart'; import 'package:ambito/src/packages/ambito_theme/ambito_theme_large.dart'; import 'package:ambito/src/packages/ambito_theme/ambito_theme_medium.dart'; import 'package:ambito/src/packages/ambito_theme/ambito_theme_small.dart'; import 'package:ambito/src/pages/actions/actions_page.dart'; import 'package:ambito/src/pages/actions/actions_pre_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_dotenv/flutter_dotenv.dart'; import 'package:flutter_i18n/flutter_i18n.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:get/get.dart'; import 'package:isar/isar.dart'; import 'package:logger/logger.dart'; import 'package:screen_breakpoints/screen_breakpoints.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:syncfusion_localizations/syncfusion_localizations.dart'; final Logger logger = Logger( printer: PrettyPrinter(), ); const BreakpointConfiguration myBreakpoints = BreakpointConfiguration( xs: Breakpoint( breakpoint: 0, width: double.infinity, margin: 16, padding: 0, columns: 4, ), sm: Breakpoint( breakpoint: 320, width: double.infinity, margin: 32, padding: 0, columns: 8, ), md: Breakpoint( breakpoint: 905, width: 840, margin: null, padding: 0, columns: 12, ), lg: Breakpoint( breakpoint: 1240, width: 1152, margin: 0, padding: 0, columns: 12, ), xl: Breakpoint( breakpoint: 1440, width: 1152, margin: null, padding: 0, columns: 12, ), xxl: null, ); late Isar isar; late SharedPreferences prefs; AmbitoTheme largeTheme = AmbitoThemeLarge(); AmbitoTheme mediumTheme = AmbitoThemeMedium(); AmbitoTheme smallTheme = AmbitoThemeSmall(); void main() async { WidgetsFlutterBinding.ensureInitialized(); await dotenv.load(fileName: '.env'); 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().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: 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: const [Locale('de')], locale: const Locale('de'), builder: FlutterI18n.rootAppBuilder(), theme: (getTheme(context)).lightThemeData, darkTheme: (getTheme(context)).darkThemeData, themeMode: ThemeMode.light, initialRoute: '/massnahmen', getPages: [ GetPage( name: '/', page: () => const ActionsPrePage(), ), GetPage( name: '/kalender', page: () => const CalendarPage(), ), GetPage( name: '/kalender/jahr', page: () => const CalendarPageYear(), ), GetPage( name: '/massnahmen', page: () => const ActionsPrePage(), ), GetPage( name: '/massnahmendatenbank', 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/:id', page: () => const ActionDetailPage()) ], ), ); } }