53 lines
1.3 KiB
Dart
53 lines
1.3 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
import 'package:hive_ce_flutter/hive_flutter.dart';
|
|
import 'package:remever/app.dart';
|
|
import 'package:remever/env.dart';
|
|
import 'package:remever/i18n/strings.g.dart';
|
|
import 'package:remever/inject.dart';
|
|
import 'package:remever/router.dart';
|
|
import 'package:remever/services/warmup_service.dart';
|
|
|
|
void _onError(Object error, StackTrace trace) {
|
|
debugPrint('error ${error.toString()}');
|
|
}
|
|
|
|
void _flutterError(FlutterErrorDetails details) {
|
|
debugPrint('error ${details.context}');
|
|
}
|
|
|
|
bool _platformDispatcher(Object exception, StackTrace stackTrace) {
|
|
if ('$exception'.toLowerCase().contains('dio')) return true;
|
|
|
|
debugPrint('error ${exception.toString()}');
|
|
|
|
return true;
|
|
}
|
|
|
|
void main() {
|
|
runZonedGuarded(() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
|
|
await Hive.initFlutter();
|
|
await configureDependencies();
|
|
|
|
configureEnv();
|
|
|
|
if (!kIsWeb) {
|
|
await ScreenUtil.ensureScreenSize();
|
|
}
|
|
|
|
FlutterError.onError = _flutterError;
|
|
PlatformDispatcher.instance.onError = _platformDispatcher;
|
|
|
|
getIt.registerSingleton<AppRouter>(AppRouter());
|
|
|
|
await getIt<WarmupService>().firstStart();
|
|
|
|
runApp(TranslationProvider(child: const MyApp()));
|
|
}, _onError);
|
|
}
|