Skip to content

Commit 0a320e7

Browse files
committed
feat(ads): implement interstitial ad trigger in headlines search
- Add InterstitialAdManager import to headlines_search_page.dart - Implement interstitial ad trigger on headline tap for different image styles - Maintain existing navigation to article details after ad trigger
1 parent 1ddcce3 commit 0a320e7

File tree

1 file changed

+31
-15
lines changed

1 file changed

+31
-15
lines changed

lib/headlines-search/view/headlines_search_page.dart

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:core/core.dart';
66
import 'package:flutter/material.dart';
77
import 'package:flutter_bloc/flutter_bloc.dart';
88
import 'package:flutter_news_app_mobile_client_full_source_code/ads/ad_service.dart';
9+
import 'package:flutter_news_app_mobile_client_full_source_code/ads/interstitial_ad_manager.dart';
910
import 'package:flutter_news_app_mobile_client_full_source_code/ads/models/ad_placeholder.dart';
1011
import 'package:flutter_news_app_mobile_client_full_source_code/ads/models/ad_theme_style.dart';
1112
import 'package:flutter_news_app_mobile_client_full_source_code/ads/widgets/feed_ad_loader_widget.dart';
@@ -313,29 +314,44 @@ class _HeadlinesSearchViewState extends State<_HeadlinesSearchView> {
313314
case HeadlineImageStyle.hidden:
314315
tile = HeadlineTileTextOnly(
315316
headline: feedItem,
316-
onHeadlineTap: () => context.goNamed(
317-
Routes.searchArticleDetailsName,
318-
pathParameters: {'id': feedItem.id},
319-
extra: feedItem,
320-
),
317+
onHeadlineTap: () {
318+
context
319+
.read<InterstitialAdManager>()
320+
.onPotentialAdTrigger(context: context);
321+
context.goNamed(
322+
Routes.searchArticleDetailsName,
323+
pathParameters: {'id': feedItem.id},
324+
extra: feedItem,
325+
);
326+
},
321327
);
322328
case HeadlineImageStyle.smallThumbnail:
323329
tile = HeadlineTileImageStart(
324330
headline: feedItem,
325-
onHeadlineTap: () => context.goNamed(
326-
Routes.searchArticleDetailsName,
327-
pathParameters: {'id': feedItem.id},
328-
extra: feedItem,
329-
),
331+
onHeadlineTap: () {
332+
context
333+
.read<InterstitialAdManager>()
334+
.onPotentialAdTrigger(context: context);
335+
context.goNamed(
336+
Routes.searchArticleDetailsName,
337+
pathParameters: {'id': feedItem.id},
338+
extra: feedItem,
339+
);
340+
},
330341
);
331342
case HeadlineImageStyle.largeThumbnail:
332343
tile = HeadlineTileImageTop(
333344
headline: feedItem,
334-
onHeadlineTap: () => context.goNamed(
335-
Routes.searchArticleDetailsName,
336-
pathParameters: {'id': feedItem.id},
337-
extra: feedItem,
338-
),
345+
onHeadlineTap: () {
346+
context
347+
.read<InterstitialAdManager>()
348+
.onPotentialAdTrigger(context: context);
349+
context.goNamed(
350+
Routes.searchArticleDetailsName,
351+
pathParameters: {'id': feedItem.id},
352+
extra: feedItem,
353+
);
354+
},
339355
);
340356
}
341357
return tile;

0 commit comments

Comments
 (0)