loadIntraAds function

void loadIntraAds({
  1. int pos = 0,
  2. Function? onAdLoadedCallback,
})

Implementation

void loadIntraAds({int pos = 0, Function? onAdLoadedCallback}) {
  if (_settings == null) {
    if (onAdLoadedCallback != null) {
      onAdLoadedCallback();
    }
    return;
  }

  if (_settings?.adsSequence?.isEmpty ?? true) {
    if (onAdLoadedCallback != null) {
      onAdLoadedCallback();
    }
    return;
  }

  if ((_settings?.adsSequence?.length ?? 0) <= pos) {
    if (onAdLoadedCallback != null) {
      onAdLoadedCallback();
    }
    return;
  }

  if (_settings?.adSetting?.appVersionCode == appVersionCode) {
    if (onAdLoadedCallback != null) {
      onAdLoadedCallback();
    }
    return;
  }

  final isInterestial = ((_settings?.adSetting?.interestialAdsInterval ?? 0) >
          0 &&
      (_settings?.adSetting?.interestialAdsIntervalCount ?? 0) %
              (_settings?.adSetting?.interestialAdsInterval ?? 0) ==
          0 &&
      ((getInterestialAdTimeInterval() +
                  ((_settings?.adSetting?.interestialAdsTimingInterval ?? 0) *
                      1000)) <=
              DateTime.now().millisecondsSinceEpoch ||
          getInterestialAdTimeInterval() == 0));

  switch (_settings?.adsSequence?[pos]) {
    case _GOOGLEAD:
    case _ADMANAGERAD:
      if (((_settings?.googleAds?.interstitialInterval ?? 0) <= 0 &&
              isInterestial) ||
          ((_settings?.googleAds?.interstitialInterval ?? 0) > 0 &&
              ((_settings?.adSetting?.interestialAdsIntervalCount ?? 0) %
                      (_settings?.googleAds?.interstitialInterval ?? 0) ==
                  0))) {
        if ((_settings?.googleAds?.isInterstitialAds ?? true) &&
            (_settings?.googleAds?.interestialId ?? "").isNotEmpty) {
          if (_ADMANAGERAD == _settings?.adsSequence?[pos]) {
            _createAdManagerInterstitialAd(pos, onAdLoadedCallback);
            return;
          }
          _createInterstitialAd(pos, onAdLoadedCallback);
          return;
        }
      }
      loadIntraAds(pos: pos + 1, onAdLoadedCallback: onAdLoadedCallback);
      break;
    case _APPLOVINAD:
      if (isInterestial || (_settings?.appLovin?.isUnlimitedAds ?? false)) {
        if ((_settings?.appLovin?.isInterstitialAds ?? true) &&
            (_settings?.appLovin?.interestialId ?? "").isNotEmpty) {
          _createAppLovinInterstitialAd(pos, onAdLoadedCallback);
          return;
        }
      }
      loadIntraAds(pos: pos + 1, onAdLoadedCallback: onAdLoadedCallback);
      break;
    case _FACEBOOKAD:
      if (((_settings?.facebookAds?.interstitialInterval ?? 0) <= 0 &&
              isInterestial) ||
          ((_settings?.facebookAds?.interstitialInterval ?? 0) > 0 &&
              ((_settings?.adSetting?.interestialAdsIntervalCount ?? 0) %
                      (_settings?.facebookAds?.interstitialInterval ?? 0) ==
                  0))) {
        if ((_settings?.facebookAds?.isInterstitialAds ?? true) &&
            (_settings?.facebookAds?.interestialId ?? "").isNotEmpty) {
          _createFacebookInterstitialAd(pos, onAdLoadedCallback);
          return;
        }
      }
      loadIntraAds(pos: pos + 1, onAdLoadedCallback: onAdLoadedCallback);
      break;
    default:
      loadIntraAds(pos: pos + 1, onAdLoadedCallback: onAdLoadedCallback);
      break;
  }
}