Skip to content

Commit 8011a7f

Browse files
committed
switch to history repository
1 parent 62f48f9 commit 8011a7f

File tree

6 files changed

+120
-16
lines changed

6 files changed

+120
-16
lines changed

app/lib/features/geckoview/features/browser/presentation/widgets/browser_modules/browser_view.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,9 @@ class _BrowserViewState extends ConsumerState<BrowserView>
108108
.deleteDataOnEngineStart(settings.deleteBrowsingDataOnQuit);
109109

110110
if (settings.historyAutoCleanInterval > Duration.zero) {
111-
await GeckoHistoryService().deleteVisitsBetween(
111+
await ref
112+
.read(historyRepositoryProvider.notifier)
113+
.deleteVisitsBetween(
112114
DateTime(0),
113115
DateTime.now().subtract(settings.historyAutoCleanInterval),
114116
);

app/lib/features/geckoview/features/history/domain/providers.dart

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
2424
import 'package:riverpod/experimental/persist.dart';
2525
import 'package:riverpod_annotation/riverpod_annotation.dart';
2626
import 'package:weblibre/features/geckoview/features/history/domain/entities/history_filter_options.dart';
27+
import 'package:weblibre/features/geckoview/features/history/domain/repositories/history.dart';
2728
import 'package:weblibre/features/user/data/providers.dart';
2829

2930
part 'providers.g.dart';
@@ -67,14 +68,7 @@ class HistoryFilter extends _$HistoryFilter {
6768
Future<List<VisitInfo>> browsingHistory(Ref ref) {
6869
final options = ref.watch(historyFilterProvider);
6970

70-
final service = GeckoHistoryService();
71-
return service
72-
.getDetailedVisits(
73-
options.dateRange?.start ?? DateTime(0),
74-
options.dateRange?.end ?? DateTime(9999),
75-
options.visitTypes,
76-
)
77-
.then(
78-
(visits) => visits..sort((a, b) => b.visitTime.compareTo(a.visitTime)),
79-
);
71+
return ref
72+
.read(historyRepositoryProvider.notifier)
73+
.getDetailedVisits(options);
8074
}

app/lib/features/geckoview/features/history/domain/providers.g.dart

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
2+
import 'package:riverpod_annotation/riverpod_annotation.dart';
3+
import 'package:weblibre/features/geckoview/features/history/domain/entities/history_filter_options.dart';
4+
5+
part 'history.g.dart';
6+
7+
@Riverpod(keepAlive: true)
8+
class HistoryRepository extends _$HistoryRepository {
9+
final _service = GeckoHistoryService();
10+
11+
Future<void> deleteVisitsBetween(DateTime start, DateTime end) {
12+
return _service.deleteVisitsBetween(start, end);
13+
}
14+
15+
Future<List<VisitInfo>> getDetailedVisits(HistoryFilterOptions options) {
16+
return _service
17+
.getDetailedVisits(
18+
options.dateRange?.start ?? DateTime(0),
19+
options.dateRange?.end ?? DateTime(9999),
20+
options.visitTypes,
21+
)
22+
.then(
23+
(visits) =>
24+
visits..sort((a, b) => b.visitTime.compareTo(a.visitTime)),
25+
);
26+
}
27+
28+
Future<List<VisitInfo>> getVisitsPaginated({
29+
required int count,
30+
int offset = 0,
31+
Set<VisitType> types = const {VisitType.link},
32+
}) {
33+
return _service.getVisitsPaginated(offset, count, types);
34+
}
35+
36+
Future<void> deleteVisit(VisitInfo info) {
37+
return _service.deleteVisit(info);
38+
}
39+
40+
@override
41+
void build() {}
42+
}

app/lib/features/geckoview/features/history/domain/repositories/history.g.dart

Lines changed: 63 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/lib/features/geckoview/features/history/presentation/screens/history.dart

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import 'package:weblibre/features/geckoview/domain/repositories/tab.dart';
3838
import 'package:weblibre/features/geckoview/features/browser/presentation/dialogs/delete_data.dart';
3939
import 'package:weblibre/features/geckoview/features/history/domain/entities/history_filter_options.dart';
4040
import 'package:weblibre/features/geckoview/features/history/domain/providers.dart';
41+
import 'package:weblibre/features/geckoview/features/history/domain/repositories/history.dart';
4142
import 'package:weblibre/features/geckoview/features/history/presentation/dialogs/delete_file.dart';
4243
import 'package:weblibre/features/user/data/models/general_settings.dart';
4344
import 'package:weblibre/presentation/hooks/menu_controller.dart';
@@ -106,8 +107,9 @@ class Section extends MultiSliver {
106107
builder: (context, ref, _) {
107108
return IconButton(
108109
onPressed: () async {
109-
final service = GeckoHistoryService();
110-
await service.deleteVisit(item);
110+
await ref
111+
.read(historyRepositoryProvider.notifier)
112+
.deleteVisit(item);
111113

112114
final downloadedFile = item.title.mapNotNull(
113115
(title) => File(title),
@@ -240,8 +242,9 @@ class HistoryScreen extends HookConsumerWidget {
240242
DeleteDecision? deleteDecision;
241243

242244
for (final item in selectedItems.value) {
243-
final service = GeckoHistoryService();
244-
await service.deleteVisit(item);
245+
await ref
246+
.read(historyRepositoryProvider.notifier)
247+
.deleteVisit(item);
245248

246249
final downloadedFile = item.title.mapNotNull(
247250
(title) => File(title),

0 commit comments

Comments
 (0)