preloadAll method
Implementation
Future<void> preloadAll([CustomNativeAdType? type]) async {
final completer = Completer<void>();
final typesToPreload =
type != null
? [type]
: [CustomNativeAdType.medium, CustomNativeAdType.small];
int pendingLoads = 0;
void checkDone() {
pendingLoads--;
if (pendingLoads <= 0 && !completer.isCompleted) {
completer.complete();
}
}
for (final t in typesToPreload) {
if ((adModel?.isadmobad ?? false) && (adModel?.isnativeenable ?? false)) {
pendingLoads += _preloadCount;
}
if ((adModel?.isadManger ?? false) &&
(adModel?.isnativeenable ?? false)) {
pendingLoads += _preloadCount;
}
}
if (pendingLoads == 0) {
if (!completer.isCompleted) {
completer.complete();
}
} else {
for (final t in typesToPreload) {
if ((adModel?.isadmobad ?? false) &&
(adModel?.isnativeenable ?? false)) {
_preloadAdMob(
t,
useNativeFactory: adModel!.iscustomeads ?? false,
onAdLoadedCallback: checkDone,
onAdFailedCallback: checkDone,
);
}
if ((adModel?.isadManger ?? false) &&
(adModel?.isnativeenable ?? false)) {
_preloadAdManager(
t,
useNativeFactory: adModel!.iscustomeads ?? false,
onAdLoadedCallback: checkDone,
onAdFailedCallback: checkDone,
);
}
if (adModel?.isqurekaads ?? false) {
_preloadQureka(t);
}
}
}
return completer.future;
}