2import 'package:connect/core/localization/language_cubit.dart';
3import 'package:connect/core/services/notification_service.dart';
4import 'package:connect/features/account/screens/cubit/document_cubit/document_cubit.dart';
5import 'package:connect/features/account/screens/cubit/profile_cubit/load_profile_cubit_cubit.dart';
6import 'package:connect/features/elearning_v2/presentation/logic/cubit/elearning_v2_cubit.dart';
7import 'package:firebase_core/firebase_core.dart';
8import 'package:flutter/material.dart';
9import 'package:flutter/services.dart';
10import 'package:flutter_bloc/flutter_bloc.dart';
11import 'package:flutter_native_splash/flutter_native_splash.dart';
13import 'package:connect/app_view.dart';
14import 'package:flutter_screenutil/flutter_screenutil.dart';
16import 'core/router/router.dart';
17import '/core/router/auth_notifier.dart';
18import 'core/services/service_locator.dart' as servicelocator;
19import 'core/services/service_locator.dart';
20import 'core/utils/http_overriders.dart';
22import '/features/collections/presentation/logic/collection_requests_history_bloc/collection_requests_history_bloc.dart';
23import '/features/elearning/presentation/logic/cubit/elearning_cubit.dart';
24import '/features/main_menu/presentation/logic/cubit/banners_cubit.dart';
25import '/features/notifications/presentation/logic/notifications_cubit/notifications_cubit.dart';
26import '/features/collections/presentation/logic/create_collection_cubit/create_collection_cubit.dart';
27import '/features/collections/presentation/logic/update_collection_cubit/update_collection_cubit.dart';
28import 'features/authentication/presentation/logic/authentication_bloc/authentication_bloc.dart';
29import 'features/dashboard/presentation/logic/dashboard_cubit/dashboard_cubit.dart';
30import 'features/environmental_dashboard/presentation/logic/cubit/environmental_dashboar_cubit.dart';
31import 'features/collections/presentation/logic/proposed_times_cubit/proposed_times_cubit.dart';
32import 'features/settings/presentation/logic/faq_cubit/faq_cubit.dart';
33import 'features/settings/presentation/logic/theme_cubit/theme_cubit.dart';
34import 'package:flutter_dotenv/flutter_dotenv.dart';
41 String.fromEnvironment(
'ENVIRONMENT', defaultValue:
devEnvironment);
45 await ScreenUtil.ensureScreenSize();
50 final widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
51 await dotenv.load(fileName:
".env");
54 mergeWith: dotenv.env,
59 await servicelocator.init();
62 await Firebase.initializeApp();
66 await notificationService.init();
71 await SystemChrome.setPreferredOrientations([
72 DeviceOrientation.portraitUp,
73 DeviceOrientation.portraitDown,
78 FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
79 FlutterNativeSplash.remove();
98 Widget
build(BuildContext context) {
99 return MultiBlocProvider(
107 BlocProvider<ThemeModeBloc>(
113 BlocProvider<AuthenticationBloc>(
119 BlocProvider<DashboardCubit>(
122 BlocProvider<EnvironmentalDashboarCubit>(
125 BlocProvider<ProposedTimesCubit>(
128 BlocProvider<CreateCollectionCubit>(
131 BlocProvider<UpdateCollectionCubit>(
134 BlocProvider<CollectionRequestsHistoryBloc>(
137 BlocProvider<NotificationsCubit>(
140 BlocProvider<ElearningCubit>(
143 BlocProvider<BannersCubit>(
146 BlocProvider<FaqCubit>(
149 BlocProvider<LoadProfileCubitCubit>(
152 BlocProvider<DocumentCubit>(
155 BlocProvider<ElearningV2Cubit>(
158 BlocProvider<LanguageCubit>(
Future< void > main() async
Future< void > _configureSplashScreen(WidgetsBinding widgetsBinding) async
Future< void > _configureSystemSettings() async
const String testEnvironment
Future< void > _initializeApp() async
const String devEnvironment
RouterConfig< Object > router(AuthNotifier authNotifier)