loadAndShowAd method

void loadAndShowAd({
  1. VoidCallback? onDismissAd,
})

Implementation

void loadAndShowAd({VoidCallback? onDismissAd}) async {
  if (!isEnableAd || await InternetManager.instance.isOnline == false) {
    onDismissAd?.call();
    return;
  }

  if (!_isLoadingAd && _interstitialAd != null) {
    showAd(onDismissAd: onDismissAd);
    return;
  }

  if (!_isLoadingAd && _interstitialAd == null && mounted) {
    _isLoadingAd = true;
    showDialogLoading(context);
    InterstitialAd.load(
      adUnitId: interstitialUnitId,
      request: const AdRequest(),
      adLoadCallback: InterstitialAdLoadCallback(
        onAdLoaded: (InterstitialAd ad) {
          _interstitialAd = ad;
          hideLoadingDialog();
          showAd(onDismissAd: onDismissAd);
        },
        onAdFailedToLoad: (LoadAdError error) {
          onDismissAd?.call();
          hideLoadingDialog();
          loadAd();
        },
      ),
    );
  }
}