From 42f27922bfa5a3ff724f47a72fe3b49079a3742b Mon Sep 17 00:00:00 2001 From: csf Date: Tue, 9 Aug 2022 20:50:45 +0800 Subject: [PATCH] fix desktop stop-service --- flutter/lib/desktop/pages/connection_page.dart | 15 +++++++++++---- flutter/lib/desktop/pages/desktop_home_page.dart | 7 ++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/flutter/lib/desktop/pages/connection_page.dart b/flutter/lib/desktop/pages/connection_page.dart index cb203f3f8..7a80a64a1 100644 --- a/flutter/lib/desktop/pages/connection_page.dart +++ b/flutter/lib/desktop/pages/connection_page.dart @@ -376,13 +376,20 @@ class _ConnectionPageState extends State { width: 8, decoration: BoxDecoration( borderRadius: BorderRadius.circular(20), - color: Colors.green, + color: svcStopped.value ? Colors.redAccent : Colors.green, ), - ).paddingSymmetric(horizontal: 8.0); + ).paddingSymmetric(horizontal: 10.0); if (svcStopped.value) { return Row( crossAxisAlignment: CrossAxisAlignment.center, - children: [light, Text(translate("Service is not running"))], + children: [ + light, + Text(translate("Service is not running")), + TextButton( + onPressed: () => + bind.mainSetOption(key: "stop-service", value: ""), + child: Text(translate("Start Service"))) + ], ); } else { if (svcStatusCode.value == 0) { @@ -425,7 +432,7 @@ class _ConnectionPageState extends State { } updateStatus() async { - svcStopped.value = bind.mainGetOption(key: "stop-service") == "Y"; + svcStopped.value = await bind.mainGetOption(key: "stop-service") == "Y"; final status = jsonDecode(await bind.mainGetConnectStatus()) as Map; svcStatusCode.value = status["status_num"]; diff --git a/flutter/lib/desktop/pages/desktop_home_page.dart b/flutter/lib/desktop/pages/desktop_home_page.dart index 86dd2ccfe..1d15a30a9 100644 --- a/flutter/lib/desktop/pages/desktop_home_page.dart +++ b/flutter/lib/desktop/pages/desktop_home_page.dart @@ -513,7 +513,12 @@ class _DesktopHomePageState extends State Future> genEnablePopupMenuItem( String label, String key) async { final v = await bind.mainGetOption(key: key); - bool enable = v != "N"; + bool enable; + if (key == "stop-service") { + enable = v != "Y"; + } else { + enable = v != "N"; + } return PopupMenuItem( child: Row(