loadIntraAds function
void
loadIntraAds({})
Implementation
void loadIntraAds({int pos = 0,
int retry = 0,
bool isCompulsory = false,
Function(bool)? onAdLoadedCallback}) async {
if (_settings == null) {
resetTimerDelayed();
if (onAdLoadedCallback != null) {
onAdLoadedCallback(false);
}
return;
}
if (_settings?.intraAdsSequence?.isEmpty ?? true) {
resetTimerDelayed();
if (onAdLoadedCallback != null) {
onAdLoadedCallback(false);
}
return;
}
if (_settings?.adSetting?.appVersionCode == appVersionCode) {
resetTimerDelayed();
if (onAdLoadedCallback != null) {
onAdLoadedCallback(false);
}
return;
}
if ((_settings?.intraAdsSequence?.length ?? 0) <= pos) {
if ((_settings?.adSetting?.adsRetry ?? 0) > 0 &&
(_settings?.adSetting?.adsRetry ?? 0) > retry) {
pos = 0;
retry++;
} else {
resetTimerDelayed();
if (onAdLoadedCallback != null) {
onAdLoadedCallback(true);
}
return;
}
}
if (_settings?.isAllAds != true) {
resetTimerDelayed();
if (onAdLoadedCallback != null) {
onAdLoadedCallback(false);
}
return;
}
final curSeqIntra = await currentIntraSequence(pos);
pos = curSeqIntra % (_settings?.intraAdsSequence?.length ?? 0);
final isInterestial = ((_settings?.adSetting?.IntraIntervalClick ?? 0) > 0 &&
(_settings?.adSetting?.IntraIntervalClickCount ?? 0) %
(_settings?.adSetting?.IntraIntervalClick ?? 0) ==
0 &&
((getInterestialAdTimeInterval() +
((_settings?.adSetting?.intraTimingInterval ?? 0) *
1000)) <=
DateTime
.now()
.millisecondsSinceEpoch ||
getInterestialAdTimeInterval() == 0)) ||
isCompulsory;
if (!isInterestial) {
resetTimerDelayed();
if (onAdLoadedCallback != null) {
onAdLoadedCallback(false);
}
return;
}
var adsJson = getCurSeqData(_settings?.intraAdsSequence, pos);
var seqName = adsJson.containsKey("seq_name") ? adsJson["seq_name"] : "";
dynamic adsModel = adsJson.containsKey("ads") ? adsJson["ads"] : null;
if (adsModel != null) {
switch (seqName) {
case GOOGLEAD:
case ADMANAGERAD:
case APPLOVINAD:
case FACEBOOKAD:
if (adsModel is AdsModel) {
AdsModel ads = adsModel;
if ((ads.isIntraAd ?? false) && (ads.intraAdId ?? "").isNotEmpty) {
if (seqName == GOOGLEAD) {
_createInterstitialAd(
pos, isCompulsory, retry, ads, onAdLoadedCallback);
}
if (seqName == ADMANAGERAD) {
_createAdManagerInterstitialAd(
pos, isCompulsory, retry, ads, onAdLoadedCallback);
}
if (seqName == APPLOVINAD) {
_createAppLovinInterstitialAd(
pos, isCompulsory, retry, ads, onAdLoadedCallback);
}
if (seqName == FACEBOOKAD) {
_createFacebookInterstitialAd(
pos, isCompulsory, retry, ads, onAdLoadedCallback);
}
return;
}
}
await incrementIntraSequence();
loadIntraAds(
retry: retry,
pos: pos + 1,
isCompulsory: isCompulsory,
onAdLoadedCallback: onAdLoadedCallback);
break;
case CUSTOMAD:
if (adsModel is CustomAds) {
CustomAds ads = adsModel;
_createCustomInterstitialAd(pos, isCompulsory, retry, ads,
json.encode(adsJson["json"]), onAdLoadedCallback);
return;
}
default:
await incrementIntraSequence();
loadIntraAds(
retry: retry,
pos: pos + 1,
isCompulsory: isCompulsory,
onAdLoadedCallback: onAdLoadedCallback);
break;
}
}
}