showRewardAds function

dynamic showRewardAds({
  1. required BuildContext context,
  2. Function? callback,
  3. Function? onFailedCallback,
  4. Function? onSkippedCallback,
})

Implementation

showRewardAds({required BuildContext context,
  Function? callback,
  Function? onFailedCallback,
  Function? onSkippedCallback}) async {
  showProgressbarDialog(context);
  resetTimerDelayed();
  Timer? timer;
  timer = Timer(
      Duration(
          milliseconds:
          _settings?.adSetting?.adsRetryMaximumMilliseconds ?? 3000), () {
    timer?.cancel();
    Navigator.pop(context);
    if (onFailedCallback != null) {
      onFailedCallback();
    }
  });
  loadRewardAds(
      onAdLoadedCallback: () {
        if (timer?.isActive == true) {
          int remainingTime =
              (_settings?.adSetting?.adsLoadingTextMinimumMilliseconds ??
                  1500) -
                  (timer?.tick ?? 0);
          if (remainingTime > 0) {
            Future.delayed(
                Duration(milliseconds: remainingTime),
                    () =>
                {
                  if (timer?.isActive == true)
                    {
                      timer?.cancel(),
                      Navigator.pop(context),
                      _showRewardedAd(
                          callback, onFailedCallback, onSkippedCallback)
                    }
                });
          } else {
            if (timer?.isActive == true) {
              timer?.cancel();
              Navigator.pop(context);
              _showRewardedAd(callback, onFailedCallback, onSkippedCallback);
            }
          }
        }
      },
      onAdFailedCallback: () =>
      {
        if (timer?.isActive == true)
          {
            Future.delayed(
                Duration(milliseconds: _TOTALDELAYD),
                    () =>
                {
                  if (timer?.isActive == true)
                    {
                      timer?.cancel(),
                      Navigator.pop(context),
                      if (onFailedCallback != null) {onFailedCallback()}
                    }
                })
          }
      });
}