@@ -5,6 +5,7 @@ import 'package:bloc_concurrency/bloc_concurrency.dart';
55import 'package:core/core.dart' ;
66import 'package:data_repository/data_repository.dart' ;
77import 'package:equatable/equatable.dart' ;
8+ import 'package:flutter_news_app_mobile_client_full_source_code/ads/ad_cache_service.dart' ;
89
910part 'settings_event.dart' ;
1011part 'settings_state.dart' ;
@@ -35,6 +36,10 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
3536 _onAppFontSizeChanged,
3637 transformer: sequential (),
3738 );
39+ on < SettingsHeadlineImageStyleChanged > (
40+ _onHeadlineImageStyleChanged,
41+ transformer: sequential (),
42+ );
3843 on < SettingsAppFontTypeChanged > (
3944 _onAppFontTypeChanged,
4045 transformer: sequential (),
@@ -164,6 +169,8 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
164169 );
165170 emit (state.copyWith (userAppSettings: updatedSettings, clearError: true ));
166171 await _persistSettings (updatedSettings, emit);
172+ // Clear ad cache when theme accent changes to ensure new ads are styled correctly.
173+ AdCacheService ().clearAllAds ();
167174 }
168175
169176 Future <void > _onAppFontSizeChanged (
@@ -181,6 +188,24 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
181188 await _persistSettings (updatedSettings, emit);
182189 }
183190
191+ Future <void > _onHeadlineImageStyleChanged (
192+ SettingsHeadlineImageStyleChanged event,
193+ Emitter <SettingsState > emit,
194+ ) async {
195+ if (state.userAppSettings == null ) return ;
196+
197+ final updatedSettings = state.userAppSettings! .copyWith (
198+ feedPreferences: state.userAppSettings! .feedPreferences.copyWith (
199+ headlineImageStyle: event.imageStyle,
200+ ),
201+ );
202+ emit (state.copyWith (userAppSettings: updatedSettings, clearError: true ));
203+ await _persistSettings (updatedSettings, emit);
204+ // Clear ad cache when headline image style changes to ensure new ads are
205+ // loaded with the correct template type (small/medium).
206+ AdCacheService ().clearAllAds ();
207+ }
208+
184209 Future <void > _onAppFontTypeChanged (
185210 SettingsAppFontTypeChanged event,
186211 Emitter <SettingsState > emit,
0 commit comments