65 lines
2.5 KiB
Dart
65 lines
2.5 KiB
Dart
import 'package:firebase_messaging/firebase_messaging.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:firebase_core/firebase_core.dart';
|
|
import 'package:flutter/services.dart';
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'package:injector/injector.dart';
|
|
import 'package:prosappco/app_view.dart';
|
|
import 'package:prosappco/blocs/authentication_bloc/authentication_bloc.dart';
|
|
import 'package:prosappco/blocs/my_user_bloc/my_user_bloc.dart';
|
|
import 'package:prosappco/blocs/notification_bloc/notification_bloc.dart';
|
|
import 'package:prosappco/blocs/professional_bloc/professional_bloc.dart';
|
|
import 'package:prosappco/blocs/professional_profile_bloc/professional_profile_bloc.dart';
|
|
import 'package:prosappco/blocs/profile_bloc/profile_bloc.dart';
|
|
import 'package:prosappco/dependency/app_di.dart';
|
|
import 'package:prosappco/local_notifications/local_notifications.dart';
|
|
import 'simple_bloc_observer.dart';
|
|
import 'firebase_options.dart';
|
|
|
|
void main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
await Firebase.initializeApp(
|
|
options: DefaultFirebaseOptions.currentPlatform,
|
|
); // Asegúrate de inicializar Firebase antes de cualquier otra operación relacionada con Firebase.
|
|
|
|
// Inicialización de notificaciones locales después de Firebase.
|
|
await LocalNotifications.initializeLocalNotifications();
|
|
|
|
FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);
|
|
|
|
Bloc.observer = SimpleBlocObserver();
|
|
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
|
AppDI().register();
|
|
|
|
runApp(
|
|
MultiBlocProvider(
|
|
providers: [
|
|
BlocProvider<AuthenticationBloc>(
|
|
create: (context) => Injector.appInstance.get<AuthenticationBloc>(),
|
|
),
|
|
BlocProvider<MyUserBloc>(
|
|
create: (context) => Injector.appInstance.get<MyUserBloc>(),
|
|
),
|
|
BlocProvider<ProfileBloc>(
|
|
create: (context) => Injector.appInstance.get<ProfileBloc>(),
|
|
),
|
|
BlocProvider<ProfessionalBloc>(
|
|
create: (context) => Injector.appInstance.get<ProfessionalBloc>(),
|
|
),
|
|
BlocProvider<ProfessionalProfileBloc>(
|
|
create: (context) =>
|
|
Injector.appInstance.get<ProfessionalProfileBloc>(),
|
|
),
|
|
BlocProvider<NotificationBloc>(
|
|
create: (context) => Injector.appInstance.get<NotificationBloc>(),
|
|
)
|
|
],
|
|
child: BlocBuilder<MyUserBloc, MyUserState>(
|
|
builder: (context, state) {
|
|
return const SafeArea(child: MyAppView());
|
|
},
|
|
),
|
|
),
|
|
);
|
|
}
|