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?.interestialAdsInterval ?? 0) >
0 &&
(_settings?.adSetting?.interestialAdsIntervalCount ?? 0) %
(_settings?.adSetting?.interestialAdsInterval ?? 0) ==
0 &&
((getInterestialAdTimeInterval() +
((_settings?.adSetting?.interestialAdsTimingInterval ??
0) *
1000)) <=
DateTime.now().millisecondsSinceEpoch ||
getInterestialAdTimeInterval() == 0)) ||
isCompulsory;
if (!isInterestial) {
resetTimerDelayed();
if (onAdLoadedCallback != null) {
onAdLoadedCallback(false);
}
return;
}
var ads_json = _getCurSeqData(_settings?.intraAdsSequence, pos);
var seqName = ads_json.containsKey("seq_name") ? ads_json["seq_name"] : "";
switch (seqName) {
case _GOOGLEAD:
case _ADMANAGERAD:
GoogleAds ads = GoogleAds.fromJson(ads_json["json"]);
if ((ads.isInterstitialAds ?? true) &&
(ads.interestialId ?? "").isNotEmpty) {
if (_ADMANAGERAD == seqName) {
_createAdManagerInterstitialAd(
pos, isCompulsory, retry, ads, onAdLoadedCallback);
return;
}
_createInterstitialAd(
pos, isCompulsory, retry, ads, onAdLoadedCallback);
return;
}
await incrementIntraSequence();
loadIntraAds(
retry: retry,
pos: pos + 1,
isCompulsory: isCompulsory,
onAdLoadedCallback: onAdLoadedCallback);
break;
case _APPLOVINAD:
AppLovin ads = AppLovin.fromJson(ads_json["json"]);
if ((ads.isInterstitialAds ?? true) &&
(ads.interestialId ?? "").isNotEmpty) {
// incrementIntraSequnce();
_createAppLovinInterstitialAd(
pos, isCompulsory, retry, ads, onAdLoadedCallback);
return;
}
await incrementIntraSequence();
loadIntraAds(
retry: retry,
pos: pos + 1,
isCompulsory: isCompulsory,
onAdLoadedCallback: onAdLoadedCallback);
break;
case _FACEBOOKAD:
FacebookAd ads = FacebookAd.fromJson(ads_json["json"]);
if ((ads.isInterstitialAds ?? true) &&
(ads.interestialId ?? "").isNotEmpty) {
// incrementIntraSequnce();
_createFacebookInterstitialAd(
pos, isCompulsory, retry, ads, onAdLoadedCallback);
return;
}
await incrementIntraSequence();
loadIntraAds(
retry: retry,
pos: pos + 1,
isCompulsory: isCompulsory,
onAdLoadedCallback: onAdLoadedCallback);
break;
case _CUSTOMAD:
CustomAds ads = CustomAds.fromJson(ads_json["json"]);
_createCustomInterstitialAd(pos, isCompulsory, retry, ads,
json.encode(ads_json["json"]), onAdLoadedCallback);
return;
default:
await incrementIntraSequence();
loadIntraAds(
retry: retry,
pos: pos + 1,
isCompulsory: isCompulsory,
onAdLoadedCallback: onAdLoadedCallback);
break;
}
}