BUG: MIH Ad Display Strategy
This commit is contained in:
@@ -12,10 +12,28 @@ class MihBannerAd extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _MihBannerAdState extends State<MihBannerAd> {
|
||||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
MihBannerAdProvider adProvider = context.read<MihBannerAdProvider>();
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
adProvider.reset();
|
||||
adProvider.loadBannerAd();
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Consumer<MihBannerAdProvider>(
|
||||
builder: (context, bannerAdProvider, child) {
|
||||
if (!bannerAdProvider.isBannerAdLoaded) {
|
||||
return SizedBox();
|
||||
}
|
||||
return Column(
|
||||
children: [
|
||||
bannerAdProvider.bannerAd != null &&
|
||||
|
||||
@@ -28,6 +28,11 @@ class MihBannerAdProvider extends ChangeNotifier {
|
||||
}
|
||||
|
||||
void loadBannerAd() {
|
||||
if (bannerAd != null) {
|
||||
bannerAd!.dispose();
|
||||
bannerAd = null;
|
||||
isBannerAdLoaded = false;
|
||||
}
|
||||
bannerAd = BannerAd(
|
||||
adUnitId: adUnitId,
|
||||
request: const AdRequest(),
|
||||
|
||||
@@ -2,7 +2,6 @@ import 'package:go_router/go_router.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_banner_ad_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_calculator_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/calculator/package_tools/currency_exchange_rate.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/calculator/package_tools/simple_calc.dart';
|
||||
@@ -29,7 +28,6 @@ class _MIHCalculatorState extends State<MIHCalculator> {
|
||||
void initState() {
|
||||
super.initState();
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
||||
context.read<MihBannerAdProvider>().loadBannerAd();
|
||||
await getCurrencyCodeList();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_banner_ad_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_calculator_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
|
||||
@@ -67,7 +66,6 @@ class _CurrencyExchangeRateState extends State<CurrencyExchangeRate> {
|
||||
fullscreen: false,
|
||||
windowTitle: "Calculation Results",
|
||||
onWindowTapClose: () {
|
||||
context.read<MihBannerAdProvider>().loadBannerAd();
|
||||
Navigator.pop(context);
|
||||
},
|
||||
windowBody: Column(
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import 'package:mzansi_innovation_hub/main.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_banner_ad.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_banner_ad_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart';
|
||||
@@ -99,7 +98,6 @@ class _TipCalcState extends State<TipCalc> {
|
||||
fullscreen: false,
|
||||
windowTitle: "Calculation Results",
|
||||
onWindowTapClose: () {
|
||||
context.read<MihBannerAdProvider>().loadBannerAd();
|
||||
Navigator.pop(context);
|
||||
},
|
||||
windowBody: Column(
|
||||
|
||||
@@ -13,7 +13,6 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_banner_ad_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_mine_sweeper_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||
@@ -124,8 +123,9 @@ class _MineSweeperGameState extends State<MineSweeperGame> {
|
||||
return '$hoursStr:$minutesStr:$secondsStr:$centiStr';
|
||||
}
|
||||
|
||||
void showStartGameWindow(MihMineSweeperProvider mihMineSweeperProvider,
|
||||
MihBannerAdProvider addProvider) {
|
||||
void showStartGameWindow(
|
||||
MihMineSweeperProvider mihMineSweeperProvider,
|
||||
) {
|
||||
// easy - 10 * 10 & 15 bombs
|
||||
// Intermediate - 10 * 15 & 23 bombs
|
||||
// Hard - 10 * 20 & 30 bombs
|
||||
@@ -134,7 +134,6 @@ class _MineSweeperGameState extends State<MineSweeperGame> {
|
||||
builder: (context) {
|
||||
return MihMineSweeperStartGameWindow(
|
||||
onPressed: () {
|
||||
addProvider.loadBannerAd();
|
||||
resetTimer();
|
||||
mihMineSweeperProvider
|
||||
.setDifficulty(mihMineSweeperProvider.difficulty);
|
||||
@@ -241,12 +240,8 @@ class _MineSweeperGameState extends State<MineSweeperGame> {
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> handleTap(
|
||||
MzansiProfileProvider profileProvider,
|
||||
MihMineSweeperProvider mihMineSweeperProvider,
|
||||
MihBannerAdProvider adProvider,
|
||||
int r,
|
||||
int c) async {
|
||||
Future<void> handleTap(MzansiProfileProvider profileProvider,
|
||||
MihMineSweeperProvider mihMineSweeperProvider, int r, int c) async {
|
||||
if (isGameOver || board[r][c].isOpened || board[r][c].isFlagged) {
|
||||
return;
|
||||
}
|
||||
@@ -304,8 +299,7 @@ class _MineSweeperGameState extends State<MineSweeperGame> {
|
||||
MihButton(
|
||||
onPressed: () {
|
||||
context.pop();
|
||||
showStartGameWindow(
|
||||
mihMineSweeperProvider, adProvider);
|
||||
showStartGameWindow(mihMineSweeperProvider);
|
||||
},
|
||||
buttonColor: MihColors.getGreenColor(
|
||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||
@@ -364,7 +358,7 @@ class _MineSweeperGameState extends State<MineSweeperGame> {
|
||||
squaresLeft--;
|
||||
}
|
||||
// 3. Check for win
|
||||
_checkWinCondition(profileProvider, mihMineSweeperProvider, adProvider);
|
||||
_checkWinCondition(profileProvider, mihMineSweeperProvider);
|
||||
// Update the UI
|
||||
setState(() {});
|
||||
}
|
||||
@@ -383,7 +377,6 @@ class _MineSweeperGameState extends State<MineSweeperGame> {
|
||||
Future<void> _checkWinCondition(
|
||||
MzansiProfileProvider profileProvider,
|
||||
MihMineSweeperProvider mihMineSweeperProvider,
|
||||
MihBannerAdProvider adProvider,
|
||||
) async {
|
||||
// Game is won if all non-mine squares are opened.
|
||||
if (squaresLeft <= mihMineSweeperProvider.totalMines) {
|
||||
@@ -450,7 +443,7 @@ class _MineSweeperGameState extends State<MineSweeperGame> {
|
||||
MihButton(
|
||||
onPressed: () {
|
||||
context.pop();
|
||||
showStartGameWindow(mihMineSweeperProvider, adProvider);
|
||||
showStartGameWindow(mihMineSweeperProvider);
|
||||
},
|
||||
buttonColor: MihColors.getGreenColor(
|
||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||
@@ -558,13 +551,9 @@ class _MineSweeperGameState extends State<MineSweeperGame> {
|
||||
}
|
||||
|
||||
Widget getBody() {
|
||||
return Consumer3<MzansiProfileProvider, MihMineSweeperProvider,
|
||||
MihBannerAdProvider>(
|
||||
builder: (BuildContext context,
|
||||
MzansiProfileProvider profileProvider,
|
||||
MihMineSweeperProvider mihMineSweeperProvider,
|
||||
MihBannerAdProvider adProvider,
|
||||
Widget? child) {
|
||||
return Consumer2<MzansiProfileProvider, MihMineSweeperProvider>(
|
||||
builder: (BuildContext context, MzansiProfileProvider profileProvider,
|
||||
MihMineSweeperProvider mihMineSweeperProvider, Widget? child) {
|
||||
return Column(
|
||||
children: [
|
||||
Expanded(
|
||||
@@ -725,12 +714,8 @@ class _MineSweeperGameState extends State<MineSweeperGame> {
|
||||
|
||||
return MineTile(
|
||||
square: board[r][c],
|
||||
onTap: () => handleTap(
|
||||
profileProvider,
|
||||
mihMineSweeperProvider,
|
||||
adProvider,
|
||||
r,
|
||||
c),
|
||||
onTap: () => handleTap(profileProvider,
|
||||
mihMineSweeperProvider, r, c),
|
||||
onLongPress: () => handleLongPress(r, c),
|
||||
);
|
||||
},
|
||||
@@ -794,8 +779,7 @@ class _MineSweeperGameState extends State<MineSweeperGame> {
|
||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||
"Dark"),
|
||||
onTap: () {
|
||||
showStartGameWindow(
|
||||
mihMineSweeperProvider, adProvider);
|
||||
showStartGameWindow(mihMineSweeperProvider);
|
||||
},
|
||||
),
|
||||
]),
|
||||
|
||||
@@ -6,7 +6,6 @@ import 'package:mzansi_innovation_hub/main.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_banner_ad.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_banner_ad_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_wallet_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||
@@ -522,7 +521,6 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
||||
),
|
||||
],
|
||||
onWindowTapClose: () {
|
||||
context.read<MihBannerAdProvider>().loadBannerAd();
|
||||
resetScreenBrightness();
|
||||
context.pop();
|
||||
},
|
||||
@@ -584,9 +582,7 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
||||
),
|
||||
),
|
||||
SizedBox(height: 10),
|
||||
Consumer(builder: (context, bannerAdDisplay, child) {
|
||||
return MihBannerAd();
|
||||
}),
|
||||
MihBannerAd()
|
||||
// MihBannerAd(),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -3,7 +3,6 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_banner_ad_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_wallet_provider.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -50,7 +49,6 @@ class _MihWalletState extends State<MihWallet> {
|
||||
context.read<MzansiWalletProvider>();
|
||||
await setLoyaltyCards(mzansiProfileProvider, walletProvider);
|
||||
await setFavouritesCards(mzansiProfileProvider, walletProvider);
|
||||
context.read<MihBannerAdProvider>().loadBannerAd();
|
||||
setState(() {
|
||||
isLoading = false;
|
||||
});
|
||||
|
||||
@@ -34,6 +34,8 @@ class _MihCardsState extends State<MihCards> {
|
||||
detectionSpeed: DetectionSpeed.unrestricted,
|
||||
);
|
||||
final boxFit = BoxFit.contain;
|
||||
late MzansiWalletProvider _walletProvider;
|
||||
late VoidCallback _searchListener;
|
||||
|
||||
void searchShop(List<MIHLoyaltyCard> allCards) {
|
||||
if (cardSearchController.text.isEmpty) {
|
||||
@@ -129,10 +131,7 @@ class _MihCardsState extends State<MihCards> {
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
final walletProvider = context.read<MzansiWalletProvider>();
|
||||
cardSearchController.removeListener(() {
|
||||
searchShop(walletProvider.loyaltyCards);
|
||||
});
|
||||
cardSearchController.removeListener(_searchListener);
|
||||
cardSearchController.dispose();
|
||||
searchShopName.dispose();
|
||||
searchFocusNode.dispose();
|
||||
@@ -141,11 +140,12 @@ class _MihCardsState extends State<MihCards> {
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
final walletProvider = context.read<MzansiWalletProvider>();
|
||||
searchShopName.value = walletProvider.loyaltyCards;
|
||||
cardSearchController.addListener(() {
|
||||
searchShop(walletProvider.loyaltyCards);
|
||||
});
|
||||
_walletProvider = context.read<MzansiWalletProvider>();
|
||||
_searchListener = () {
|
||||
searchShop(_walletProvider.loyaltyCards);
|
||||
};
|
||||
searchShopName.value = _walletProvider.loyaltyCards;
|
||||
cardSearchController.addListener(_searchListener);
|
||||
super.initState();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user