loadRewardAds function

void loadRewardAds({
  1. int pos = 0,
  2. int retry = 0,
  3. Function? onAdLoadedCallback,
  4. Function? onAdFailedCallback,
})

Implementation

void loadRewardAds({int pos = 0,
  int retry = 0,
  Function? onAdLoadedCallback,
  Function? onAdFailedCallback}) async {
  if (_settings == null) {
    resetTimerDelayed();
    if (onAdFailedCallback != null) {
      onAdFailedCallback();
    }
    return;
  }

  if (_settings?.rewardsAdsSequence?.isEmpty ?? true) {
    resetTimerDelayed();
    if (onAdFailedCallback != null) {
      onAdFailedCallback();
    }
    return;
  }

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

  if ((_settings?.rewardsAdsSequence?.length ?? 0) <= pos) {
    if ((_settings?.adSetting?.adsRetry ?? 0) > 0 &&
        (_settings?.adSetting?.adsRetry ?? 0) > retry) {
      pos = 0;
      retry++;
    } else {
      resetTimerDelayed();
      if (onAdLoadedCallback != null) {
        onAdLoadedCallback();
      }
      return;
    }
  }

  if (_settings?.isAllAds != true) {
    resetTimerDelayed();
    if (onAdFailedCallback != null) {
      onAdFailedCallback();
    }
    return;
  }

  final curSeqReward = await currentRewardSequence(pos);

  pos = curSeqReward % (_settings?.rewardsAdsSequence?.length ?? 0);

  var adsJson = getCurSeqData(_settings?.rewardsAdsSequence, pos);

  var seqName = adsJson.containsKey("seq_name") ? adsJson["seq_name"] : "";
  dynamic adsModel = adsJson.containsKey("ads") ? adsJson["ads"] : null;

  if (adsModel != null) {
    switch (seqName) {
      case GOOGLEAD:
      case ADMANAGERAD:
      case APPLOVINAD:
      case FACEBOOKAD:
        if (adsModel is AdsModel) {
          AdsModel ads = adsModel;
          if ((ads.isRewardAd ?? false) && (ads.rewardAdId ?? "").isNotEmpty) {
            if (seqName == GOOGLEAD) {
              _createRewardedAd(pos, retry, onAdLoadedCallback,
                  ads.rewardAdId ?? "", onAdFailedCallback);
            }

            if (seqName == ADMANAGERAD) {
              _createAdmanagerRewardedAd(pos, retry, onAdLoadedCallback,
                  ads.rewardAdId ?? "", onAdFailedCallback);
            }

            if (seqName == APPLOVINAD) {
              _createAppLovinRewardedAd(pos, retry, onAdLoadedCallback,
                  ads.rewardAdId ?? "", onAdFailedCallback);
            }

            if (seqName == FACEBOOKAD) {
              _createFacebookRewardedAd(pos, retry, onAdLoadedCallback,
                  ads.rewardAdId ?? "", onAdFailedCallback);
            }
            return;
          }
        }
        await incrementRewardSequence();
        loadRewardAds(
            pos: pos + 1,
            retry: retry,
            onAdLoadedCallback: onAdLoadedCallback,
            onAdFailedCallback: onAdFailedCallback);
        break;
      default:
        await incrementRewardSequence();
        loadRewardAds(
            pos: pos + 1,
            retry: retry,
            onAdLoadedCallback: onAdLoadedCallback,
            onAdFailedCallback: onAdFailedCallback);
        break;
    }
  }
}