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

@@ -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;