fix: 对app进行瘦身

This commit is contained in:
2025-12-18 03:40:33 -08:00
parent 4f09267b4b
commit 83d201b78d
5471 changed files with 16 additions and 3302 deletions
@@ -5,12 +5,10 @@ import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:get/get.dart';
import 'package:kaer_with_panels/app/common/app_run_data.dart';
import 'package:kaer_with_panels/app/services/kr_subscribe_service.dart';
import 'package:latlong2/latlong.dart';
import '../../../../singbox/model/singbox_proxy_type.dart';
import '../../../../singbox/model/singbox_status.dart';
import '../../../common/app_config.dart';
@@ -47,8 +45,6 @@ class KRHomeController extends GetxController with WidgetsBindingObserver {
/// 订阅服务
final KRSubscribeService kr_subscribeService = KRSubscribeService();
// 修改地图控制器为可空类型
MapController kr_mapController = MapController();
/// 当前视图状态,登录状态
final Rx<KRHomeViewsStatus> kr_currentViewStatus =
@@ -130,7 +126,7 @@ class KRHomeController extends GetxController with WidgetsBindingObserver {
final kr_isUserMoving = false.obs;
// 添加最后的地图中心点
final kr_lastMapCenter = LatLng(35.0, 105.0).obs;
final kr_lastMapCenter = 0.obs;
// 为"闪连"Checkbox添加一个响应式变量,默认为 false
final isQuickConnectEnabled = false.obs;
@@ -2052,46 +2048,19 @@ class KRHomeController extends GetxController with WidgetsBindingObserver {
// 移动到选中节点
void kr_moveToSelectedNode() {
try {
if (kr_cutSeletedTag.isEmpty) return;
final selectedNode = kr_subscribeService.keyList[kr_cutSeletedTag.value];
if (selectedNode == null) return;
final location = LatLng(selectedNode.latitude, selectedNode.longitude);
kr_moveToLocation(location);
} catch (e) {
KRLogUtil.kr_e('移动到选中节点失败: $e', tag: 'HomeController');
}
}
// 简化移动地图方法
void kr_moveToLocation(LatLng location, [double zoom = 5.0]) {
void kr_moveToLocation() {
try {
// 🔧 关键修复:约束坐标到有效范围,防止超出地图边界
final constrainedLocation = _constrainCoordinates(location);
kr_mapController.move(constrainedLocation, zoom);
kr_isUserMoving.value = false;
} catch (e) {
KRLogUtil.kr_e('移动地图失败: $e', tag: 'HomeController');
}
}
/// 🔧 新增:约束坐标到有效范围内
/// 确保坐标在 [-85, 85] 纬度和 [-180, 180] 经度范围内
LatLng _constrainCoordinates(LatLng coords) {
double lat = coords.latitude.clamp(-85.0, 85.0);
double lng = coords.longitude.clamp(-180.0, 180.0);
if (lat != coords.latitude || lng != coords.longitude) {
KRLogUtil.kr_w(
'⚠️ 坐标超出范围,已约束: (${coords.latitude}, ${coords.longitude}) → ($lat, $lng)',
tag: 'HomeController');
}
return LatLng(lat, lng);
}
// 添加一个方法来批量更新标记
void kr_updateMarkers(List<String> tags) {
// 使用Set来去重