2023-01-19 15:10:13 +00:00
|
|
|
import 'package:logging/logging.dart';
|
|
|
|
import 'package:result_monad/result_monad.dart';
|
|
|
|
|
|
|
|
import 'data/interfaces/connections_repo_intf.dart';
|
|
|
|
import 'data/interfaces/groups_repo.intf.dart';
|
|
|
|
import 'data/interfaces/hashtag_repo_intf.dart';
|
|
|
|
import 'data/memory/memory_groups_repo.dart';
|
|
|
|
import 'data/objectbox/objectbox_cache.dart';
|
|
|
|
import 'data/objectbox/objectbox_connections_repo.dart';
|
|
|
|
import 'data/objectbox/objectbox_hashtag_repo.dart';
|
|
|
|
import 'globals.dart';
|
|
|
|
import 'models/TimelineIdentifiers.dart';
|
|
|
|
import 'services/auth_service.dart';
|
|
|
|
import 'services/connections_manager.dart';
|
2023-01-25 01:53:55 +00:00
|
|
|
import 'services/direct_message_service.dart';
|
2023-01-19 15:10:13 +00:00
|
|
|
import 'services/entry_manager_service.dart';
|
|
|
|
import 'services/gallery_service.dart';
|
|
|
|
import 'services/hashtag_service.dart';
|
2023-01-31 19:39:06 +00:00
|
|
|
import 'services/interactions_manager.dart';
|
2023-01-19 15:10:13 +00:00
|
|
|
import 'services/media_upload_attachment_helper.dart';
|
2023-01-29 12:17:49 +00:00
|
|
|
import 'services/network_status_service.dart';
|
2023-01-19 15:10:13 +00:00
|
|
|
import 'services/notifications_manager.dart';
|
|
|
|
import 'services/secrets_service.dart';
|
|
|
|
import 'services/setting_service.dart';
|
|
|
|
import 'services/timeline_manager.dart';
|
|
|
|
|
|
|
|
final _logger = Logger('DI_Init');
|
|
|
|
|
|
|
|
Future<void> dependencyInjectionInitialization() async {
|
2023-02-25 23:06:24 +00:00
|
|
|
final authService = AccountsService();
|
2023-01-19 15:10:13 +00:00
|
|
|
final secretsService = SecretsService();
|
|
|
|
final entryManagerService = EntryManagerService();
|
|
|
|
final timelineManager = TimelineManager();
|
|
|
|
final galleryService = GalleryService();
|
|
|
|
|
2023-01-20 04:23:56 +00:00
|
|
|
final service = SettingsService();
|
|
|
|
await service.initialize();
|
|
|
|
getIt.registerSingleton<SettingsService>(service);
|
2023-01-19 15:10:13 +00:00
|
|
|
|
|
|
|
final objectBoxCache = await ObjectBoxCache.create();
|
|
|
|
getIt.registerSingleton<ObjectBoxCache>(objectBoxCache);
|
|
|
|
getIt.registerSingleton<IConnectionsRepo>(ObjectBoxConnectionsRepo());
|
|
|
|
getIt.registerSingleton<IHashtagRepo>(ObjectBoxHashtagRepo());
|
|
|
|
getIt.registerSingleton<IGroupsRepo>(MemoryGroupsRepo());
|
|
|
|
getIt.registerLazySingleton<ConnectionsManager>(() => ConnectionsManager());
|
|
|
|
getIt.registerLazySingleton<HashtagService>(() => HashtagService());
|
|
|
|
getIt.registerSingleton(galleryService);
|
|
|
|
getIt.registerSingleton<EntryManagerService>(entryManagerService);
|
|
|
|
getIt.registerSingleton<SecretsService>(secretsService);
|
2023-02-25 23:06:24 +00:00
|
|
|
getIt.registerSingleton<AccountsService>(authService);
|
2023-01-19 15:10:13 +00:00
|
|
|
getIt.registerSingleton<TimelineManager>(timelineManager);
|
|
|
|
getIt.registerLazySingleton<MediaUploadAttachmentHelper>(
|
|
|
|
() => MediaUploadAttachmentHelper());
|
|
|
|
getIt.registerLazySingleton<NotificationsManager>(
|
|
|
|
() => NotificationsManager());
|
2023-01-25 01:53:55 +00:00
|
|
|
getIt.registerLazySingleton<DirectMessageService>(
|
|
|
|
() => DirectMessageService());
|
2023-01-31 19:39:06 +00:00
|
|
|
getIt.registerLazySingleton<NetworkStatusService>(
|
|
|
|
() => NetworkStatusService());
|
|
|
|
getIt.registerLazySingleton<InteractionsManager>(() => InteractionsManager());
|
2023-01-19 15:10:13 +00:00
|
|
|
|
|
|
|
await secretsService.initialize().andThenSuccessAsync((credentials) async {
|
|
|
|
if (credentials.isEmpty) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
final wasLoggedIn = await authService.getStoredLoginState();
|
|
|
|
if (wasLoggedIn) {
|
|
|
|
final result = await authService.signIn(credentials);
|
|
|
|
if (result.isSuccess) {
|
|
|
|
timelineManager.updateTimeline(
|
|
|
|
TimelineIdentifiers.home(), TimelineRefreshType.loadOlder);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
_logger.severe('Was not logged in');
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|