Add viewed history, diagnostics, tag chips and SWF viewer

This commit is contained in:
2026-05-24 11:35:43 +03:00
parent b02c776628
commit 361d0b3910
49 changed files with 4956 additions and 446 deletions
+20
View File
@@ -6,6 +6,7 @@ import '../../core/cache/image_cache_service.dart';
import '../../core/database/app_database.dart';
import '../../core/database/database_service.dart';
import '../../core/http/network_info.dart';
import '../../core/utils/result.dart';
import '../providers/provider_factory.dart';
import '../providers/provider_manager.dart';
import '../repositories/collection_repository.dart';
@@ -13,6 +14,7 @@ import '../repositories/favorite_repository.dart';
import '../repositories/post_repository.dart';
import '../repositories/provider_repository.dart';
import '../repositories/search_repository.dart';
import '../repositories/viewed_post_repository.dart';
import '../services/collection_service.dart';
import '../services/download_service.dart';
import '../services/favorite_service.dart';
@@ -20,6 +22,7 @@ import '../services/feed_service.dart';
import '../services/provider_check_service.dart';
import '../services/search_service.dart';
import '../services/settings_service.dart';
import '../services/viewed_history_service.dart';
final appDatabaseProvider = FutureProvider<AppDatabase>((ref) async {
final database = await AppDatabase.open();
@@ -54,6 +57,10 @@ final searchRepositoryProvider = Provider<SearchRepository>((ref) {
return SearchRepository(ref.watch(databaseServiceProvider));
});
final viewedPostRepositoryProvider = Provider<ViewedPostRepository>((ref) {
return ViewedPostRepository(ref.watch(databaseServiceProvider));
});
final favoriteRepositoryProvider = Provider<FavoriteRepository>((ref) {
return FavoriteRepository(
ref.watch(databaseServiceProvider),
@@ -88,9 +95,22 @@ final feedServiceProvider = Provider<FeedService>((ref) {
ref.watch(providerManagerProvider),
ref.watch(cacheServiceProvider),
ref.watch(settingsServiceProvider),
ref.watch(viewedHistoryServiceProvider),
);
});
final viewedHistoryServiceProvider = Provider<ViewedHistoryService>((ref) {
return ViewedHistoryService(
ref.watch(viewedPostRepositoryProvider),
ref.watch(postRepositoryProvider),
);
});
final viewedKeysProvider = FutureProvider<Set<String>>((ref) async {
final result = await ref.watch(viewedHistoryServiceProvider).getViewedKeys();
return result is Success<Set<String>> ? result.data : <String>{};
});
final searchServiceProvider = Provider<SearchService>((ref) {
return SearchService(
ref.watch(searchRepositoryProvider),