showRewardedAdWithDialog static method

void showRewardedAdWithDialog({
  1. required BuildContext context,
  2. required String rewardDescription,
  3. required VoidCallback onRewardEarned,
  4. VoidCallback? onAdFailed,
})

Show rewarded ad with user consent dialog

Implementation

static void showRewardedAdWithDialog({
  required BuildContext context,
  required String rewardDescription,
  required VoidCallback onRewardEarned,
  VoidCallback? onAdFailed,
}) {
  if (!canShowRewarded() || !AivoryAdControl.instance.isRewardedAdLoaded()) {
    onAdFailed?.call();
    return;
  }

  showDialog(
    context: context,
    builder:
        (context) => AlertDialog(
          title: const Text('Earn Reward'),
          content: Text('Watch a short video to $rewardDescription'),
          actions: [
            TextButton(
              onPressed: () => Navigator.pop(context),
              child: const Text('No Thanks'),
            ),
            TextButton(
              onPressed: () {
                Navigator.pop(context);
                _showRewardedAd(onRewardEarned, onAdFailed);
              },
              child: const Text('Watch Video'),
            ),
          ],
        ),
  );
}