Skip to content

Commit 970c073

Browse files
committed
feat(ads): implement interstitial ad trigger on article details view
- Add InterstitialAdManager import to entity_details_page.dart - Implement interstitial ad trigger on headline tap for different image styles - Ensure ad trigger is called before navigating to article details page
1 parent 3b4fadd commit 970c073

File tree

1 file changed

+31
-15
lines changed

1 file changed

+31
-15
lines changed

lib/entity_details/view/entity_details_page.dart

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:core/core.dart';
44
import 'package:flutter/material.dart';
55
import 'package:flutter_bloc/flutter_bloc.dart';
66
import 'package:flutter_news_app_mobile_client_full_source_code/ads/ad_service.dart';
7+
import 'package:flutter_news_app_mobile_client_full_source_code/ads/interstitial_ad_manager.dart';
78
import 'package:flutter_news_app_mobile_client_full_source_code/ads/models/ad_placeholder.dart';
89
import 'package:flutter_news_app_mobile_client_full_source_code/ads/models/ad_theme_style.dart';
910
import 'package:flutter_news_app_mobile_client_full_source_code/ads/widgets/feed_ad_loader_widget.dart';
@@ -324,29 +325,44 @@ class _EntityDetailsViewState extends State<EntityDetailsView> {
324325
case HeadlineImageStyle.hidden:
325326
tile = HeadlineTileTextOnly(
326327
headline: item,
327-
onHeadlineTap: () => context.pushNamed(
328-
Routes.globalArticleDetailsName,
329-
pathParameters: {'id': item.id},
330-
extra: item,
331-
),
328+
onHeadlineTap: () {
329+
context
330+
.read<InterstitialAdManager>()
331+
.onPotentialAdTrigger(context: context);
332+
context.pushNamed(
333+
Routes.globalArticleDetailsName,
334+
pathParameters: {'id': item.id},
335+
extra: item,
336+
);
337+
},
332338
);
333339
case HeadlineImageStyle.smallThumbnail:
334340
tile = HeadlineTileImageStart(
335341
headline: item,
336-
onHeadlineTap: () => context.pushNamed(
337-
Routes.globalArticleDetailsName,
338-
pathParameters: {'id': item.id},
339-
extra: item,
340-
),
342+
onHeadlineTap: () {
343+
context
344+
.read<InterstitialAdManager>()
345+
.onPotentialAdTrigger(context: context);
346+
context.pushNamed(
347+
Routes.globalArticleDetailsName,
348+
pathParameters: {'id': item.id},
349+
extra: item,
350+
);
351+
},
341352
);
342353
case HeadlineImageStyle.largeThumbnail:
343354
tile = HeadlineTileImageTop(
344355
headline: item,
345-
onHeadlineTap: () => context.pushNamed(
346-
Routes.globalArticleDetailsName,
347-
pathParameters: {'id': item.id},
348-
extra: item,
349-
),
356+
onHeadlineTap: () {
357+
context
358+
.read<InterstitialAdManager>()
359+
.onPotentialAdTrigger(context: context);
360+
context.pushNamed(
361+
Routes.globalArticleDetailsName,
362+
pathParameters: {'id': item.id},
363+
extra: item,
364+
);
365+
},
350366
);
351367
}
352368
return tile;

0 commit comments

Comments
 (0)