reorganize settings

This commit is contained in:
Fabian Freund
2026-01-13 18:05:54 +01:00
parent 618ed57f45
commit 33e3fdd111
12 changed files with 1990 additions and 1283 deletions
+6 -3
View File
@@ -53,16 +53,19 @@ import 'package:weblibre/features/geckoview/features/tabs/presentation/screens/c
import 'package:weblibre/features/geckoview/features/tabs/presentation/screens/container_selection.dart';
import 'package:weblibre/features/onboarding/presentation/onboarding.dart';
import 'package:weblibre/features/settings/presentation/screens/addon_collection.dart';
import 'package:weblibre/features/settings/presentation/screens/advanced_settings.dart';
import 'package:weblibre/features/settings/presentation/screens/appearance_display_settings.dart';
import 'package:weblibre/features/settings/presentation/screens/bang_settings.dart';
import 'package:weblibre/features/settings/presentation/screens/developer_settings.dart';
import 'package:weblibre/features/settings/presentation/screens/doh_settings.dart';
import 'package:weblibre/features/settings/presentation/screens/fingerprint_settings.dart';
import 'package:weblibre/features/settings/presentation/screens/general_settings.dart';
import 'package:weblibre/features/settings/presentation/screens/fingerprinting_settings.dart';
import 'package:weblibre/features/settings/presentation/screens/locale_settings.dart';
import 'package:weblibre/features/settings/presentation/screens/privacy_security_settings.dart';
import 'package:weblibre/features/settings/presentation/screens/search_content_settings.dart';
import 'package:weblibre/features/settings/presentation/screens/settings.dart';
import 'package:weblibre/features/settings/presentation/screens/tabs_behavior_settings.dart';
import 'package:weblibre/features/settings/presentation/screens/web_engine_hardening.dart';
import 'package:weblibre/features/settings/presentation/screens/web_engine_hardening_group.dart';
import 'package:weblibre/features/settings/presentation/screens/web_engine_settings.dart';
import 'package:weblibre/features/tor/presentation/screens/tor_proxy.dart';
import 'package:weblibre/features/user/domain/presentation/dialogs/select_profile.dart';
import 'package:weblibre/features/user/domain/presentation/screens/profile_backup.dart';
+167 -96
View File
@@ -80,9 +80,34 @@ RouteBase get $settingsRoute => GoRouteData.$route(
factory: $SettingsRoute._fromState,
routes: [
GoRouteData.$route(
path: 'general',
name: 'GeneralSettingsRoute',
factory: $GeneralSettingsRoute._fromState,
path: 'appearance_display',
name: 'AppearanceDisplaySettingsRoute',
factory: $AppearanceDisplaySettingsRoute._fromState,
),
GoRouteData.$route(
path: 'privacy_security',
name: 'PrivacySecuritySettingsRoute',
factory: $PrivacySecuritySettingsRoute._fromState,
),
GoRouteData.$route(
path: 'search_content',
name: 'SearchContentSettingsRoute',
factory: $SearchContentSettingsRoute._fromState,
),
GoRouteData.$route(
path: 'tabs_behavior',
name: 'TabsBehaviorSettingsRoute',
factory: $TabsBehaviorSettingsRoute._fromState,
),
GoRouteData.$route(
path: 'fingerprinting',
name: 'FingerprintingSettingsRoute',
factory: $FingerprintingSettingsRoute._fromState,
),
GoRouteData.$route(
path: 'advanced',
name: 'AdvancedSettingsRoute',
factory: $AdvancedSettingsRoute._fromState,
),
GoRouteData.$route(
path: 'bang',
@@ -90,50 +115,36 @@ RouteBase get $settingsRoute => GoRouteData.$route(
factory: $BangSettingsRoute._fromState,
),
GoRouteData.$route(
path: 'web_engine',
name: 'WebEngineSettingsRoute',
factory: $WebEngineSettingsRoute._fromState,
path: 'hardening',
name: 'WebEngineHardeningRoute',
factory: $WebEngineHardeningRoute._fromState,
routes: [
GoRouteData.$route(
path: 'hardening',
name: 'WebEngineHardeningRoute',
factory: $WebEngineHardeningRoute._fromState,
routes: [
GoRouteData.$route(
path: 'group/:group',
name: 'WebEngineHardeningGroupRoute',
factory: $WebEngineHardeningGroupRoute._fromState,
),
],
),
GoRouteData.$route(
path: 'doh',
name: 'DohSettingsRoute',
factory: $DohSettingsRoute._fromState,
),
GoRouteData.$route(
path: 'fingerprint',
name: 'FingerprintSettingsRoute',
factory: $FingerprintSettingsRoute._fromState,
),
GoRouteData.$route(
path: 'locales',
name: 'LocaleSettingsRoute',
factory: $LocaleSettingsRoute._fromState,
path: 'group/:group',
name: 'WebEngineHardeningGroupRoute',
factory: $WebEngineHardeningGroupRoute._fromState,
),
],
),
GoRouteData.$route(
path: 'developer',
name: 'DeveloperSettingsRoute',
factory: $DeveloperSettingsRoute._fromState,
routes: [
GoRouteData.$route(
path: 'addon_collection',
name: 'AddonCollectionRoute',
factory: $AddonCollectionRoute._fromState,
),
],
path: 'doh',
name: 'DohSettingsRoute',
factory: $DohSettingsRoute._fromState,
),
GoRouteData.$route(
path: 'fingerprint',
name: 'FingerprintSettingsRoute',
factory: $FingerprintSettingsRoute._fromState,
),
GoRouteData.$route(
path: 'locales',
name: 'LocaleSettingsRoute',
factory: $LocaleSettingsRoute._fromState,
),
GoRouteData.$route(
path: 'addon_collection',
name: 'AddonCollectionRoute',
factory: $AddonCollectionRoute._fromState,
),
],
);
@@ -158,12 +169,117 @@ mixin $SettingsRoute on GoRouteData {
void replace(BuildContext context) => context.replace(location);
}
mixin $GeneralSettingsRoute on GoRouteData {
static GeneralSettingsRoute _fromState(GoRouterState state) =>
GeneralSettingsRoute();
mixin $AppearanceDisplaySettingsRoute on GoRouteData {
static AppearanceDisplaySettingsRoute _fromState(GoRouterState state) =>
AppearanceDisplaySettingsRoute();
@override
String get location => GoRouteData.$location('/settings/general');
String get location => GoRouteData.$location('/settings/appearance_display');
@override
void go(BuildContext context) => context.go(location);
@override
Future<T?> push<T>(BuildContext context) => context.push<T>(location);
@override
void pushReplacement(BuildContext context) =>
context.pushReplacement(location);
@override
void replace(BuildContext context) => context.replace(location);
}
mixin $PrivacySecuritySettingsRoute on GoRouteData {
static PrivacySecuritySettingsRoute _fromState(GoRouterState state) =>
PrivacySecuritySettingsRoute();
@override
String get location => GoRouteData.$location('/settings/privacy_security');
@override
void go(BuildContext context) => context.go(location);
@override
Future<T?> push<T>(BuildContext context) => context.push<T>(location);
@override
void pushReplacement(BuildContext context) =>
context.pushReplacement(location);
@override
void replace(BuildContext context) => context.replace(location);
}
mixin $SearchContentSettingsRoute on GoRouteData {
static SearchContentSettingsRoute _fromState(GoRouterState state) =>
SearchContentSettingsRoute();
@override
String get location => GoRouteData.$location('/settings/search_content');
@override
void go(BuildContext context) => context.go(location);
@override
Future<T?> push<T>(BuildContext context) => context.push<T>(location);
@override
void pushReplacement(BuildContext context) =>
context.pushReplacement(location);
@override
void replace(BuildContext context) => context.replace(location);
}
mixin $TabsBehaviorSettingsRoute on GoRouteData {
static TabsBehaviorSettingsRoute _fromState(GoRouterState state) =>
TabsBehaviorSettingsRoute();
@override
String get location => GoRouteData.$location('/settings/tabs_behavior');
@override
void go(BuildContext context) => context.go(location);
@override
Future<T?> push<T>(BuildContext context) => context.push<T>(location);
@override
void pushReplacement(BuildContext context) =>
context.pushReplacement(location);
@override
void replace(BuildContext context) => context.replace(location);
}
mixin $FingerprintingSettingsRoute on GoRouteData {
static FingerprintingSettingsRoute _fromState(GoRouterState state) =>
FingerprintingSettingsRoute();
@override
String get location => GoRouteData.$location('/settings/fingerprinting');
@override
void go(BuildContext context) => context.go(location);
@override
Future<T?> push<T>(BuildContext context) => context.push<T>(location);
@override
void pushReplacement(BuildContext context) =>
context.pushReplacement(location);
@override
void replace(BuildContext context) => context.replace(location);
}
mixin $AdvancedSettingsRoute on GoRouteData {
static AdvancedSettingsRoute _fromState(GoRouterState state) =>
AdvancedSettingsRoute();
@override
String get location => GoRouteData.$location('/settings/advanced');
@override
void go(BuildContext context) => context.go(location);
@@ -200,34 +316,12 @@ mixin $BangSettingsRoute on GoRouteData {
void replace(BuildContext context) => context.replace(location);
}
mixin $WebEngineSettingsRoute on GoRouteData {
static WebEngineSettingsRoute _fromState(GoRouterState state) =>
WebEngineSettingsRoute();
@override
String get location => GoRouteData.$location('/settings/web_engine');
@override
void go(BuildContext context) => context.go(location);
@override
Future<T?> push<T>(BuildContext context) => context.push<T>(location);
@override
void pushReplacement(BuildContext context) =>
context.pushReplacement(location);
@override
void replace(BuildContext context) => context.replace(location);
}
mixin $WebEngineHardeningRoute on GoRouteData {
static WebEngineHardeningRoute _fromState(GoRouterState state) =>
WebEngineHardeningRoute();
@override
String get location =>
GoRouteData.$location('/settings/web_engine/hardening');
String get location => GoRouteData.$location('/settings/hardening');
@override
void go(BuildContext context) => context.go(location);
@@ -252,7 +346,7 @@ mixin $WebEngineHardeningGroupRoute on GoRouteData {
@override
String get location => GoRouteData.$location(
'/settings/web_engine/hardening/group/${Uri.encodeComponent(_self.group)}',
'/settings/hardening/group/${Uri.encodeComponent(_self.group)}',
);
@override
@@ -273,7 +367,7 @@ mixin $DohSettingsRoute on GoRouteData {
static DohSettingsRoute _fromState(GoRouterState state) => DohSettingsRoute();
@override
String get location => GoRouteData.$location('/settings/web_engine/doh');
String get location => GoRouteData.$location('/settings/doh');
@override
void go(BuildContext context) => context.go(location);
@@ -294,8 +388,7 @@ mixin $FingerprintSettingsRoute on GoRouteData {
FingerprintSettingsRoute();
@override
String get location =>
GoRouteData.$location('/settings/web_engine/fingerprint');
String get location => GoRouteData.$location('/settings/fingerprint');
@override
void go(BuildContext context) => context.go(location);
@@ -316,28 +409,7 @@ mixin $LocaleSettingsRoute on GoRouteData {
LocaleSettingsRoute();
@override
String get location => GoRouteData.$location('/settings/web_engine/locales');
@override
void go(BuildContext context) => context.go(location);
@override
Future<T?> push<T>(BuildContext context) => context.push<T>(location);
@override
void pushReplacement(BuildContext context) =>
context.pushReplacement(location);
@override
void replace(BuildContext context) => context.replace(location);
}
mixin $DeveloperSettingsRoute on GoRouteData {
static DeveloperSettingsRoute _fromState(GoRouterState state) =>
DeveloperSettingsRoute();
@override
String get location => GoRouteData.$location('/settings/developer');
String get location => GoRouteData.$location('/settings/locales');
@override
void go(BuildContext context) => context.go(location);
@@ -358,8 +430,7 @@ mixin $AddonCollectionRoute on GoRouteData {
AddonCollectionRoute();
@override
String get location =>
GoRouteData.$location('/settings/developer/addon_collection');
String get location => GoRouteData.$location('/settings/addon_collection');
@override
void go(BuildContext context) => context.go(location);
+83 -49
View File
@@ -23,45 +23,53 @@ part of 'routes.dart';
name: 'SettingsRoute',
path: '/settings',
routes: [
TypedGoRoute<GeneralSettingsRoute>(
name: 'GeneralSettingsRoute',
path: 'general',
TypedGoRoute<AppearanceDisplaySettingsRoute>(
name: 'AppearanceDisplaySettingsRoute',
path: 'appearance_display',
),
TypedGoRoute<PrivacySecuritySettingsRoute>(
name: 'PrivacySecuritySettingsRoute',
path: 'privacy_security',
),
TypedGoRoute<SearchContentSettingsRoute>(
name: 'SearchContentSettingsRoute',
path: 'search_content',
),
TypedGoRoute<TabsBehaviorSettingsRoute>(
name: 'TabsBehaviorSettingsRoute',
path: 'tabs_behavior',
),
TypedGoRoute<FingerprintingSettingsRoute>(
name: 'FingerprintingSettingsRoute',
path: 'fingerprinting',
),
TypedGoRoute<AdvancedSettingsRoute>(
name: 'AdvancedSettingsRoute',
path: 'advanced',
),
TypedGoRoute<BangSettingsRoute>(name: 'BangSettingsRoute', path: 'bang'),
TypedGoRoute<WebEngineSettingsRoute>(
name: 'WebEngineSettingsRoute',
path: 'web_engine',
TypedGoRoute<WebEngineHardeningRoute>(
name: 'WebEngineHardeningRoute',
path: 'hardening',
routes: [
TypedGoRoute<WebEngineHardeningRoute>(
name: 'WebEngineHardeningRoute',
path: 'hardening',
routes: [
TypedGoRoute<WebEngineHardeningGroupRoute>(
name: 'WebEngineHardeningGroupRoute',
path: 'group/:group',
),
],
),
TypedGoRoute<DohSettingsRoute>(name: 'DohSettingsRoute', path: 'doh'),
TypedGoRoute<FingerprintSettingsRoute>(
name: 'FingerprintSettingsRoute',
path: 'fingerprint',
),
TypedGoRoute<LocaleSettingsRoute>(
name: 'LocaleSettingsRoute',
path: 'locales',
TypedGoRoute<WebEngineHardeningGroupRoute>(
name: 'WebEngineHardeningGroupRoute',
path: 'group/:group',
),
],
),
TypedGoRoute<DeveloperSettingsRoute>(
name: 'DeveloperSettingsRoute',
path: 'developer',
routes: [
TypedGoRoute<AddonCollectionRoute>(
name: 'AddonCollectionRoute',
path: 'addon_collection',
),
],
TypedGoRoute<DohSettingsRoute>(name: 'DohSettingsRoute', path: 'doh'),
TypedGoRoute<FingerprintSettingsRoute>(
name: 'FingerprintSettingsRoute',
path: 'fingerprint',
),
TypedGoRoute<LocaleSettingsRoute>(
name: 'LocaleSettingsRoute',
path: 'locales',
),
TypedGoRoute<AddonCollectionRoute>(
name: 'AddonCollectionRoute',
path: 'addon_collection',
),
],
)
@@ -72,10 +80,50 @@ class SettingsRoute extends GoRouteData with $SettingsRoute {
}
}
class GeneralSettingsRoute extends GoRouteData with $GeneralSettingsRoute {
class AppearanceDisplaySettingsRoute extends GoRouteData
with $AppearanceDisplaySettingsRoute {
@override
Widget build(BuildContext context, GoRouterState state) {
return const GeneralSettingsScreen();
return const AppearanceDisplaySettingsScreen();
}
}
class PrivacySecuritySettingsRoute extends GoRouteData
with $PrivacySecuritySettingsRoute {
@override
Widget build(BuildContext context, GoRouterState state) {
return const PrivacySecuritySettingsScreen();
}
}
class SearchContentSettingsRoute extends GoRouteData
with $SearchContentSettingsRoute {
@override
Widget build(BuildContext context, GoRouterState state) {
return const SearchContentSettingsScreen();
}
}
class TabsBehaviorSettingsRoute extends GoRouteData
with $TabsBehaviorSettingsRoute {
@override
Widget build(BuildContext context, GoRouterState state) {
return const TabsBehaviorSettingsScreen();
}
}
class FingerprintingSettingsRoute extends GoRouteData
with $FingerprintingSettingsRoute {
@override
Widget build(BuildContext context, GoRouterState state) {
return const FingerprintingSettingsScreen();
}
}
class AdvancedSettingsRoute extends GoRouteData with $AdvancedSettingsRoute {
@override
Widget build(BuildContext context, GoRouterState state) {
return const AdvancedSettingsScreen();
}
}
@@ -108,20 +156,6 @@ class LocaleSettingsRoute extends GoRouteData with $LocaleSettingsRoute {
}
}
class WebEngineSettingsRoute extends GoRouteData with $WebEngineSettingsRoute {
@override
Widget build(BuildContext context, GoRouterState state) {
return const WebEngineSettingsScreen();
}
}
class DeveloperSettingsRoute extends GoRouteData with $DeveloperSettingsRoute {
@override
Widget build(BuildContext context, GoRouterState state) {
return const DeveloperSettingsScreen();
}
}
class AddonCollectionRoute extends GoRouteData with $AddonCollectionRoute {
@override
Widget build(BuildContext context, GoRouterState state) {