import 'package:get_it/get_it.dart'; import 'package:mnemo_cards/admin/admin_api.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 '../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 { final _dio = await DioProvider().init(); getIt.registerSingleton(_dio); print('set dio'); getIt.registerLazySingleton( () => HttpRepository(getIt.get().dio), ); print('set repo'); getIt.registerLazySingleton( () => PacksApi(getIt.get().dio), ); print('set pack'); if (ADMIN_BUILD) { getIt.registerLazySingleton( () => AdminApi(getIt.get().dio)); print('set admin'); } getIt.registerLazySingleton( () => PackHolder(), ); print('set pack holder'); getIt.registerLazySingleton( () => PreviewPackHolder(), ); print('set preview'); getIt.registerLazySingleton( () => PackCacheManager(), ); print('set cache'); getIt.registerLazySingleton( () => ImagesHolder(), ); print('set images holder'); getIt.registerLazySingleton( () => PreviewPacksPoller( getIt.get(), getIt.get(), ), ); print('set preview poller'); getIt.registerLazySingleton( () => PackManager( getIt.get(), getIt.get(), getIt.get(), getIt.get(), getIt.get(), ), ); print('set pack manager'); getIt.registerLazySingleton( () => PackUpdater( getIt.get(), getIt.get(), getIt.get(), getIt.get(), ), ); print('set pack updater'); getIt.registerLazySingleton( () => UserManager( getIt.get(), ), ); print('set user manager'); getIt.registerLazySingleton( () => FavoriteCardsController(), ); print('set fav cards container'); getIt.registerLazySingleton( () => TestManager(getIt.get(), getIt.get()), ); print('set test manager'); getIt.registerLazySingleton( () => InAppPurchaseService(), ); print('set in app'); getIt.registerLazySingleton( () => PurchaseDetailsStreamSubscription(), ); print('set purchase'); try { await getIt.allReady(); print('injector all ready'); } catch (e, s) { print('injector error $e $s'); } }