Skip to content

Commit d28b4ec

Browse files
committed
refactor(settings): use HeadlineImageStyle enum
- Use new enum for feed tile type - Update event and model fields
1 parent 4e596f6 commit d28b4ec

File tree

1 file changed

+22
-15
lines changed

1 file changed

+22
-15
lines changed

lib/settings/view/feed_settings_page.dart

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ import 'package:flutter_bloc/flutter_bloc.dart';
33
import 'package:ht_main/l10n/l10n.dart';
44
import 'package:ht_main/settings/bloc/settings_bloc.dart';
55
import 'package:ht_main/shared/constants/constants.dart';
6-
import 'package:ht_preferences_client/ht_preferences_client.dart';
6+
import 'package:ht_shared/ht_shared.dart'
7+
show HeadlineImageStyle; // Import new enum
78

89
/// {@template feed_settings_page}
910
/// A page for configuring feed display settings.
@@ -12,15 +13,15 @@ class FeedSettingsPage extends StatelessWidget {
1213
/// {@macro feed_settings_page}
1314
const FeedSettingsPage({super.key});
1415

15-
// Helper to map FeedListTileType enum to user-friendly strings
16-
String _tileTypeToString(FeedListTileType type, AppLocalizations l10n) {
17-
switch (type) {
18-
case FeedListTileType.imageTop:
19-
return l10n.settingsFeedTileTypeImageTop; // Add l10n key
20-
case FeedListTileType.imageStart:
21-
return l10n.settingsFeedTileTypeImageStart; // Add l10n key
22-
case FeedListTileType.textOnly:
23-
return l10n.settingsFeedTileTypeTextOnly; // Add l10n key
16+
// Helper to map HeadlineImageStyle enum to user-friendly strings
17+
String _imageStyleToString(HeadlineImageStyle style, AppLocalizations l10n) {
18+
switch (style) {
19+
case HeadlineImageStyle.hidden:
20+
return l10n.settingsFeedTileTypeTextOnly; // Closest match
21+
case HeadlineImageStyle.smallThumbnail:
22+
return l10n.settingsFeedTileTypeImageStart; // Closest match
23+
case HeadlineImageStyle.largeThumbnail:
24+
return l10n.settingsFeedTileTypeImageTop; // Closest match
2425
}
2526
}
2627

@@ -48,15 +49,21 @@ class FeedSettingsPage extends StatelessWidget {
4849
padding: const EdgeInsets.all(AppSpacing.lg),
4950
children: [
5051
// --- Feed Tile Type ---
51-
_buildDropdownSetting<FeedListTileType>(
52+
_buildDropdownSetting<HeadlineImageStyle>(
5253
context: context,
5354
title: l10n.settingsFeedTileTypeLabel, // Add l10n key
54-
currentValue: state.feedSettings.feedListTileType,
55-
items: FeedListTileType.values,
56-
itemToString: (type) => _tileTypeToString(type, l10n),
55+
currentValue:
56+
state
57+
.userAppSettings
58+
.feedPreferences
59+
.headlineImageStyle, // Use new model field
60+
items: HeadlineImageStyle.values,
61+
itemToString: (style) => _imageStyleToString(style, l10n),
5762
onChanged: (value) {
5863
if (value != null) {
59-
settingsBloc.add(SettingsFeedTileTypeChanged(value));
64+
settingsBloc.add(
65+
SettingsFeedTileTypeChanged(value),
66+
); // Use new event
6067
}
6168
},
6269
),

0 commit comments

Comments
 (0)