Files
FlClash/lib/views/config/custom_resources.dart
T
chen08209 491fae10f5 feat(views)!: set DNS, NTP, sniffer and TUN key by key
BREAKING CHANGE: DNS and NTP override toggles are removed; picked keys apply to every profile
Changelog: Per-key DNS, NTP, sniffer and TUN settings
2026-10-12 10:34:14 +08:00

50 lines
1.7 KiB
Dart

import 'package:fl_clash/common/common.dart';
import 'package:fl_clash/icons/icons.dart';
import 'package:fl_clash/views/config/filters.dart';
import 'package:fl_clash/views/config/icon_sets.dart';
import 'package:fl_clash/views/config/providers.dart';
import 'package:fl_clash/views/profiles/custom/custom_proxies.dart';
import 'package:fl_clash/widgets/list.dart';
import 'package:fl_clash/widgets/scaffold.dart';
import 'package:material_ui/material_ui.dart';
class CustomResourcesView extends StatelessWidget {
const CustomResourcesView({super.key});
@override
Widget build(BuildContext context) {
final appLocalizations = context.appLocalizations;
final items = [
ListItem.open(
title: Text(appLocalizations.proxies),
leading: const GlyphIcon(AppGlyphs.proxies),
widget: const CustomProxiesView(),
),
ListItem.open(
title: Text(appLocalizations.ruleProviders),
leading: const GlyphIcon(AppGlyphs.resources),
widget: const ClashProvidersView(),
),
ListItem.open(
title: Text(appLocalizations.filters),
leading: const GlyphIcon(AppGlyphs.filter),
widget: const FiltersView(),
),
ListItem.open(
title: Text(appLocalizations.iconSets),
leading: const GlyphIcon(AppGlyphs.photos),
widget: const IconSetsView(),
),
];
return BaseScaffold(
title: appLocalizations.customProfileResources,
body: ListView(
padding: const EdgeInsets.symmetric(
horizontal: 16,
).copyWith(top: context.contentTopPadding, bottom: 16),
children: [generateSectionV3(items: items)],
),
);
}
}