Skip to content

Commit d0dacd5

Browse files
committed
feat(ads): implement interstitial ad trigger in headlines feed
- Add InterstitialAdManager import to headlines_feed_page.dart - Implement interstitial ad trigger on headline tap for different image styles - Ensure ad trigger logic is applied consistently across all headline tile types
1 parent 1d6710b commit d0dacd5

File tree

1 file changed

+31
-15
lines changed

1 file changed

+31
-15
lines changed

lib/headlines-feed/view/headlines_feed_page.dart

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
66
import 'package:flutter_bloc/flutter_bloc.dart';
77
import 'package:flutter_news_app_mobile_client_full_source_code/account/bloc/account_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';
@@ -296,29 +297,44 @@ class _HeadlinesFeedPageState extends State<HeadlinesFeedPage> {
296297
case HeadlineImageStyle.hidden:
297298
tile = HeadlineTileTextOnly(
298299
headline: item,
299-
onHeadlineTap: () => context.goNamed(
300-
Routes.articleDetailsName,
301-
pathParameters: {'id': item.id},
302-
extra: item,
303-
),
300+
onHeadlineTap: () {
301+
context
302+
.read<InterstitialAdManager>()
303+
.onPotentialAdTrigger(context: context);
304+
context.goNamed(
305+
Routes.articleDetailsName,
306+
pathParameters: {'id': item.id},
307+
extra: item,
308+
);
309+
},
304310
);
305311
case HeadlineImageStyle.smallThumbnail:
306312
tile = HeadlineTileImageStart(
307313
headline: item,
308-
onHeadlineTap: () => context.goNamed(
309-
Routes.articleDetailsName,
310-
pathParameters: {'id': item.id},
311-
extra: item,
312-
),
314+
onHeadlineTap: () {
315+
context
316+
.read<InterstitialAdManager>()
317+
.onPotentialAdTrigger(context: context);
318+
context.goNamed(
319+
Routes.articleDetailsName,
320+
pathParameters: {'id': item.id},
321+
extra: item,
322+
);
323+
},
313324
);
314325
case HeadlineImageStyle.largeThumbnail:
315326
tile = HeadlineTileImageTop(
316327
headline: item,
317-
onHeadlineTap: () => context.goNamed(
318-
Routes.articleDetailsName,
319-
pathParameters: {'id': item.id},
320-
extra: item,
321-
),
328+
onHeadlineTap: () {
329+
context
330+
.read<InterstitialAdManager>()
331+
.onPotentialAdTrigger(context: context);
332+
context.goNamed(
333+
Routes.articleDetailsName,
334+
pathParameters: {'id': item.id},
335+
extra: item,
336+
);
337+
},
322338
);
323339
}
324340
return tile;

0 commit comments

Comments
 (0)