Skip to content

Commit 6b9d236

Browse files
committed
feat(ads): implement inline ad cache clearing on user logout
- Inject InlineAdCacheService into AppBloc - Add _inlineAdCacheService.clearAllAds() call in handleAppStarted method - Ensure ad cache is cleared when logging out to maintain a clean state
1 parent 5a7b100 commit 6b9d236

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

lib/app/bloc/app_bloc.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:data_repository/data_repository.dart';
66
import 'package:equatable/equatable.dart';
77
import 'package:flex_color_scheme/flex_color_scheme.dart';
88
import 'package:flutter/material.dart';
9+
import 'package:flutter_news_app_mobile_client_full_source_code/ads/inline_ad_cache_service.dart';
910
import 'package:flutter_bloc/flutter_bloc.dart';
1011
import 'package:flutter_news_app_mobile_client_full_source_code/app/models/app_life_cycle_status.dart';
1112
import 'package:flutter_news_app_mobile_client_full_source_code/app/models/initialization_result.dart';
@@ -41,6 +42,7 @@ class AppBloc extends Bloc<AppEvent, AppState> {
4142
required DataRepository<UserAppSettings> userAppSettingsRepository,
4243
required DataRepository<UserContentPreferences>
4344
userContentPreferencesRepository,
45+
required InlineAdCacheService inlineAdCacheService,
4446
required Logger logger,
4547
required DataRepository<User> userRepository,
4648
}) : _remoteConfigRepository = remoteConfigRepository,
@@ -49,6 +51,7 @@ class AppBloc extends Bloc<AppEvent, AppState> {
4951
_userAppSettingsRepository = userAppSettingsRepository,
5052
_userContentPreferencesRepository = userContentPreferencesRepository,
5153
_userRepository = userRepository,
54+
_inlineAdCacheService = inlineAdCacheService,
5255
_logger = logger,
5356
super(
5457
AppState(
@@ -87,6 +90,7 @@ class AppBloc extends Bloc<AppEvent, AppState> {
8790
final DataRepository<UserContentPreferences>
8891
_userContentPreferencesRepository;
8992
final DataRepository<User> _userRepository;
93+
final InlineAdCacheService _inlineAdCacheService;
9094

9195
/// Handles the [AppStarted] event.
9296
///
@@ -144,6 +148,8 @@ class AppBloc extends Bloc<AppEvent, AppState> {
144148
// When logging out, it's crucial to explicitly clear all user-related
145149
// data to ensure a clean state for the next session. This prevents
146150
// stale data from causing issues on subsequent logins.
151+
_inlineAdCacheService.clearAllAds();
152+
147153
emit(
148154
state.copyWith(
149155
status: AppLifeCycleStatus.unauthenticated,

0 commit comments

Comments
 (0)