getCallAppOpenAds method
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;
}
}
}
}