passo_mobile_app/lib/main.dart

96 lines
3.4 KiB
Dart
Raw Normal View History

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
2023-04-05 00:54:24 +00:00
import 'package:hive_flutter/hive_flutter.dart';
import 'package:unit2/bloc/profile/profile_bloc.dart';
import 'package:unit2/bloc/user/user_bloc.dart';
2023-10-06 04:43:37 +00:00
import 'package:unit2/model/login_data/user_info/module.dart';
import 'package:unit2/model/login_data/user_info/module_object.dart';
import 'package:unit2/model/offline/offlane_modules.dart';
import 'package:unit2/model/offline/offline_profile.dart';
2023-01-23 05:46:09 +00:00
import 'package:unit2/utils/app_router.dart';
2023-01-23 03:02:59 +00:00
import 'package:unit2/utils/global_context.dart';
2023-04-05 00:54:24 +00:00
import 'package:path_provider/path_provider.dart' as path_provider;
2022-11-28 08:03:13 +00:00
import './utils/global.dart';
2023-04-05 00:54:24 +00:00
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
var appDirectory = await path_provider.getApplicationDocumentsDirectory();
2023-10-06 04:43:37 +00:00
2023-04-05 00:54:24 +00:00
await Hive.initFlutter(appDirectory.path);
2023-10-06 04:43:37 +00:00
Hive.registerAdapter<OfflineProfile>(OfflineProfileAdapter());
Hive.registerAdapter<Module>(ModuleAdapter());
Hive.registerAdapter<ModuleObject>(ModuleObjectAdapter());
Hive.registerAdapter<OfflineModules>(OfflineModulesAdapter());
2023-04-05 00:54:24 +00:00
CREDENTIALS = await Hive.openBox<dynamic>('credentials');
2023-04-13 08:45:19 +00:00
SOS = await Hive.openBox<dynamic>('soscontacts');
2023-10-06 04:43:37 +00:00
OFFLINE = await Hive.openBox<dynamic>('offline');
2023-04-05 00:54:24 +00:00
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
.then((_) {
runApp(MyApp());
});
}
2022-11-28 08:03:13 +00:00
// void main() => runApp(
// DevicePreview(
// enabled: !kReleaseMode,
// builder: (context) => const MyApp(), // Wrap your app
// ),
// );
class MyApp extends StatelessWidget {
2023-01-23 05:46:09 +00:00
AppRouter? _appRouter;
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
2023-01-23 05:46:09 +00:00
_appRouter = AppRouter();
2022-11-28 08:03:13 +00:00
final mediaQueryData =
MediaQueryData.fromWindow(WidgetsBinding.instance.window);
screenWidth = mediaQueryData.size.width;
screenHeight = mediaQueryData.size.height;
blockSizeHorizontal = screenWidth / 100;
blockSizeVertical = screenHeight / 100;
safeAreaHorizontal =
mediaQueryData.padding.left + mediaQueryData.padding.right;
safeAreaVertical =
mediaQueryData.padding.top + mediaQueryData.padding.bottom;
safeBlockHorizontal = (screenWidth - safeAreaHorizontal) / 100;
safeBlockVertical = (screenHeight - safeAreaVertical) / 100;
2023-01-23 05:46:09 +00:00
2023-01-23 03:02:59 +00:00
return MultiBlocProvider(
providers: [
BlocProvider(
2023-01-23 05:46:09 +00:00
create: (_) => UserBloc(),
2023-01-23 03:02:59 +00:00
),
2023-04-05 00:54:24 +00:00
BlocProvider(
create: (_) => ProfileBloc(),
),
2023-01-23 03:02:59 +00:00
],
2023-01-23 05:46:09 +00:00
child: MaterialApp(
navigatorKey: NavigationService.navigatorKey,
// useInheritedMediaQuery: true,
// locale: DevicePreview.locale(context),
// builder: DevicePreview.appBuilder,
2023-01-23 05:46:09 +00:00
// routeInformationParser: goRouter.routeInformationParser,
// routerDelegate: goRouter.routerDelegate,
// routeInformationProvider: goRouter.routeInformationProvider,
2023-04-05 00:54:24 +00:00
title: 'uniT2 - Universal Tracker and Tracer',
theme: ThemeData(
2023-02-27 06:26:27 +00:00
primarySwatch: Colors.red,
appBarTheme: const AppBarTheme(
systemOverlayStyle: SystemUiOverlayStyle(
statusBarBrightness: Brightness.dark,
statusBarColor: Colors.black),
),
fontFamily: 'LexendDeca',
),
debugShowCheckedModeBanner: false,
2023-01-23 05:46:09 +00:00
onGenerateRoute: _appRouter!.onGenerateRoute,
),
);
}
}