Files
Onsol-GO/lib/core/ad_handler.dart
T
2026-04-23 23:58:59 -05:00

42 lines
1.1 KiB
Dart

import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:flutter/foundation.dart';
import 'package:onsolgo/core/constants.dart';
class AdHandler {
static InterstitialAd? _interstitialAd;
static void loadInterstitialAd() {
if (kIsWeb) return; // Skip on PWA
InterstitialAd.load(
adUnitId: kInterstitialAdUnitId,
request: const AdRequest(),
adLoadCallback: InterstitialAdLoadCallback(
onAdLoaded: (ad) => _interstitialAd = ad,
onAdFailedToLoad: (error) => _interstitialAd = null,
),
);
}
static void showInterstitialAd(Function onAdClosed) {
if (kIsWeb || _interstitialAd == null) {
onAdClosed(); // If web or ad not ready, just open the chapter
return;
}
_interstitialAd!.fullScreenContentCallback = FullScreenContentCallback(
onAdDismissedFullScreenContent: (ad) {
ad.dispose();
loadInterstitialAd(); // Load next one
onAdClosed(); // Open the chapter
},
onAdFailedToShowFullScreenContent: (ad, error) {
ad.dispose();
onAdClosed();
},
);
_interstitialAd!.show();
_interstitialAd = null;
}
}