QuickSSH/lib/widgets/ad_banner.dart

59 lines
1.4 KiB
Dart

import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:flutter/material.dart';
class MyBannerAd extends StatefulWidget {
final bool isEnabled;
const MyBannerAd({super.key, required this.isEnabled});
@override
State<MyBannerAd> createState() => _MyBannerAdState();
}
class _MyBannerAdState extends State<MyBannerAd> {
BannerAd? _bannerAd;
bool _isLoaded = false;
bool _isInitializing = false;
@override
void initState() {
super.initState();
if (widget.isEnabled) {
_loadAd();
}
}
void _loadAd() async {
_bannerAd = BannerAd(
adUnitId: 'ca-app-pub-2626773788355001/7557216229',
request: const AdRequest(),
size: AdSize.banner,
listener: BannerAdListener(
onAdLoaded: (ad) => setState(() => _isLoaded = true),
onAdFailedToLoad: (ad, error) {
ad.dispose();
print('Ad failed to load: $error');
},
),
)..load();
}
@override
void dispose() {
_bannerAd?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (!widget.isEnabled || !_isLoaded || _bannerAd == null) {
return const SizedBox.shrink();
}
return Container(
alignment: Alignment.center,
width: double.infinity,
height: _bannerAd!.size.height.toDouble(),
child: AdWidget(ad: _bannerAd!),
);
}
}