|
@@ -3,8 +3,10 @@ import 'dart:async';
|
|
|
import 'dart:io';
|
|
|
|
|
|
import 'package:dart_json_mapper/dart_json_mapper.dart';
|
|
|
+import 'package:flutter/cupertino.dart';
|
|
|
import 'package:get/get.dart';
|
|
|
import 'package:naiyouwl/app/common/constants.dart';
|
|
|
+import 'package:naiyouwl/app/component/dialogs.dart';
|
|
|
import 'package:naiyouwl/app/controller/GlobalController.dart';
|
|
|
import 'package:naiyouwl/app/controller/controllers.dart';
|
|
|
import 'package:naiyouwl/app/controller/service.dart';
|
|
@@ -42,6 +44,7 @@ class HomeController extends GetxController {
|
|
|
var UsersysConfig = SysConfig().obs;
|
|
|
var connectStatus = Rx<ConnectionStatus>(ConnectionStatus.disconnected);
|
|
|
var nodeModes = <NodeMode>[];
|
|
|
+ bool get isRunning => connectStatus.value == ConnectionStatus.stopped && controllers.global.allowStatusUpdate;
|
|
|
late final GlobalController globalController = controllers.global;
|
|
|
StreamSubscription<RunningState>? _statusSubscription;
|
|
|
final Map<ImageType, String> imageMap = {
|
|
@@ -153,21 +156,31 @@ class HomeController extends GetxController {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ dynamic showError(BuildContext context) async {
|
|
|
+ await showNormalDialog(context,
|
|
|
+ title: '提示',
|
|
|
+ content: errorMsg.value,
|
|
|
+ enterText: '确认', cancelText: '',
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Future<void> stopVpn() async {
|
|
|
+ controllers.global.allowStatusUpdate = false;
|
|
|
+ await controllers.config.setBreakConnections(true);
|
|
|
+ // // 停止服务
|
|
|
+ await controllers.service.stopClashCore();
|
|
|
+ await controllers.global.systemProxySwitch(false);
|
|
|
+ updateStatus(ConnectionStatus.disconnected);
|
|
|
+ }
|
|
|
Future<void> fetchAuthUser() async {
|
|
|
try {
|
|
|
- if (connectStatus.value == ConnectionStatus.stopped) {
|
|
|
- controllers.global.allowStatusUpdate = false;
|
|
|
- await controllers.config.setBreakConnections(true);
|
|
|
- // // 停止服务
|
|
|
- await controllers.service.stopClashCore();
|
|
|
- await controllers.global.systemProxySwitch(false);
|
|
|
- updateStatus(ConnectionStatus.disconnected);
|
|
|
- return;
|
|
|
- }
|
|
|
+
|
|
|
final ret = await ApiService().fetchAuthUser(KAuthUser);
|
|
|
controllers.global.selectedNode.value = ret;
|
|
|
controllers.global.selectNode(ret);
|
|
|
- handleButtonClick();
|
|
|
+ await handleButtonClick();
|
|
|
} catch (e) {
|
|
|
errorMsg.value = e.toString();
|
|
|
} finally {
|