import 'dart:developer'; import 'package:get_it/get_it.dart'; import 'package:mnemo_cards/admin/admin_api.dart'; import 'package:mnemo_cards/di/locator.dart'; import 'package:mnemo_cards/features/packs/pack_cache_manager.dart'; import 'package:mnemo_cards/features/packs/packs_api.dart'; import 'package:mnemo_cards/flags.dart'; import 'package:mnemo_cards/managers/favorite_cards.dart'; import 'package:mnemo_cards/managers/repository/dio_provider.dart'; import 'package:mnemo_cards/managers/repository/http_repository.dart'; import 'package:mnemo_cards_common/mnemo_cards_common.dart'; import '../features/packs/images_holder.dart'; import '../features/packs/pack_updater.dart'; import '../features/packs/preview_packs_poller.dart'; import '../features/purchase/in_app_purchase.dart'; import '../features/tests/test_manager.dart'; import '../features/packs/pack_holder.dart'; import '../features/packs/pack_manager.dart'; import '../features/packs/preview_pack_holder.dart'; import '../managers/user_manager.dart'; GetIt getIt = GetIt.I; Future setInjections() async { getIt.registerSingletonAsync(() => DioProvider().init()); getIt.registerLazySingleton( () => HttpRepository(getIt.get().dio), ); getIt.registerLazySingleton( () => PacksApi(getIt.get().dio), ); if (ADMIN_BUILD) getIt.registerLazySingleton( () => AdminApi(getIt.get().dio), ); getIt.registerLazySingleton( () => PackHolder(), ); getIt.registerLazySingleton( () => PreviewPackHolder(), ); getIt.registerLazySingleton( () => PackCacheManager(), ); getIt.registerLazySingleton( () => ImagesHolder(), ); getIt.registerLazySingleton( () => PreviewPacksPoller( getIt.get(), getIt.get(), ), ); getIt.registerLazySingleton( () => PackManager( getIt.get(), getIt.get(), getIt.get(), getIt.get(), getIt.get(), ), ); getIt.registerLazySingleton( () => PackUpdater( getIt.get(), getIt.get(), getIt.get(), getIt.get(), ), ); getIt.registerLazySingleton( () => UserManager( getIt.get(), ), ); getIt.registerLazySingleton( () => FavoriteCardsController(), ); getIt.registerLazySingleton( () => TestManager(getIt.get(), getIt.get()), ); getIt.registerLazySingleton( () => InAppPurchaseService(), ); getIt.registerLazySingleton( () => PurchaseDetailsStreamSubscription(), ); }