|
@@ -1,4 +1,5 @@
|
|
|
import 'dart:io';
|
|
|
+import 'package:flutter/services.dart';
|
|
|
import 'package:flutter/widgets.dart';
|
|
|
import 'package:get/get.dart';
|
|
|
import 'package:naiyouwl/app/bean/proxie.dart';
|
|
@@ -37,6 +38,7 @@ class GlobalController extends GetxController {
|
|
|
var tunProxySwitchIng = false.obs;
|
|
|
bool allowStatusUpdate = false;
|
|
|
final _wlBaseHelpPlugin = WlBaseHelp();
|
|
|
+ var sysInfo = ''.obs;
|
|
|
|
|
|
final selectedNode = Rx<NodeMode?>(null);
|
|
|
// 策略组
|
|
@@ -81,12 +83,76 @@ class GlobalController extends GetxController {
|
|
|
//await controllers.service.serviceModeSwitch(true);
|
|
|
// init clash core
|
|
|
|
|
|
+ //判断clash 程序是否在启动中,如果是可以先停止
|
|
|
+
|
|
|
await controllers.service.initClashCoreConfig();
|
|
|
if (controllers.service.coreStatus.value != RunningState.running) return;
|
|
|
await controllers.core.updateVersion();
|
|
|
//initRegularlyUpdate();
|
|
|
}
|
|
|
|
|
|
+ // Platform messages are asynchronous, so we initialize in an async method.
|
|
|
+ Future<void> platformState() async {
|
|
|
+ String platformVersion;
|
|
|
+ if(Platform.isWindows){
|
|
|
+ try {
|
|
|
+ platformVersion =
|
|
|
+ await _wlBaseHelpPlugin.getPlatformVersion() ?? 'Unknown platform version';
|
|
|
+ } on PlatformException {
|
|
|
+ platformVersion = 'Failed to get platform version.';
|
|
|
+ }
|
|
|
+ sysInfo.value = platformVersion;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sysInfo.value = '';
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ Future<void> onRunAdmin() async {
|
|
|
+ if(Platform.isWindows){
|
|
|
+ String isRunadminErore;
|
|
|
+ try {
|
|
|
+ isRunadminErore = await _wlBaseHelpPlugin.runAsAdministrator() ?? 'error';
|
|
|
+ } on PlatformException {
|
|
|
+ isRunadminErore = 'error';
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ Future<void> onIsRunAdmin() async {
|
|
|
+ if(Platform.isWindows){
|
|
|
+ bool isAdmin;
|
|
|
+ try {
|
|
|
+ isAdmin = await _wlBaseHelpPlugin.isRunningAsAdmin() ?? false;
|
|
|
+ } on PlatformException {
|
|
|
+ isAdmin = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Future<void> onIsProcessRunning(String passName) async {
|
|
|
+ if(Platform.isWindows){
|
|
|
+ bool isRun;
|
|
|
+ try {
|
|
|
+ isRun = await _wlBaseHelpPlugin.isProcessRunning(passName) ?? false;
|
|
|
+ } on PlatformException {
|
|
|
+ isRun = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ Future<void> onkillProcess(String passName) async {
|
|
|
+
|
|
|
+ try {
|
|
|
+ await _wlBaseHelpPlugin.killProcess(passName);
|
|
|
+ } on PlatformException {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
void updateMsg(String msg) {
|
|
|
msgStatus.value = msg;
|
|
|
}
|