import 'dart:io'; import 'package:path_provider/path_provider.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:ustest/ApplyConsultationScreen.dart'; import 'package:ustest/Services/DatabaseService.dart'; import 'package:ustest/Services/LocalStorageService.dart'; import 'package:ustest/Services/UserService.dart'; import 'package:ustest/Services/ApiTestService.dart'; import 'package:ustest/SignInScreen.dart'; import 'package:ustest/MainScreen.dart'; import 'package:get_it/get_it.dart'; import 'package:colorize_logger/colorize_logger.dart'; import 'package:ustest/meeting.dart'; import 'Services/ConsultationService.dart'; import 'Utilities/PlatformUtils.dart'; import 'models/meeting.dart'; import 'package:load/load.dart'; void main() { // setup(); // runApp(const MyApp()); initialize(); // runApp( // LoadingProvider( // themeData: LoadingThemeData(), // loadingWidgetBuilder: (ctx, data) { // return Center( // child: SizedBox( // width: 30, // height: 30, // child: Container( // child: CupertinoActivityIndicator(), // color: Colors.blue, // ), // ), // ); // }, // child: MyApp(), // ), // ); } Future initialize() async { try { final getIt = GetIt.instance; var isWeb = PlatformUtils.isWeb; if (isWeb) { Logger.client = ColorizeLoggerClient(); Logger.info('The first log in web'); } else { if (Logger.isReleaseMode()) { /// use file Directory directory = await getApplicationDocumentsDirectory(); final currentDate = DateTime.now(); final fileName = '${currentDate.year}-${currentDate.month}-${currentDate.day}-logs.txt'; Logger.client = FileLoggerClient(filePath: '${directory.path}/$fileName'); } else { Logger.client = ColorizeLoggerClient(); //for debug } Logger.info('The first log in app'); /// use sentry // await SentryFlutter.init( // (options) { // options.dsn = 'https://example@sentry.io/add-your-dsn-here'; // }, // ); // Logger.client = SentryLoggerClient(); var dbServcie = new DatabaseService(); getIt.registerSingleton(dbServcie); await dbServcie.initialize(); } getIt.registerSingleton(LocalStorageService(isWeb)); getIt.registerSingleton(ApiTestService()); getIt.registerSingleton(UserService()); getIt.registerSingleton(ConsultationService()); runApp(const MyApp()); } catch (ex) { Logger.error("initialize exception:$ex"); } } class MyApp extends StatelessWidget { const MyApp(); @override Widget build(BuildContext context) { return ChangeNotifierProvider( create: (context) => MeetingModel(), child: MaterialApp( routes: { '/': (context) => MainScreen(), '/signin': (context) => const SignInScreen(), '/meeting': (context) => MeetingPage(), '/applyconsultation': (context) => const ApplyConsultationScreen() }, )); } }