import 'dart:io'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:path_provider/path_provider.dart'; import 'package:flutter/material.dart'; import 'package:ustest/Services/DatabaseService.dart'; import 'package:ustest/Services/LocalStorageService.dart'; import 'package:ustest/Services/UserService.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 'Services/ConsultationService.dart'; import 'Utilities/PlatformUtils.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.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)); var userService = new UserService(); getIt.registerSingleton(userService); getIt.registerSingleton(ConsultationService()); await userService.UpdateCurrentUserDetail(); runApp(const MyApp()); } catch (ex) { Logger.error("initialize exception:$ex"); } } class MyApp extends StatelessWidget { const MyApp(); @override Widget build(BuildContext context) { return MaterialApp( localizationsDelegates: [ AppLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: [ Locale('zh'), // Chinese Locale('en'), // English ], routes: { '/': (context) => MainScreen(), '/signin': (context) => const SignInScreen(), }, ); } }