loadBanner static method

void loadBanner(
  1. BuildContext context,
  2. BannerHolder bannerHolder
)

Implementation

static void loadBanner(
    BuildContext context, BannerHolder bannerHolder) async {
  if (!_isShowAds || await isNetworkConnected() == false) {
    bannerHolder.isLoad = false;
    bannerHolder.adsBannerController.value = Banner(null, "no internet");
    return;
  }

  final String adUnitId = _isDebug
      ? _idTestBannerAd
      : Platform.isAndroid
          ? bannerHolder.idAndroid
          : bannerHolder.idIOS;

  if (!context.mounted) {
    return;
  }

  final size = await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
      MediaQuery.sizeOf(context).width.truncate());

  if (size == null) {
    // Unable to get the size.
    return;
  }

  bannerHolder.isLoad = true;
  bannerHolder.adsBannerController.value = Banner(null, "");

  var adRequest = const AdRequest();

  BannerAd(
      adUnitId: adUnitId,
      request: adRequest,
      size: size,
      listener: BannerAdListener(
        onAdLoaded: (ad) {
          log("message load banner collap  $ad");
          bannerHolder.adsBannerController.value =
              Banner(ad as BannerAd, "success");
        },
        onAdFailedToLoad: (ad, err) {
          log("message load banner collap err: $err");
          bannerHolder.isLoad = false;
          bannerHolder.adsBannerController.value =
              Banner(ad as BannerAd, "error");
          ;
          ad.dispose();
        },
      )).load();
}