ublock list management initial

This commit is contained in:
Fabian Freund
2026-04-30 10:44:49 +02:00
parent 28dc4e93f1
commit d2bd36b1ed
43 changed files with 2894 additions and 65 deletions
@@ -292,24 +292,17 @@ class _ErrorLogsTile extends StatelessWidget {
@override
Widget build(BuildContext context) {
return CustomListTile(
title: 'Error Logs',
subtitle: 'View and copy logs for issue reporting',
prefix: Padding(
padding: const EdgeInsets.only(right: 16.0),
child: Icon(
Icons.bug_report,
size: 24,
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
),
suffix: FilledButton.icon(
onPressed: () async {
await ErrorLogsRoute().push(context);
},
icon: const Icon(Icons.open_in_new),
label: const Text('View'),
return ListTile(
leading: Icon(
Icons.bug_report,
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
title: const Text('Error Logs'),
subtitle: const Text('View and copy logs for issue reporting'),
trailing: const Icon(Icons.chevron_right),
onTap: () async {
await ErrorLogsRoute().push(context);
},
);
}
}
@@ -65,25 +65,18 @@ class _ManageExtensionsTile extends StatelessWidget {
@override
Widget build(BuildContext context) {
return CustomListTile(
title: 'Manage Extensions',
return ListTile(
leading: Icon(
MdiIcons.puzzleEdit,
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
title: const Text('Manage Extensions'),
subtitle:
'Browse installed, disabled, available, and unsupported extensions',
prefix: Padding(
padding: const EdgeInsets.only(right: 16.0),
child: Icon(
MdiIcons.puzzleEdit,
size: 24,
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
),
suffix: FilledButton.icon(
onPressed: () async {
await const AddonManagerRoute().push<void>(context);
},
icon: const Icon(Icons.open_in_new),
label: const Text('Open'),
),
const Text('Browse installed, disabled, available, and unsupported extensions'),
trailing: const Icon(Icons.chevron_right),
onTap: () async {
await const AddonManagerRoute().push<void>(context);
},
);
}
}
@@ -93,24 +86,17 @@ class _AddonCollectionTile extends StatelessWidget {
@override
Widget build(BuildContext context) {
return CustomListTile(
title: 'Custom Collection',
subtitle: 'Use a custom Mozilla addon collection',
prefix: Padding(
padding: const EdgeInsets.only(right: 16.0),
child: Icon(
MdiIcons.folderMultiple,
size: 24,
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
),
suffix: FilledButton.icon(
onPressed: () async {
await AddonCollectionRoute().push(context);
},
icon: const Icon(Icons.settings),
label: const Text('Configure'),
return ListTile(
leading: Icon(
MdiIcons.folderMultiple,
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
title: const Text('Custom Collection'),
subtitle: const Text('Use a custom Mozilla addon collection'),
trailing: const Icon(Icons.chevron_right),
onTap: () async {
await AddonCollectionRoute().push(context);
},
);
}
}
@@ -97,6 +97,7 @@ class _TrackingProtectionSection extends StatelessWidget {
_BounceTrackingProtectionTile(),
_QueryParameterStrippingSection(),
_TrackingProtectionExceptionsTile(),
_UBlockFilterListsTile(),
],
);
}
@@ -727,6 +728,27 @@ class _WebEngineHardeningTile extends StatelessWidget {
}
}
class _UBlockFilterListsTile extends StatelessWidget {
const _UBlockFilterListsTile();
@override
Widget build(BuildContext context) {
return ListTile(
title: const Text('uBlock Filter Lists & Hardenings'),
subtitle: const Text('Manage filter lists and apply WebLibre hardenings'),
contentPadding: const EdgeInsets.symmetric(
vertical: 8.0,
horizontal: 16.0,
),
leading: const Icon(Icons.filter_list),
trailing: const Icon(Icons.chevron_right),
onTap: () async {
await UBlockFilterListsRoute().push<void>(context);
},
);
}
}
class _FissionEnabledTile extends HookConsumerWidget {
const _FissionEnabledTile();