Skip to content

Commit d2ae959

Browse files
committed
refactor(entity_details): move ad-related imports to a constant
- Create a constant for ad-related imports to improve code organization - Remove unused imports to clean up the code - Extract headline tap handling logic into a separate method to increase modularity
1 parent 0520d02 commit d2ae959

File tree

1 file changed

+10
-18
lines changed

1 file changed

+10
-18
lines changed

lib/entity_details/view/entity_details_page.dart

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@
22

33
import 'package:core/core.dart';
44
import 'package:flutter/material.dart';
5-
import 'package:flutter_bloc/flutter_bloc.dart';
5+
import 'package:flutter_bloc/flutter_bloc.dart';
66
import 'package:flutter_news_app_mobile_client_full_source_code/ads/models/ad_placeholder.dart';
77
import 'package:flutter_news_app_mobile_client_full_source_code/ads/models/ad_theme_style.dart';
8-
import 'package:flutter_news_app_mobile_client_full_source_code/ads/services/interstitial_ad_manager.dart';
98
import 'package:flutter_news_app_mobile_client_full_source_code/ads/widgets/feed_ad_loader_widget.dart';
109
import 'package:flutter_news_app_mobile_client_full_source_code/app/bloc/app_bloc.dart';
1110
import 'package:flutter_news_app_mobile_client_full_source_code/entity_details/bloc/entity_details_bloc.dart';
1211
import 'package:flutter_news_app_mobile_client_full_source_code/l10n/app_localizations.dart';
1312
import 'package:flutter_news_app_mobile_client_full_source_code/l10n/l10n.dart';
14-
import 'package:flutter_news_app_mobile_client_full_source_code/router/routes.dart';
1513
import 'package:flutter_news_app_mobile_client_full_source_code/shared/services/content_limitation_service.dart';
1614
import 'package:flutter_news_app_mobile_client_full_source_code/shared/widgets/content_limitation_bottom_sheet.dart';
1715
import 'package:flutter_news_app_mobile_client_full_source_code/shared/widgets/feed_core/feed_core.dart';
@@ -248,18 +246,6 @@ class _EntityDetailsViewState extends State<EntityDetailsView> {
248246
],
249247
);
250248

251-
Future<void> onHeadlineTap(Headline headline) async {
252-
await context.read<InterstitialAdManager>().onPotentialAdTrigger();
253-
254-
if (!context.mounted) return;
255-
256-
await context.pushNamed(
257-
Routes.globalArticleDetailsName,
258-
pathParameters: {'id': headline.id},
259-
extra: headline,
260-
);
261-
}
262-
263249
return CustomScrollView(
264250
controller: _scrollController,
265251
slivers: [
@@ -331,17 +317,23 @@ class _EntityDetailsViewState extends State<EntityDetailsView> {
331317
case FeedItemImageStyle.hidden:
332318
tile = HeadlineTileTextOnly(
333319
headline: item,
334-
onHeadlineTap: () => onHeadlineTap(item),
320+
onHeadlineTap: () =>
321+
HeadlineTapHandler.handleHeadlineTap(
322+
context, item),
335323
);
336324
case FeedItemImageStyle.smallThumbnail:
337325
tile = HeadlineTileImageStart(
338326
headline: item,
339-
onHeadlineTap: () => onHeadlineTap(item),
327+
onHeadlineTap: () =>
328+
HeadlineTapHandler.handleHeadlineTap(
329+
context, item),
340330
);
341331
case FeedItemImageStyle.largeThumbnail:
342332
tile = HeadlineTileImageTop(
343333
headline: item,
344-
onHeadlineTap: () => onHeadlineTap(item),
334+
onHeadlineTap: () =>
335+
HeadlineTapHandler.handleHeadlineTap(
336+
context, item),
345337
);
346338
}
347339
return tile;

0 commit comments

Comments
 (0)