ad helper

This commit is contained in:
2025-02-18 22:56:50 +01:00
parent 9846c614a1
commit 5c2fa27aa7
8 changed files with 111 additions and 5 deletions

View File

@@ -0,0 +1,38 @@
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
class AdHelper {
static BannerAd? bannerAd;
static bool isBannerAdLoaded = false;
static Future<void> loadBannerAd(Function setStateCallback) async {
await dotenv.load(fileName: ".env");
final adUnitId = dotenv.env['AD_UNIT_ID'] ?? '';
bannerAd = BannerAd(
adUnitId: adUnitId, // Replace with actual ID
size: AdSize.banner,
request: AdRequest(),
listener: BannerAdListener(
onAdLoaded: (ad) {
setStateCallback(() {
isBannerAdLoaded = true;
});
},
onAdFailedToLoad: (ad, error) {
print('Banner Ad failed to load: $error');
isBannerAdLoaded = false;
ad.dispose();
},
),
);
bannerAd?.load();
}
static void disposeAd() {
bannerAd?.dispose();
bannerAd = null;
isBannerAdLoaded = false;
}
}

View File

@@ -1,8 +1,11 @@
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:http/http.dart' as http;
import 'classes/ad_helper.dart';
import 'dart:convert';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'dart:io';
//import 'MyHomePage.dart';
@@ -14,7 +17,9 @@ import 'classes/alert.dart';
import 'variable/globals.dart' as globals;
import 'package:permission_handler/permission_handler.dart';
void main() {
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await MobileAds.instance.initialize();
runApp(MyApp());
}
@@ -128,9 +133,17 @@ class _LoginDemoState extends State<LoginDemo> with ShowAlertDialog {
@override
void initState() {
super.initState();
AdHelper.loadBannerAd(setState);
_checkLocationPermission();
start();
super.initState();
}
@override
void dispose() {
AdHelper.disposeAd(); // Dispose of ad when the widget is removed
super.dispose();
}
Future<void> _checkLocationPermission() async {
@@ -252,7 +265,13 @@ class _LoginDemoState extends State<LoginDemo> with ShowAlertDialog {
onTap: () {
Navigator.push(
context, MaterialPageRoute(builder: (_) => AddProfile()));
})
}),
if (AdHelper.isBannerAdLoaded)
SizedBox(
height: AdHelper.bannerAd!.size.height.toDouble(),
width: AdHelper.bannerAd!.size.width.toDouble(),
child: AdWidget(ad: AdHelper.bannerAd!),
),
],
),
),

View File

@@ -125,7 +125,7 @@ class _EditProfileState extends State<EditSettings>
child: TextButton(
onPressed: () {},
child: Text(
'Mettre à jour les paramètres',
'Mettre à jour',
style: TextStyle(color: Colors.white, fontSize: 25),
),
),