import 'package:app_links/app_links.dart'; import 'package:get_it/get_it.dart'; import 'package:mnemo_cards/features/packs/pack_cache_manager.dart'; import 'package:mnemo_cards/features/packs/packs_api.dart'; import 'package:mnemo_cards/features/purchase/google_purchase_handler.dart'; import 'package:mnemo_cards/features/purchase/yookassa_purchase_handler.dart'; import 'package:mnemo_cards/features/subscription/subscription_api.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/managers/user_state_holder.dart'; import '../features/deeplinks/deeplinks_manager_impl.dart'; import '../features/packs/images_holder.dart'; import '../features/packs/loading_packs_holder.dart'; import '../features/packs/pack_updater.dart'; import '../features/packs/preview_packs_poller.dart'; import '../features/purchase/in_app_purchase.dart'; import '../features/purchase/purchase_deeplink_handler.dart'; import '../features/purchase/purchase_manager.dart'; import '../features/subscription/subscription_deeplink_handler.dart'; import '../features/subscription/subscription_manager.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'); getIt.registerLazySingleton( () => SubscriptionApi(getIt.get().dio), ); getIt.registerLazySingleton( () => SubscriptionManager( getIt.get(), getIt.get(), ), ); print('set subscription'); getIt.registerLazySingleton( () => PackHolder(), ); print('set pack holder'); getIt.registerLazySingleton( () => LoadingPacksHolder(), ); print('set loading 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(), getIt.get(), ), ); print('set pack manager'); getIt.registerLazySingleton( () => PackUpdater( getIt.get(), getIt.get(), 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(), ); getIt.registerLazySingleton( () => PurchaseDetailsStreamSubscription(), ); getIt.registerLazySingleton( () => PurchaseManager( GooglePurchaseHandler(getIt.get()), YookassaPurchaseHandler(getIt.get()), ), ); getIt.registerLazySingleton( () => DeeplinkManager(AppLinks(), [ PurchaseDeeplinkHandler(getIt.get()), SubscriptionDeeplinkHandler(), ]), ); try { await getIt.allReady(); print('injector all ready'); } catch (e, s) { print('injector error $e $s'); } }