sync setting page service status

Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
21pages 2022-10-20 09:21:02 +08:00
parent 4a2307de2f
commit c2287214f8
3 changed files with 21 additions and 20 deletions

View File

@ -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',

View File

@ -39,6 +39,10 @@ class _ConnectionPageState extends State<ConnectionPage>
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<ConnectionPage>
_idFocusNode.addListener(() {
_idInputFocused.value = _idFocusNode.hasFocus;
});
Get.put<RxBool>(svcStopped, tag: 'service-stop');
}
@override
void dispose() {
_idController.dispose();
_updateTimer?.cancel();
Get.delete<RxBool>(tag: 'service-stop');
super.dispose();
}
@override
@ -222,17 +235,6 @@ class _ConnectionPageState extends State<ConnectionPage>
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(

View File

@ -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<RxBool>(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<String, dynamic>;
bool stopService = map['stopService'] as bool;
String accessMode = map['accessMode'] as String;
String accessMode = data! as String;
_AccessMode mode;
if (stopService) {
mode = _AccessMode.deny;