setupToolPurchasesDI function

Future<void> setupToolPurchasesDI(
  1. GetIt getIt, {
  2. required ToolPurchasesLocalization localization(),
  3. bool isFakeApi = false,
})

Implementation

Future<void> setupToolPurchasesDI(
  GetIt getIt, {
  required ToolPurchasesLocalization Function() localization,
  bool isFakeApi = false,
}) async {
  //data
  getIt.registerSingletonWithDependencies<StoreStorageProvider>(
    () => StoreStorageProviderImpl(getIt.get()),
    dependsOn: [PreferencesProvider],
  );
  getIt.registerLazySingleton<PurchasesErrorHandlerProvider>(
      () => PurchasesErrorHandlerProvider(localization: localization));

  //domain
  getIt.registerSingletonWithDependencies<PurchasesRepository>(
    () {
      final appInfoRepository = getIt.get<AppInfoRepository>();
      return isFakeApi
          ? FakePurchasesRepositoryImpl()
          : (!IOSStoreSupport && appInfoRepository.isAndroid) ||
                  appInfoRepository.isMobile
              ? InAppPurchasesRepositoryImpl(
                  inAppPurchase: InAppPurchase.instance,
                  storeStorageProvider: getIt.get(),
                )
              : StubPurchasesRepositoryImpl();
    },
    dependsOn: [StoreStorageProvider],
  );
}