chore: 汇总2026-05-30全量更新

### 详细变更:
1.  **文档与配置**:更新AGENTS.md添加命令超时约束,升级Rive依赖至0.14.7并替换平台插件引用
2.  **UI优化**:重构AppInfo页面布局、移除图表冗余配置、锁定部分系统设置项
3.  **功能增强**:
    - 新增工具面板拖拽状态管理与介绍弹窗
    - 新增进度页面编辑/重排/清空用户进度功能
    - 新增摇一摇路由作用域拦截逻辑
4.  **体验优化**:
    - 统一外部链接跳转弹窗,添加文件打开确认逻辑
    - 修复设备卡片IP溢出、Android权限声明问题
    - 后台任务初始化增加协议校验
5.  **代码重构**:拆分工具面板配置、拖拽逻辑与动画参数,优化状态管理代码
6.  **工具脚本**:新增协议文件上传脚本
This commit is contained in:
Developer
2026-05-30 05:29:50 +08:00
parent ca68fe29c7
commit adfa0af825
123 changed files with 17747 additions and 4641 deletions

View File

@@ -1,9 +1,9 @@
// ============================================================
// 闲言APP — 应用入口
// 创建时间: 2026-04-20
// 更新时间: 2026-05-29
// 更新时间: 2026-05-30
// 作用: main 函数,初始化存储 + 液态玻璃 + 异常捕获 + 启动 App
// 上次更新: 集成bitsdojo_window桌面端自定义标题栏+窗口控制
// 上次更新: 拆分权限敏感初始化到PostAgreementInitializer协议同意前不访问任何权限
// ============================================================
import 'dart:async';
@@ -17,28 +17,19 @@ import 'package:flutter/services.dart';
import 'package:bitsdojo_window/bitsdojo_window.dart';
import 'app/app.dart';
import 'core/services/network/connectivity_service.dart';
import 'core/services/network/deep_link_service.dart';
import 'core/services/notification/local_notification_service.dart';
import 'core/services/device/screen_wake_service.dart';
import 'core/services/readlater/sharing_receiver_service.dart';
import 'core/services/device/battery_optimization_service.dart';
import 'core/services/performance/performance_orchestrator.dart';
import 'core/services/notification/readlater_reminder_service.dart';
import 'core/services/data/home_widget_service.dart';
import 'core/services/clipboard_monitor_service.dart';
import 'core/services/background/background_task_service.dart';
import 'core/services/error/crash_monitor.dart';
import 'core/services/device/haptic_service.dart';
import 'core/storage/kv_storage.dart';
import 'core/services/error/global_error_handler.dart';
import 'core/services/post_agreement_initializer.dart';
import 'core/utils/logger.dart';
import 'core/utils/platform/platform_utils.dart' as pu;
import 'core/registry/page_registry.dart';
import 'core/router/app_router.dart';
import 'core/services/catcher2_config_service.dart';
import 'editor/services/3d/platform_3d_service.dart';
import 'features/discover/services/chat_migration_service.dart';
import 'features/template/services/wallpaper_favorite_service.dart';
import 'features/template/services/wallpaper_health_service.dart';
import 'features/mine/settings/services/settings_change_logger.dart';
@@ -154,84 +145,6 @@ void main() async {
}
}
if (!pu.isWeb) {
try {
SharingReceiverService().init();
SharingReceiverService().setNavigatorKey(rootNavigatorKey);
if (pu.isOhos) Log.i('🟢 [OHOS] 分享接收服务初始化完成');
} catch (e, st) {
Log.e('分享接收服务初始化失败', e, st);
}
}
if (!pu.isWeb) {
try {
await LocalNotificationService.init();
if (pu.isOhos) Log.i('🟢 [OHOS] 本地通知服务初始化完成');
} catch (e, st) {
Log.e('本地通知服务初始化失败', e, st);
}
}
if (!pu.isWeb) {
try {
await ScreenWakeService.init();
if (pu.isOhos) Log.i('🟢 [OHOS] 屏幕常亮服务初始化完成');
} catch (e, st) {
Log.e('屏幕常亮服务初始化失败', e, st);
}
}
try {
// SoundService 初始化已由 SoundNotifier.build() 自动完成
if (pu.isOhos) Log.i('🟢 [OHOS] 音效服务初始化完成');
} catch (e, st) {
Log.e('音效服务初始化失败', e, st);
}
if (!pu.isWeb) {
try {
await BatteryOptimizationService.init();
if (pu.isOhos) Log.i('🟢 [OHOS] 电池优化服务初始化完成');
} catch (e, st) {
Log.e('电池优化服务初始化失败', e, st);
}
}
if (!pu.isWeb) {
try {
await ReadlaterReminderService.startMonitoring();
if (pu.isOhos) Log.i('🟢 [OHOS] 稍后读提醒服务初始化完成');
} catch (e, st) {
Log.e('稍后读提醒服务初始化失败', e, st);
}
}
try {
await ChatMigrationService.migrateIfNeeded();
if (pu.isOhos) Log.i('🟢 [OHOS] 聊天数据迁移检查完成');
} catch (e, st) {
Log.e('聊天数据迁移检查失败', e, st);
}
if (!pu.isWeb) {
try {
await HomeWidgetService.instance.init();
if (pu.isOhos) Log.i('🟢 [OHOS] 桌面小组件服务初始化完成');
} catch (e, st) {
Log.e('桌面小组件服务初始化失败', e, st);
}
}
if (!pu.isWeb) {
try {
await ClipboardMonitorService.instance.initFromStore();
if (pu.isOhos) Log.i('🟢 [OHOS] 剪贴板监控服务初始化完成');
} catch (e, st) {
Log.e('剪贴板监控服务初始化失败', e, st);
}
}
try {
await CrashMonitor.instance.init();
Log.i('崩溃监控服务初始化完成');
@@ -239,24 +152,6 @@ void main() async {
Log.e('崩溃监控服务初始化失败', e, st);
}
if (!pu.isWeb) {
try {
await ConnectivityService.init();
Log.i('网络状态检测服务初始化完成');
} catch (e, st) {
Log.e('网络状态检测服务初始化失败', e, st);
}
}
if (!pu.isWeb) {
try {
await BackgroundTaskService.instance.init();
Log.i('后台任务服务初始化完成');
} catch (e, st) {
Log.e('后台任务服务初始化失败', e, st);
}
}
try {
await WallpaperHealthService.init();
Log.i('壁纸源健康检测服务初始化完成');
@@ -279,6 +174,17 @@ void main() async {
Log.e('壁纸源健康检测启动检查失败', e, st);
}
if (PostAgreementInitializer.shouldInit()) {
Log.i('检测到老用户已完成引导,立即初始化权限敏感服务');
try {
await PostAgreementInitializer.init();
} catch (e, st) {
Log.e('老用户权限敏感服务初始化失败', e, st);
}
} else {
Log.i('新用户未同意协议,权限敏感服务延迟到协议同意后初始化');
}
if (pu.isOhos) {
Log.i('🟢 [OHOS] 所有服务初始化完成,准备 runApp (liquidGlass=$_liquidGlassReady)');
const app = ProviderScope(child: XianyanApp());