new: add use xray core option

This commit is contained in:
hiddify-com
2024-08-06 16:14:00 -04:00
parent aa99fabb8d
commit 27a1374dbc
6 changed files with 23 additions and 2 deletions

View File

@@ -31,7 +31,10 @@ abstract class ConfigOptions {
mapFrom: Region.values.byName,
mapTo: (value) => value.name,
);
static final useXrayCoreWhenPossible = PreferencesNotifier.create<bool, bool>(
"use-xray-core-when-possible",
false,
);
static final blockAds = PreferencesNotifier.create<bool, bool>(
"block-ads",
false,
@@ -329,6 +332,7 @@ abstract class ConfigOptions {
static final Map<String, StateNotifierProvider<PreferencesNotifier, dynamic>> preferences = {
"region": region,
"block-ads": blockAds,
"use-xray-core-when-possible": useXrayCoreWhenPossible,
"service-mode": serviceMode,
"log-level": logLevel,
"resolve-destination": resolveDestination,
@@ -432,6 +436,7 @@ abstract class ConfigOptions {
return SingboxConfigOption(
region: ref.watch(region).name,
blockAds: ref.watch(blockAds),
useXrayCoreWhenPossible: ref.watch(useXrayCoreWhenPossible),
executeConfigAsIs: false,
logLevel: ref.watch(logLevel),
resolveDestination: ref.watch(resolveDestination),

View File

@@ -138,6 +138,7 @@ class ConfigOptionsPage extends HookConsumerWidget {
title: t.config.logLevel,
presentChoice: (value) => value.name.toUpperCase(),
),
const SettingsDivider(),
SettingsSection(t.config.section.route),
ChoicePreferenceWidget(
@@ -358,6 +359,12 @@ class ConfigOptionsPage extends HookConsumerWidget {
inputToValue: int.tryParse,
),
const Gap(24),
SwitchListTile(
title: Text(experimental(t.config.useXrayCoreWhenPossible.Label)),
subtitle: Text(t.config.useXrayCoreWhenPossible.Description),
value: ref.watch(ConfigOptions.useXrayCoreWhenPossible),
onChanged: ref.watch(ConfigOptions.useXrayCoreWhenPossible.notifier).update,
),
],
),
),