showNativeAds function

dynamic showNativeAds({
  1. int pos = 0,
  2. int retry = 0,
  3. bool isMediumNativeAds = false,
  4. bool isSequenceIgnore = false,
  5. Color backgroundColor = const Color(0xFFFFFFFF),
  6. Color borderColor = const Color(0xFFFFFFFF),
  7. double borderwidth = 1.0,
  8. BorderStyle borderstyle = BorderStyle.solid,
  9. EdgeInsetsGeometry? widgetMargin,
  10. double borderRadius = 12,
  11. Size size = const Size(double.infinity, 350),
  12. Map<String, Object>? customOptions,
  13. dynamic onAdLoadedCallback(
    1. Widget
    )?,
  14. Function? onAdFailedToLoadCallback,
})

Implementation

showNativeAds(
    {int pos = 0,
    int retry = 0,
    bool isMediumNativeAds = false,
    bool isSequenceIgnore = false,
    Color backgroundColor = const Color(0xFFFFFFFF),
    Color borderColor = const Color(0xFFFFFFFF),
    double borderwidth = 1.0,
    BorderStyle borderstyle = BorderStyle.solid,
    EdgeInsetsGeometry? widgetMargin,
    double borderRadius = 12,
    Size size = const Size(double.infinity, 350),
    Map<String, Object>? customOptions,
    Function(Widget)? onAdLoadedCallback,
    Function? onAdFailedToLoadCallback}) async {
  if (_settings == null ||
      (_settings?.adSetting?.appVersionCode == appVersionCode) ||
      (_settings?.nativeAdsSequence?.isEmpty ?? true) ||
      (_settings?.isAllAds != true)) {
    if (onAdFailedToLoadCallback != null) {
      onAdFailedToLoadCallback();
    }
    return;
  }

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

  if (isSequenceIgnore) {
    _loadRequestNativeAd(
        retry,
        pos,
        isMediumNativeAds,
        isSequenceIgnore,
        backgroundColor,
        borderColor,
        borderwidth,
        borderstyle,
        widgetMargin,
        borderRadius,
        size,
        customOptions,
        onAdLoadedCallback,
        onAdFailedToLoadCallback);
  } else {
    incrementNativeSequence().then((value) {
      currentNativeSequence(pos).then((curSeqNative) {
        pos = curSeqNative % (_settings?.nativeAdsSequence?.length ?? 0);
        _loadRequestNativeAd(
            retry,
            pos,
            isMediumNativeAds,
            isSequenceIgnore,
            backgroundColor,
            borderColor,
            borderwidth,
            borderstyle,
            widgetMargin,
            borderRadius,
            size,
            customOptions,
            onAdLoadedCallback,
            onAdFailedToLoadCallback);
      });
    });
  }
}