From c2287214f884115642df8d685f6b2866ce4a6c65 Mon Sep 17 00:00:00 2001 From: 21pages Date: Thu, 20 Oct 2022 09:21:02 +0800 Subject: [PATCH] sync setting page service status Signed-off-by: 21pages --- build.py | 2 +- .../lib/desktop/pages/connection_page.dart | 24 ++++++++++--------- .../desktop/pages/desktop_setting_page.dart | 15 ++++++------ 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/build.py b/build.py index 0cf62daf1..a81a9a999 100755 --- a/build.py +++ b/build.py @@ -71,7 +71,7 @@ def make_parser(): parser.add_argument( '--hwcodec', action='store_true', - help='Enable feature hwcodec' + help='Enable feature hwcodec' + ('' if windows or osx else ', need libva-dev, libvdpau-dev.') ) parser.add_argument( '--portable', diff --git a/flutter/lib/desktop/pages/connection_page.dart b/flutter/lib/desktop/pages/connection_page.dart index f2b5cd9f4..8964191f8 100644 --- a/flutter/lib/desktop/pages/connection_page.dart +++ b/flutter/lib/desktop/pages/connection_page.dart @@ -39,6 +39,10 @@ class _ConnectionPageState extends State final RxBool _idInputFocused = false.obs; final FocusNode _idFocusNode = FocusNode(); + var svcStopped = false.obs; + var svcStatusCode = 0.obs; + var svcIsUsingPublicServer = true.obs; + @override void initState() { super.initState(); @@ -58,6 +62,15 @@ class _ConnectionPageState extends State _idFocusNode.addListener(() { _idInputFocused.value = _idFocusNode.hasFocus; }); + Get.put(svcStopped, tag: 'service-stop'); + } + + @override + void dispose() { + _idController.dispose(); + _updateTimer?.cancel(); + Get.delete(tag: 'service-stop'); + super.dispose(); } @override @@ -222,17 +235,6 @@ class _ConnectionPageState extends State constraints: const BoxConstraints(maxWidth: 600), child: w)); } - @override - void dispose() { - _idController.dispose(); - _updateTimer?.cancel(); - super.dispose(); - } - - var svcStopped = false.obs; - var svcStatusCode = 0.obs; - var svcIsUsingPublicServer = true.obs; - Widget buildStatus() { final em = 14.0; return ConstrainedBox( diff --git a/flutter/lib/desktop/pages/desktop_setting_page.dart b/flutter/lib/desktop/pages/desktop_setting_page.dart index 9787048fa..23d832580 100644 --- a/flutter/lib/desktop/pages/desktop_setting_page.dart +++ b/flutter/lib/desktop/pages/desktop_setting_page.dart @@ -432,6 +432,7 @@ class _SafetyState extends State<_Safety> with AutomaticKeepAliveClientMixin { bool get wantKeepAlive => true; bool locked = bind.mainIsInstalled(); final scrollController = ScrollController(); + final RxBool serviceStop = Get.find(tag: 'service-stop'); @override Widget build(BuildContext context) { @@ -465,17 +466,15 @@ class _SafetyState extends State<_Safety> with AutomaticKeepAliveClientMixin { } Widget permissions(context) { - bool enabled = !locked; + return Obx(() => _permissions(context, serviceStop.value)); + } + Widget _permissions(context, bool stopService) { + bool enabled = !locked; return _futureBuilder(future: () async { - bool stopService = option2bool( - 'stop-service', await bind.mainGetOption(key: 'stop-service')); - final accessMode = await bind.mainGetOption(key: 'access-mode'); - return {'stopService': stopService, 'accessMode': accessMode}; + return await bind.mainGetOption(key: 'access-mode'); }(), hasData: (data) { - var map = data! as Map; - bool stopService = map['stopService'] as bool; - String accessMode = map['accessMode'] as String; + String accessMode = data! as String; _AccessMode mode; if (stopService) { mode = _AccessMode.deny;