Rename NewsSource to Source now that it models every kind (review item 3)

The class and its file (lib/models/source.dart) follow the glossary term.
Persisted JSON keys are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
CedricandClaude Opus 5.5 committed 2026-10-16 16:03:25 +02:00
1 parent 1a3442ea02
commit a47ff28ed1
33 files changed
+119 -119

No files matched your search

+10 -10
View File
@@ -6,7 +6,7 @@ import '../data/default_sources.dart';
import '../models/app_settings.dart';
import '../models/article.dart';
import '../models/briefing.dart';
import '../models/news_source.dart';
import '../models/source.dart';
import '../services/article_extractor.dart';
import '../services/claude_summarizer.dart';
import '../services/consent_service.dart';
@@ -33,7 +33,7 @@ class AppState extends ChangeNotifier {
this._storage, {
FeedService? feedService,
ArticleExtractor? extractor,
List<NewsSource> curatedSources = defaultSources,
List<Source> curatedSources = defaultSources,
Summarizer? summarizer,
}) : _feeds = feedService ?? FeedService(),
_curated = curatedSources,
@@ -47,7 +47,7 @@ class AppState extends ChangeNotifier {
final FeedService _feeds;
/// The curated catalog; [defaultSources] outside of tests.
final List<NewsSource> _curated;
final List<Source> _curated;
/// Used instead of the AI set up in [settings]; for tests.
final Summarizer? _summarizerOverride;
@@ -58,7 +58,7 @@ class AppState extends ChangeNotifier {
final ConsentService consent;
AppSettings settings = const AppSettings();
List<NewsSource> customSources = [];
List<Source> customSources = [];
Set<String> enabledSourceIds = {};
/// Everything the feeds returned; see [articlesOf] for what is shown.
@@ -99,9 +99,9 @@ class AppState extends ChangeNotifier {
SourceKind.fun => const Duration(days: 3),
};
List<NewsSource> get allSources => [..._curated, ...customSources];
List<Source> get allSources => [..._curated, ...customSources];
List<NewsSource> get enabledSources =>
List<Source> get enabledSources =>
allSources.where((s) => enabledSourceIds.contains(s.id)).toList();
Future<void> init() async {
@@ -156,7 +156,7 @@ class AppState extends ChangeNotifier {
await _storage.saveEnabledSourceIds(enabledSourceIds);
}
Future<void> setSourceEnabled(NewsSource source, bool enabled) async {
Future<void> setSourceEnabled(Source source, bool enabled) async {
enabled ? enabledSourceIds.add(source.id) : enabledSourceIds.remove(source.id);
notifyListeners();
await _storage.saveEnabledSourceIds(enabledSourceIds);
@@ -171,7 +171,7 @@ class AppState extends ChangeNotifier {
SourceKind kind = SourceKind.news,
}) async {
final uri = Uri.tryParse(feedUrl);
final source = NewsSource(
final source = Source(
id: 'custom-${DateTime.now().millisecondsSinceEpoch}',
name: name,
feedUrl: feedUrl,
@@ -194,7 +194,7 @@ class AppState extends ChangeNotifier {
return null;
}
Future<void> removeCustomSource(NewsSource source) async {
Future<void> removeCustomSource(Source source) async {
customSources = customSources.where((s) => s.id != source.id).toList();
enabledSourceIds.remove(source.id);
await _storage.saveCustomSources(customSources);
@@ -235,7 +235,7 @@ class AppState extends ChangeNotifier {
}
final source = allSources.firstWhere(
(s) => s.name == sourceName,
orElse: () => NewsSource(
orElse: () => Source(
id: sourceName,
name: sourceName,
feedUrl: '',