Explorar el Código

Merge branch 'master' of https://code.clickto.dev/lilu/nomo

# Conflicts:
#	lib/app/modules/home/views/home_view.dart
lilu hace 1 mes
padre
commit
24e6a40294

+ 26 - 15
lib/app/controllers/windows_core_api.dart

@@ -51,7 +51,6 @@ class WindowsCoreApi implements BaseCoreApi {
   int _locationId = 0;
   String _locationCode = '';
   String _boostSessionId = '';
-  int _peekTimeInterval = 0;
 
   /// 内部构造方法,供 BaseCoreApi 工厂使用
   factory WindowsCoreApi.create() => WindowsCoreApi._();
@@ -168,9 +167,13 @@ class WindowsCoreApi implements BaseCoreApi {
       log(_tag, 'stat: $stat');
       try {
         final ts = DateTime.now().millisecondsSinceEpoch;
-        final connectionHistory = (stat?['connectionHistory'] as List?)?.last;
+        final connectionHistory = List<ConnectionHistory>.from(
+          (stat?['connectionHistory'] ?? []).map(
+            (x) => ConnectionHistory.fromJson(x),
+          ),
+        );
 
-        final param = statLogEntryToJson(
+        final param = jsonEncode([
           StatLogEntry(
             id: Uuid().v4(),
             time: ts,
@@ -187,12 +190,17 @@ class WindowsCoreApi implements BaseCoreApi {
               connectionHistory: connectionHistory,
             ),
           ),
-        );
-
-        final nodeId = connectionHistory['nodeId'] ?? 0;
-        final msg =
-            '{"type":"boost_result","locationCode":"$_locationCode","nodeId":"$nodeId","success":true, "param": "$param"}';
-
+        ]);
+
+        final nodeId = connectionHistory.last.nodeId ?? '';
+        final msg = jsonEncode({
+          "type": "boost_result",
+          "locationCode": _locationCode,
+          "nodeId": nodeId,
+          "success": true,
+          "param": param,
+        });
+        log(_tag, msg);
         _eventController.add(msg);
       } catch (e) {
         log(_tag, 'parse stat json error: $e');
@@ -209,9 +217,13 @@ class WindowsCoreApi implements BaseCoreApi {
       log(_tag, 'stat: $stat');
       try {
         final ts = DateTime.now().millisecondsSinceEpoch;
-        final connectionHistory = (stat?['connectionHistory'] as List?)?.last;
+        final connectionHistory = List<ConnectionHistory>.from(
+          (stat?['connectionHistory'] ?? []).map(
+            (x) => ConnectionHistory.fromJson(x),
+          ),
+        );
 
-        final param = statLogEntryToJson(
+        final param = jsonEncode([
           StatLogEntry(
             id: Uuid().v4(),
             time: ts,
@@ -228,11 +240,11 @@ class WindowsCoreApi implements BaseCoreApi {
               connectionHistory: connectionHistory,
             ),
           ),
-        );
+        ]);
 
-        final nodeId = connectionHistory['nodeId'] ?? 0;
+        final nodeId = connectionHistory.last.nodeId ?? '';
         final msg =
-            '{"type":"boost_result","locationCode":"$_locationCode","nodeId":"$nodeId","success":false, "param": "$param"}';
+            '{"type":"boost_result","locationCode":"$_locationCode","nodeId":"$nodeId","success":false, "param": $param}';
 
         _eventController.add(msg);
       } catch (e) {
@@ -342,7 +354,6 @@ class WindowsCoreApi implements BaseCoreApi {
     _locationId = locationId;
     _locationCode = locationCode;
     _boostSessionId = sessionId;
-    _peekTimeInterval = peekTimeInterval;
 
     String geoPath = await _getGeoDirectory();
 

+ 11 - 0
lib/app/extensions/widget_extension.dart

@@ -0,0 +1,11 @@
+import 'package:flutter/widgets.dart';
+
+extension WidgetDesktopX on Widget {
+  /// 仅在桌面端添加点击手势光标
+  Widget withClickCursor(bool isDesktop) {
+    if (isDesktop) {
+      return MouseRegion(cursor: SystemMouseCursors.click, child: this);
+    }
+    return this;
+  }
+}

+ 8 - 4
lib/app/modules/home/views/home_view.dart

@@ -6,6 +6,8 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'package:get/get.dart';
 import 'package:nomo/app/constants/iconfont/iconfont.dart';
 import 'package:nomo/app/data/sp/ix_sp.dart';
+import 'package:nomo/app/extensions/widget_extension.dart';
+import 'package:nomo/utils/misc.dart';
 import 'package:pull_to_refresh_flutter3/pull_to_refresh_flutter3.dart';
 import '../../../../config/theme/dark_theme_colors.dart';
 import '../../../../config/theme/theme_extensions/theme_extension.dart';
@@ -35,7 +37,9 @@ class HomeView extends BaseView<HomeController> {
   Widget _buildCustomScrollView() {
     return SafeArea(
       child: Padding(
-        padding: EdgeInsets.symmetric(horizontal: 14.w),
+        padding: isDesktop
+            ? EdgeInsets.all(14.w)
+            : EdgeInsets.symmetric(horizontal: 14.w),
         child: Column(
           children: [
             _buildAppBar(),
@@ -388,7 +392,7 @@ class HomeView extends BaseView<HomeController> {
           controller.collapseRecentLocations();
           controller.setDefaultAutoConnect();
         },
-      ),
+      ).withClickCursor(isDesktop),
     );
   }
 
@@ -469,7 +473,7 @@ class HomeView extends BaseView<HomeController> {
               ),
             ],
           ),
-        );
+        ).withClickCursor(isDesktop);
       }),
     );
   }
@@ -637,7 +641,7 @@ class HomeView extends BaseView<HomeController> {
             }),
           ],
         ),
-      );
+      ).withClickCursor(isDesktop);
     });
   }
 }