@@ -12,7 +12,7 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
1212 SettingsBloc ({
1313 required HtDataRepository <UserAppSettings > userAppSettingsRepository,
1414 }) : _userAppSettingsRepository = userAppSettingsRepository,
15- super (SettingsInitial ()) {
15+ super (const SettingsInitial ()) {
1616 on < SettingsLoaded > (_onSettingsLoaded);
1717 on < SettingsBaseThemeChanged > (_onSettingsBaseThemeChanged);
1818 on < SettingsAccentThemeChanged > (_onSettingsAccentThemeChanged);
@@ -28,9 +28,8 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
2828 SettingsLoaded event,
2929 Emitter <SettingsState > emit,
3030 ) async {
31- emit (SettingsLoadInProgress ());
31+ emit (SettingsLoadInProgress (userAppSettings : state.userAppSettings ));
3232 try {
33- // Assuming a fixed ID for user settings, or fetching based on current user
3433 final userAppSettings = await _userAppSettingsRepository.read (
3534 id: event.userId! ,
3635 );
@@ -40,9 +39,9 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
4039 await _userAppSettingsRepository.create (item: defaultSettings);
4140 emit (SettingsLoadSuccess (userAppSettings: defaultSettings));
4241 } on HtHttpException catch (e) {
43- emit (SettingsLoadFailure (e.message));
42+ emit (SettingsLoadFailure (e.message, userAppSettings : state.userAppSettings ));
4443 } catch (e) {
45- emit (SettingsLoadFailure ('An unexpected error occurred: $e ' ));
44+ emit (SettingsLoadFailure ('An unexpected error occurred: $e ' , userAppSettings : state.userAppSettings ));
4645 }
4746 }
4847
@@ -58,18 +57,18 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
5857 );
5958 emit (SettingsUpdateSuccess (userAppSettings: result));
6059 } on HtHttpException catch (e) {
61- emit (SettingsUpdateFailure (e.message));
60+ emit (SettingsUpdateFailure (e.message, userAppSettings : state.userAppSettings ));
6261 } catch (e) {
63- emit (SettingsUpdateFailure ('An unexpected error occurred: $e ' ));
62+ emit (SettingsUpdateFailure ('An unexpected error occurred: $e ' , userAppSettings : state.userAppSettings ));
6463 }
6564 }
6665
6766 Future <void > _onSettingsBaseThemeChanged (
6867 SettingsBaseThemeChanged event,
6968 Emitter <SettingsState > emit,
7069 ) async {
71- if (state is SettingsLoadSuccess ) {
72- final currentSettings = (state as SettingsLoadSuccess ).userAppSettings;
70+ final currentSettings = state.userAppSettings;
71+ if ( currentSettings != null ) {
7372 final updatedSettings = currentSettings.copyWith (
7473 displaySettings: currentSettings.displaySettings.copyWith (
7574 baseTheme: event.baseTheme,
@@ -83,8 +82,8 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
8382 SettingsAccentThemeChanged event,
8483 Emitter <SettingsState > emit,
8584 ) async {
86- if (state is SettingsLoadSuccess ) {
87- final currentSettings = (state as SettingsLoadSuccess ).userAppSettings;
85+ final currentSettings = state.userAppSettings;
86+ if ( currentSettings != null ) {
8887 final updatedSettings = currentSettings.copyWith (
8988 displaySettings: currentSettings.displaySettings.copyWith (
9089 accentTheme: event.accentTheme,
@@ -98,8 +97,8 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
9897 SettingsFontFamilyChanged event,
9998 Emitter <SettingsState > emit,
10099 ) async {
101- if (state is SettingsLoadSuccess ) {
102- final currentSettings = (state as SettingsLoadSuccess ).userAppSettings;
100+ final currentSettings = state.userAppSettings;
101+ if ( currentSettings != null ) {
103102 final updatedSettings = currentSettings.copyWith (
104103 displaySettings: currentSettings.displaySettings.copyWith (
105104 fontFamily: event.fontFamily,
@@ -113,8 +112,8 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
113112 SettingsTextScaleFactorChanged event,
114113 Emitter <SettingsState > emit,
115114 ) async {
116- if (state is SettingsLoadSuccess ) {
117- final currentSettings = (state as SettingsLoadSuccess ).userAppSettings;
115+ final currentSettings = state.userAppSettings;
116+ if ( currentSettings != null ) {
118117 final updatedSettings = currentSettings.copyWith (
119118 displaySettings: currentSettings.displaySettings.copyWith (
120119 textScaleFactor: event.textScaleFactor,
@@ -128,8 +127,8 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
128127 SettingsFontWeightChanged event,
129128 Emitter <SettingsState > emit,
130129 ) async {
131- if (state is SettingsLoadSuccess ) {
132- final currentSettings = (state as SettingsLoadSuccess ).userAppSettings;
130+ final currentSettings = state.userAppSettings;
131+ if ( currentSettings != null ) {
133132 final updatedSettings = currentSettings.copyWith (
134133 displaySettings: currentSettings.displaySettings.copyWith (
135134 fontWeight: event.fontWeight,
@@ -143,8 +142,8 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
143142 SettingsLanguageChanged event,
144143 Emitter <SettingsState > emit,
145144 ) async {
146- if (state is SettingsLoadSuccess ) {
147- final currentSettings = (state as SettingsLoadSuccess ).userAppSettings;
145+ final currentSettings = state.userAppSettings;
146+ if ( currentSettings != null ) {
148147 final updatedSettings = currentSettings.copyWith (
149148 language: event.language,
150149 );
0 commit comments