remove deprecated content blocking

This commit is contained in:
Fabian Freund
2024-10-10 06:12:46 +02:00
parent 2c71eeb670
commit 10d6a3de1d
24 changed files with 0 additions and 1526 deletions
@@ -7,14 +7,12 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:lensai/features/bangs/data/models/bang.dart';
import 'package:lensai/features/bangs/domain/providers.dart';
import 'package:lensai/features/bangs/domain/repositories/data.dart';
import 'package:lensai/features/content_block/data/models/host.dart';
import 'package:lensai/features/kagi/data/entities/modes.dart';
import 'package:lensai/features/settings/data/models/settings.dart';
import 'package:lensai/features/settings/data/repositories/settings_repository.dart';
import 'package:lensai/features/settings/presentation/controllers/save_settings.dart';
import 'package:lensai/features/settings/presentation/widgets/bang_group_list_tile.dart';
import 'package:lensai/features/settings/presentation/widgets/custom_list_tile.dart';
import 'package:lensai/features/settings/presentation/widgets/host_list_tile.dart';
import 'package:lensai/features/settings/utils/session_link_extractor.dart';
import 'package:lensai/presentation/hooks/listenable_callback.dart';
import 'package:lensai/utils/ui_helper.dart' as ui_helper;
@@ -335,56 +333,7 @@ class SettingsScreen extends HookConsumerWidget {
: null,
),
_buildSection(theme, 'Content Blocking'),
SwitchListTile.adaptive(
title: const Text('Enable Content Blocking'),
subtitle: const Text(
'Prevents access to unwanted websites and ads, as defined in the selected lists below.',
),
value: settings.enableContentBlocking,
onChanged: (value) async {
await ref.read(saveSettingsControllerProvider.notifier).save(
(currentSettings) => currentSettings.copyWith
.enableContentBlocking(value),
);
},
),
_buildSubSection(theme, 'Lists'),
HostListTile(
enableContentBlocking: settings.enableContentBlocking,
enableHostLists: settings.enableHostList,
source: HostSource.stevenBlackUnified,
title: 'StevenBlack: Unified',
subtitle:
'Blocks domains containing adware, malware and trackers.',
),
HostListTile(
enableContentBlocking: settings.enableContentBlocking,
enableHostLists: settings.enableHostList,
source: HostSource.stevenBlackFakeNews,
title: 'StevenBlack: Fake News',
subtitle: 'Blocks domains known for spreading fake news.',
),
HostListTile(
enableContentBlocking: settings.enableContentBlocking,
enableHostLists: settings.enableHostList,
source: HostSource.stevenBlackGambling,
title: 'StevenBlack: Gambling',
subtitle: 'Blocks domains related to gambling.',
),
HostListTile(
enableContentBlocking: settings.enableContentBlocking,
enableHostLists: settings.enableHostList,
source: HostSource.stevenBlackPorn,
title: 'StevenBlack: Porn',
subtitle: 'Blocks adult content domains.',
),
HostListTile(
enableContentBlocking: settings.enableContentBlocking,
enableHostLists: settings.enableHostList,
source: HostSource.stevenBlackSocial,
title: 'StevenBlack: Social',
subtitle: 'Blocks social media domains.',
),
const SizedBox(
height: 16,
),
@@ -1,83 +0,0 @@
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:lensai/features/content_block/data/models/host.dart';
import 'package:lensai/features/content_block/domain/providers.dart';
import 'package:lensai/features/content_block/domain/repositories/sync.dart';
import 'package:lensai/features/settings/data/models/settings.dart';
import 'package:lensai/features/settings/presentation/controllers/save_settings.dart';
import 'package:lensai/features/settings/presentation/widgets/custom_list_tile.dart';
import 'package:lensai/features/settings/presentation/widgets/sync_details_table.dart';
class HostListTile extends HookConsumerWidget {
final bool enabled;
final bool enableContentBlocking;
final Set<HostSource> enableHostLists;
final HostSource source;
final String title;
final String subtitle;
const HostListTile({
required this.enableContentBlocking,
required this.enableHostLists,
required this.source,
required this.title,
required this.subtitle,
this.enabled = true,
super.key,
});
@override
Widget build(BuildContext context, WidgetRef ref) {
final enabled = enableHostLists.contains(source);
final lastSync = ref.watch(
lastSyncOfSourceProvider(source).select((value) => value.valueOrNull),
);
final count = ref.watch(
hostCountOfSourceProvider(source).select((value) => value.valueOrNull),
);
Future<void> toggleHostLists(HostSource source) async {
final lists = enabled
? ({...enableHostLists}..remove(source))
: {...enableHostLists, source};
await ref.read(saveSettingsControllerProvider.notifier).save(
(currentSettings) => currentSettings.copyWith.enableHostList(lists),
);
}
return CustomListTile(
enabled: enableContentBlocking,
title: title,
subtitle: subtitle,
prefix: Checkbox.adaptive(
value: enableHostLists.contains(source),
onChanged: enableContentBlocking
? (_) async {
await toggleHostLists(source);
}
: null,
),
suffix: FilledButton.icon(
onPressed: (enabled && enableContentBlocking)
? () async {
await ref
.read(hostSyncRepositoryProvider.notifier)
.syncHostSource(source, null);
}
: null,
icon: const Icon(Icons.sync),
label: const Text('Sync'),
),
content: (enabled && enableContentBlocking)
? Padding(
padding: const EdgeInsets.only(top: 8.0),
child: SyncDetailsTable(count, lastSync),
)
: null,
);
}
}