11import 'package:firebase_core/firebase_core.dart' ;
22import 'package:firebase_messaging/firebase_messaging.dart' ;
3- import 'firebase_options.dart' ;
43import 'package:flutter/material.dart' ;
54import 'package:flutter_bloc/flutter_bloc.dart' ;
65
6+ import 'sama_firebase_options.dart' ;
77import 'src/api/api.dart' ;
88import 'src/db/db_service.dart' ;
9+ import 'src/db/local/attachment_local_datasource.dart' ;
910import 'src/db/local/conversation_local_datasource.dart' ;
1011import 'src/db/local/message_local_datasource.dart' ;
1112import 'src/db/local/user_local_datasource.dart' ;
@@ -18,6 +19,7 @@ import 'src/repository/messages/messages_repository.dart';
1819import 'src/repository/user/user_repository.dart' ;
1920import 'src/shared/auth/bloc/auth_bloc.dart' ;
2021import 'src/shared/connection/bloc/connection_bloc.dart' ;
22+ import 'src/shared/messages_collector/messages_collector.dart' ;
2123import 'src/shared/push_notifications/bloc/push_notifications_bloc.dart' ;
2224import 'src/shared/secure_storage.dart' ;
2325import 'src/shared/sharing/bloc/sharing_intent_bloc.dart' ;
@@ -29,7 +31,7 @@ final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
2931Future <void > main () async {
3032 WidgetsFlutterBinding .ensureInitialized ();
3133 await Firebase .initializeApp (
32- options: DefaultFirebaseOptions .currentPlatform,
34+ options: await SamaFirebaseOptions .currentPlatform,
3335 );
3436 FirebaseMessaging .onBackgroundMessage (onBackgroundMessage);
3537 DatabaseService .instance.init ();
@@ -53,6 +55,7 @@ class _AppState extends State<App> {
5355 late final MessageLocalDatasource _messageLocalDatasource;
5456 late final AttachmentsRepository _attachmentsRepository;
5557 late final UserLocalDataSource _userLocalDataSource;
58+ late final AttachmentLocalDatasource _attachmentLocalDatasource;
5659
5760 @override
5861 void initState () {
@@ -61,26 +64,30 @@ class _AppState extends State<App> {
6164 _conversationLocalDatasource = ConversationLocalDatasource ();
6265 _messageLocalDatasource = MessageLocalDatasource ();
6366 _userLocalDataSource = UserLocalDataSource ();
67+ _attachmentLocalDatasource = AttachmentLocalDatasource ();
6468 _userRepository = UserRepository (localDataSource: _userLocalDataSource);
6569 _authenticationRepository = AuthenticationRepository (_userRepository);
6670 _messagesRepository = MessagesRepository (
6771 localDatasource: _messageLocalDatasource,
6872 userRepository: _userRepository);
69- _attachmentsRepository = AttachmentsRepository ();
73+ _attachmentsRepository = AttachmentsRepository (_attachmentLocalDatasource );
7074 _conversationRepository = ConversationRepository (
7175 localDatasource: _conversationLocalDatasource,
7276 userRepository: _userRepository,
7377 messagesRepository: _messagesRepository);
7478 _globalSearchRepository = GlobalSearchRepository (
7579 conversationRepository: _conversationRepository,
7680 userRepository: _userRepository);
81+ MessagesCollector .instance
82+ .init (_conversationRepository, _messagesRepository);
7783 }
7884
7985 @override
8086 void dispose () {
8187 _authenticationRepository.dispose ();
8288 _messagesRepository.dispose ();
8389 _conversationRepository.dispose ();
90+ MessagesCollector .instance.destroy ();
8491 DatabaseService .instance.close ();
8592 super .dispose ();
8693 }
@@ -113,7 +120,10 @@ class _AppState extends State<App> {
113120 create: (context) => AuthenticationBloc (
114121 authenticationRepository: _authenticationRepository),
115122 ),
116- BlocProvider (create: (context) => ConnectionBloc (), lazy: false ),
123+ BlocProvider (
124+ create: (context) => ConnectionBloc (
125+ authenticationRepository: _authenticationRepository),
126+ lazy: false ),
117127 BlocProvider (create: (context) => SharingIntentBloc ()),
118128 BlocProvider (
119129 create: (context) => PushNotificationsBloc (
0 commit comments