@@ -12,7 +12,7 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
12
12
SettingsBloc ({
13
13
required HtDataRepository <UserAppSettings > userAppSettingsRepository,
14
14
}) : _userAppSettingsRepository = userAppSettingsRepository,
15
- super (SettingsInitial ()) {
15
+ super (const SettingsInitial ()) {
16
16
on < SettingsLoaded > (_onSettingsLoaded);
17
17
on < SettingsBaseThemeChanged > (_onSettingsBaseThemeChanged);
18
18
on < SettingsAccentThemeChanged > (_onSettingsAccentThemeChanged);
@@ -28,9 +28,8 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
28
28
SettingsLoaded event,
29
29
Emitter <SettingsState > emit,
30
30
) async {
31
- emit (SettingsLoadInProgress ());
31
+ emit (SettingsLoadInProgress (userAppSettings : state.userAppSettings ));
32
32
try {
33
- // Assuming a fixed ID for user settings, or fetching based on current user
34
33
final userAppSettings = await _userAppSettingsRepository.read (
35
34
id: event.userId! ,
36
35
);
@@ -40,9 +39,9 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
40
39
await _userAppSettingsRepository.create (item: defaultSettings);
41
40
emit (SettingsLoadSuccess (userAppSettings: defaultSettings));
42
41
} on HtHttpException catch (e) {
43
- emit (SettingsLoadFailure (e.message));
42
+ emit (SettingsLoadFailure (e.message, userAppSettings : state.userAppSettings ));
44
43
} catch (e) {
45
- emit (SettingsLoadFailure ('An unexpected error occurred: $e ' ));
44
+ emit (SettingsLoadFailure ('An unexpected error occurred: $e ' , userAppSettings : state.userAppSettings ));
46
45
}
47
46
}
48
47
@@ -58,18 +57,18 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
58
57
);
59
58
emit (SettingsUpdateSuccess (userAppSettings: result));
60
59
} on HtHttpException catch (e) {
61
- emit (SettingsUpdateFailure (e.message));
60
+ emit (SettingsUpdateFailure (e.message, userAppSettings : state.userAppSettings ));
62
61
} catch (e) {
63
- emit (SettingsUpdateFailure ('An unexpected error occurred: $e ' ));
62
+ emit (SettingsUpdateFailure ('An unexpected error occurred: $e ' , userAppSettings : state.userAppSettings ));
64
63
}
65
64
}
66
65
67
66
Future <void > _onSettingsBaseThemeChanged (
68
67
SettingsBaseThemeChanged event,
69
68
Emitter <SettingsState > emit,
70
69
) async {
71
- if (state is SettingsLoadSuccess ) {
72
- final currentSettings = (state as SettingsLoadSuccess ).userAppSettings;
70
+ final currentSettings = state.userAppSettings;
71
+ if ( currentSettings != null ) {
73
72
final updatedSettings = currentSettings.copyWith (
74
73
displaySettings: currentSettings.displaySettings.copyWith (
75
74
baseTheme: event.baseTheme,
@@ -83,8 +82,8 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
83
82
SettingsAccentThemeChanged event,
84
83
Emitter <SettingsState > emit,
85
84
) async {
86
- if (state is SettingsLoadSuccess ) {
87
- final currentSettings = (state as SettingsLoadSuccess ).userAppSettings;
85
+ final currentSettings = state.userAppSettings;
86
+ if ( currentSettings != null ) {
88
87
final updatedSettings = currentSettings.copyWith (
89
88
displaySettings: currentSettings.displaySettings.copyWith (
90
89
accentTheme: event.accentTheme,
@@ -98,8 +97,8 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
98
97
SettingsFontFamilyChanged event,
99
98
Emitter <SettingsState > emit,
100
99
) async {
101
- if (state is SettingsLoadSuccess ) {
102
- final currentSettings = (state as SettingsLoadSuccess ).userAppSettings;
100
+ final currentSettings = state.userAppSettings;
101
+ if ( currentSettings != null ) {
103
102
final updatedSettings = currentSettings.copyWith (
104
103
displaySettings: currentSettings.displaySettings.copyWith (
105
104
fontFamily: event.fontFamily,
@@ -113,8 +112,8 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
113
112
SettingsTextScaleFactorChanged event,
114
113
Emitter <SettingsState > emit,
115
114
) async {
116
- if (state is SettingsLoadSuccess ) {
117
- final currentSettings = (state as SettingsLoadSuccess ).userAppSettings;
115
+ final currentSettings = state.userAppSettings;
116
+ if ( currentSettings != null ) {
118
117
final updatedSettings = currentSettings.copyWith (
119
118
displaySettings: currentSettings.displaySettings.copyWith (
120
119
textScaleFactor: event.textScaleFactor,
@@ -128,8 +127,8 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
128
127
SettingsFontWeightChanged event,
129
128
Emitter <SettingsState > emit,
130
129
) async {
131
- if (state is SettingsLoadSuccess ) {
132
- final currentSettings = (state as SettingsLoadSuccess ).userAppSettings;
130
+ final currentSettings = state.userAppSettings;
131
+ if ( currentSettings != null ) {
133
132
final updatedSettings = currentSettings.copyWith (
134
133
displaySettings: currentSettings.displaySettings.copyWith (
135
134
fontWeight: event.fontWeight,
@@ -143,8 +142,8 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
143
142
SettingsLanguageChanged event,
144
143
Emitter <SettingsState > emit,
145
144
) async {
146
- if (state is SettingsLoadSuccess ) {
147
- final currentSettings = (state as SettingsLoadSuccess ).userAppSettings;
145
+ final currentSettings = state.userAppSettings;
146
+ if ( currentSettings != null ) {
148
147
final updatedSettings = currentSettings.copyWith (
149
148
language: event.language,
150
149
);
0 commit comments