Fix ChangeProfile block

This commit is contained in:
chen08209
2024-05-04 16:39:21 +08:00
parent aef50fe0e3
commit 89e6f17794
3 changed files with 37 additions and 23 deletions

View File

@@ -123,12 +123,18 @@ class AppController {
);
}
applyProfile() {
globalState.applyProfile(
appState: appState,
config: config,
clashConfig: clashConfig,
);
}
changeProfile(String? value) async {
if (value == config.currentProfileId) return;
config.currentProfileId = value;
await updateClashConfig(isPatch: false);
await updateGroups();
changeProxy();
await applyProfile();
appState.delayMap = {};
saveConfigPreferences();
}
@@ -142,10 +148,7 @@ class AppController {
)
.isBeforeNow();
if (isNotNeedUpdate == false) continue;
final result = await profile.update();
if (result.type == ResultType.error) continue;
await updateGroups();
changeProxy();
await profile.update();
}
}

View File

@@ -5,7 +5,6 @@ import 'dart:io';
import 'package:animations/animations.dart';
import 'package:fl_clash/clash/clash.dart';
import 'package:fl_clash/enum/enum.dart';
import 'package:fl_clash/models/clash_config.dart';
import 'package:fl_clash/plugins/app.dart';
import 'package:fl_clash/widgets/scaffold.dart';
import 'package:flutter/material.dart';
@@ -88,6 +87,24 @@ class GlobalState {
updateCurrentDelayDebounce!([proxyName]);
}
applyProfile({
required AppState appState,
required Config config,
required ClashConfig clashConfig,
}) async {
await updateClashConfig(
clashConfig: clashConfig,
config: config,
isPatch: false,
);
await updateGroups(appState);
changeProxy(
appState: appState,
config: config,
clashConfig: clashConfig,
);
}
init({
required AppState appState,
required Config config,
@@ -101,18 +118,12 @@ class GlobalState {
);
}
if (!appState.isInit) return;
await updateClashConfig(
clashConfig: clashConfig,
config: config,
isPatch: false,
);
updateGroups(appState);
updateCoreVersionInfo(appState);
changeProxy(
await applyProfile(
appState: appState,
config: config,
clashConfig: clashConfig,
);
updateCoreVersionInfo(appState);
}
changeProxy({
@@ -167,7 +178,7 @@ class GlobalState {
}
Future<void> updateGroups(AppState appState) async {
appState.groups = await clashCore.getProxiesGroups();
appState.groups = await clashCore.getProxiesGroups();
}
showMessage({

View File

@@ -279,10 +279,10 @@ packages:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
sha256: "592dc01a18961a51c24ae5d963b724b2b7fa4a95c100fe8eb6ca8a5a4732cadf"
sha256: "8cf40eebf5dec866a6d1956ad7b4f7016e6c0cc69847ab946833b7d43743809f"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.18"
version: "2.0.19"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -957,10 +957,10 @@ packages:
dependency: "direct main"
description:
name: win32_registry
sha256: "10589e0d7f4e053f2c61023a31c9ce01146656a70b7b7f0828c0b46d7da2a9bb"
sha256: "41fd8a189940d8696b1b810efb9abcf60827b6cbfab90b0c43e8439e3a39d85a"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.3"
version: "1.1.2"
window_manager:
dependency: "direct main"
description:
@@ -997,10 +997,10 @@ packages:
dependency: transitive
description:
name: yaml_edit
sha256: c566f4f804215d84a7a2c377667f546c6033d5b34b4f9e60dfb09d17c4e97826
sha256: e9c1a3543d2da0db3e90270dbb1e4eebc985ee5e3ffe468d83224472b2194a5f
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.2.0"
version: "2.2.1"
sdks:
dart: ">=3.3.0 <4.0.0"
flutter: ">=3.19.0"