diff --git a/client/lib/main.dart b/client/lib/main.dart index 246f75a..1121e23 100644 --- a/client/lib/main.dart +++ b/client/lib/main.dart @@ -9,6 +9,7 @@ import 'package:window_manager/window_manager.dart'; import 'bridge/log.dart'; import 'bridge/vpn_bridge_provider.dart'; +import 'models/node.dart'; import 'pangolin_theme.dart'; import 'services/token_store.dart'; import 'shell/home_shell.dart'; @@ -128,9 +129,11 @@ class _RootFlowState extends ConsumerState { // 注意:不在此处早读 settingsProvider.autoConnect —— 其 _load 是异步(SharedPreferences), // 启动这一刻多半还没加载完,会读到默认 false 而永久跳过。改到「节点就绪」回调里再判: // 节点要走网络拉取,远慢于本地设置读取,那时 autoConnect 必已加载到位。 - late final ProviderSubscription sub; + // 必须标全泛型:裸 ProviderSubscription(=)会让 listenManual 推断成 dynamic, + // next 变 dynamic → valueOrNull(扩展 getter)在 dynamic 上不解析 → 运行期 NoSuchMethod。 + late final ProviderSubscription>> sub; sub = ref.listenManual(nodesProvider, (prev, next) { - final nodes = next.valueOrNull ?? const []; + final nodes = next.valueOrNull ?? const []; final ready = nodes.any((n) => n.uuid.isNotEmpty); logLine('AutoConnect', 'nodes update: total=${nodes.length} ready=$ready loading=${next.isLoading} err=${next.hasError}'); if (!ready) return; diff --git a/client/pubspec.yaml b/client/pubspec.yaml index 21cd26a..90b2998 100644 --- a/client/pubspec.yaml +++ b/client/pubspec.yaml @@ -1,7 +1,7 @@ name: pangolin_vpn description: 穿山甲 · Pangolin — 极简、稳定、跨平台网络加速客户端。 publish_to: "none" -version: 1.0.19+20 +version: 1.0.20+21 environment: sdk: ^3.5.0 diff --git a/client/windows/installer/pangolin.iss b/client/windows/installer/pangolin.iss index 3d665a2..354282c 100644 --- a/client/windows/installer/pangolin.iss +++ b/client/windows/installer/pangolin.iss @@ -3,7 +3,7 @@ ; 前置: 先在 client/ 跑 `flutter build windows`(Release),产物在 ; ..\..\build\windows\x64\runner\Release #define MyAppName "穿山甲 Pangolin" -#define MyAppVersion "1.0.19" +#define MyAppVersion "1.0.20" #define MyAppPublisher "Pangolin" #define MyAppExeName "pangolin_vpn.exe" #define BuildDir "..\..\build\windows\x64\runner\Release"