fix: custom client, option to bool (#8303)

Signed-off-by: fufesou <linlong1266@gmail.com>
This commit is contained in:
fufesou
2024-06-10 11:01:39 +08:00
committed by GitHub
parent 32ab56f864
commit 9ab5512bfa
8 changed files with 32 additions and 30 deletions

View File

@@ -1430,7 +1430,7 @@ bool option2bool(String option, String value) {
if (option.startsWith("enable-")) {
res = value != "N";
} else if (option.startsWith("allow-") ||
option == "stop-service" ||
option == kOptionStopService ||
option == kOptionDirectServer ||
option == "stop-rendezvous-service" ||
option == kOptionForceAlwaysRelay) {
@@ -1447,7 +1447,7 @@ String bool2option(String option, bool b) {
if (option.startsWith('enable-')) {
res = b ? defaultOptionYes : 'N';
} else if (option.startsWith('allow-') ||
option == "stop-service" ||
option == kOptionStopService ||
option == kOptionDirectServer ||
option == "stop-rendezvous-service" ||
option == kOptionForceAlwaysRelay) {
@@ -1485,9 +1485,9 @@ bool mainGetPeerBoolOptionSync(String id, String key) {
return option2bool(key, bind.mainGetPeerOptionSync(id: id, key: key));
}
mainSetPeerBoolOptionSync(String id, String key, bool v) {
bind.mainSetPeerOptionSync(id: id, key: key, value: bool2option(key, v));
}
// Don't use `option2bool()` and `bool2option()` to convert the session option.
// Use `sessionGetToggleOption()` and `sessionToggleOption()` instead.
// Because all session options use `Y` and `<Empty>` as values.
Future<bool> matchPeer(String searchText, Peer peer) async {
if (searchText.isEmpty) {
@@ -2672,7 +2672,7 @@ Future<void> start_service(bool is_start) async {
!isMacOS ||
await callMainCheckSuperUserPermission();
if (checked) {
bind.mainSetOption(key: "stop-service", value: is_start ? "" : "Y");
mainSetBoolOption(kOptionStopService, !is_start);
}
}

View File

@@ -133,6 +133,7 @@ const String kOptionAllowAlwaysSoftwareRender = "allow-always-software-render";
const String kOptionEnableCheckUpdate = "enable-check-update";
const String kOptionAllowLinuxHeadless = "allow-linux-headless";
const String kOptionAllowRemoveWallpaper = "allow-remove-wallpaper";
const String kOptionStopService = "stop-service";
const String kOptionToggleViewOnly = "view-only";

View File

@@ -671,7 +671,7 @@ class _DesktopHomePageState extends State<DesktopHomePage>
systemError = error;
setState(() {});
}
final v = await bind.mainGetOption(key: "stop-service") == "Y";
final v = await mainGetBoolOption(kOptionStopService);
if (v != svcStopped.value) {
svcStopped.value = v;
setState(() {});

View File

@@ -103,8 +103,8 @@ class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
_enableAbr = enableAbrRes;
}
final denyLanDiscovery = !option2bool('enable-lan-discovery',
await bind.mainGetOption(key: 'enable-lan-discovery'));
final denyLanDiscovery = !option2bool(kOptionEnableLanDiscovery,
await bind.mainGetOption(key: kOptionEnableLanDiscovery));
if (denyLanDiscovery != _denyLANDiscovery) {
update = true;
_denyLANDiscovery = denyLanDiscovery;
@@ -311,10 +311,8 @@ class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
onToggle: isOptionFixed(kOptionEnableAbr)
? null
: (v) async {
await bind.mainSetOption(
key: kOptionEnableAbr, value: v ? defaultOptionYes : "N");
final newValue =
await bind.mainGetOption(key: kOptionEnableAbr) != "N";
await mainSetBoolOption(kOptionEnableAbr, v);
final newValue = await mainGetBoolOption(kOptionEnableAbr);
setState(() {
_enableAbr = newValue;
});
@@ -326,12 +324,9 @@ class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
onToggle: isOptionFixed(kOptionEnableRecordSession)
? null
: (v) async {
await bind.mainSetOption(
key: kOptionEnableRecordSession,
value: v ? defaultOptionYes : "N");
await mainSetBoolOption(kOptionEnableRecordSession, v);
final newValue =
await bind.mainGetOption(key: kOptionEnableRecordSession) !=
"N";
await mainGetBoolOption(kOptionEnableRecordSession);
setState(() {
_enableRecordSession = newValue;
});
@@ -587,12 +582,9 @@ class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
onToggle: isOptionFixed(kOptionEnableHwcodec)
? null
: (v) async {
await bind.mainSetOption(
key: kOptionEnableHwcodec,
value: v ? defaultOptionYes : "N");
await mainSetBoolOption(kOptionEnableHwcodec, v);
final newValue =
await bind.mainGetOption(key: kOptionEnableHwcodec) !=
"N";
await mainGetBoolOption(kOptionEnableHwcodec);
setState(() {
_enableHardwareCodec = newValue;
});

View File

@@ -226,8 +226,7 @@ class ServerModel with ChangeNotifier {
_approveMode = approveMode;
update = true;
}
var stopped = option2bool(
"stop-service", await bind.mainGetOption(key: "stop-service"));
var stopped = await mainGetBoolOption(kOptionStopService);
final oldPwdText = _serverPasswd.text;
if (stopped ||
verificationMethod == kUsePermanentPassword ||