getCallAppOpenAds method

Future getCallAppOpenAds(
  1. dynamic context, {
  2. VoidCallback? onAdDismissed,
})

Implementation

Future getCallAppOpenAds(context, {VoidCallback? onAdDismissed}) async {
  if (admodel?.isad ?? false) {
    final priorityList =
        admodel?.appOpenAdPriority ?? ['admanager', 'admob', 'qureka'];

    for (final adType in priorityList) {
      switch (adType.toString().toLowerCase()) {
        case 'admob':
          if ((admodel?.isadmobad ?? false) &&
              (admodel?.isopenenable ?? false)) {
            final unitId = admodel?.admobadOpen ?? '';
            if (appOpenAdManager == null ||
                appOpenAdManager!.appOpenUnitId != unitId) {
              appLifecycleReactor?.stopListening();
              appOpenAdManager = AppOpenAdManager(appOpenUnitId: unitId);
              appLifecycleReactor = AppLifecycleReactor(
                appOpenAdManager: appOpenAdManager!,
              );
              appLifecycleReactor!.listenToAppStateChanges();
              appOpenAdManager!.loadAd(isFromStart: true);
            } else if (appOpenAdManager!.isAdAvailable) {
              appOpenAdManager!.showAdIfAvailable();
            } else {
              appOpenAdManager!.loadAd(isFromStart: true);
            }
          }
          break;
        case 'admanager':
          if ((admodel?.isadManger ?? false) &&
              (admodel?.isopenenable ?? false)) {
            final unitId = admodel?.adOpen ?? '';
            if (appOpenAdManager == null ||
                appOpenAdManager!.appOpenUnitId != unitId) {
              appLifecycleReactor?.stopListening();
              appOpenAdManager = AppOpenAdManager(appOpenUnitId: unitId);
              appLifecycleReactor = AppLifecycleReactor(
                appOpenAdManager: appOpenAdManager!,
              );
              appLifecycleReactor!.listenToAppStateChanges();
              appOpenAdManager!.loadAd(isFromStart: true);
            } else if (appOpenAdManager!.isAdAvailable) {
              appOpenAdManager!.showAdIfAvailable();
            } else {
              appOpenAdManager!.loadAd(isFromStart: true);
            }
          }
          break;
        case 'qureka':
          if ((admodel?.isextraappenable ?? false) &&
              (admodel?.qurekaAds?.adsAppopenImage?.isNotEmpty ?? false)) {
            final completer = Completer<void>();
            await CustomAppOpenAdScreen.show(
              context,
              admodel: admodel!,
              onAdDismissed: () {
                onAdDismissed?.call();
                if (!completer.isCompleted) {
                  completer.complete();
                }
              },
            );
            if (!completer.isCompleted) {
              completer.complete();
            }
            await completer.future;
            return;
          }
          break;
      }
    }
  }
}