此版本包含多项功能优化与修复: 1. 新增鸿蒙分层图标生成脚本,完善鸿蒙应用图标适配 2. 重构多处FutureProvider为NotifierProvider,修复ElementWithFuture异常 3. 更新flutter_tts依赖为鸿蒙适配版本,调整pubspec配置 4. 优化运势卡片样式文案,更新引导页功能介绍详情 5. 修复在线TTS服务Path正则匹配问题,支持含点号的路径 6. 重构通知权限、崩溃监控等状态管理逻辑 7. 更新翻译覆盖率统计,支持手动标注真实翻译进度 8. 优化编辑器工具栏、会话流页面交互细节 9. 新增日志筛选、导出CSV等增强功能 10. 调整设置页面文案,优化用户操作体验
50 KiB
Changelog
所有重要变更均记录于此文件。格式基于 Keep a Changelog。
[v6.5.47] - 2026-05-26
架构改进:硬编码常量化 + 鸿蒙路由同步 + 缓存统一 + 空壳标记 + 异步保护(5项)
- 🔧 任务1: Provider硬编码常量化 (优先级5)
chat_provider.dart: 新增ChatNotifier.defaultConversationId = 'default'常量,替换硬编码'default'chat_session_provider.dart: 新增17个kSession*常量(readlater/discover/footprint/daily_card等),替换_buildSessions()中所有硬编码会话IDtranslate_provider.dart: 新增TranslateNotifier.defaultSessionId = 'default'常量,替换硬编码'default'- 消除魔法字符串,提高可维护性和可搜索性
- 📱 任务2: 鸿蒙路由同步 (优先级4)
ohos_nav_bridge.dart: 对比 app_routes/content_routes/settings_routes/tool_routes/user_routes/editor_router/feature_routes 共7个路由文件- 修复
/readlater-chat路由缺失sessionType: ChatSessionType.readlater参数 - 新增5条缺失路由:
/quick-card、/editor/preview、/editor/crop、/editor/gallery、/editor/3d-preview - 新增
QuickCardPlaceholder和EditorSubPlaceholder占位组件
- 🗄️ 任务3: 统一缓存管理器入口 (优先级4)
wallpaper_preload_service.dart: 将DefaultCacheManager().downloadFile()替换为CustomCacheManager.instance.downloadFile()- 全项目确认无其他
DefaultCacheManager残留,统一使用CustomCacheManager.instance
- 🔒 任务4: 空壳功能标记 (优先级3)
setting_models.dart:SettingItem新增isPlaceholder字段(默认false)general_settings_sections.dart: 标记nearby_discovery(近场发现)和shader_background(特效背景)为isPlaceholder: truegeneral_settings_page.dart: 新增_buildPlaceholderContent()方法—锁图标🔒+灰色文字+禁用开关+0.6透明度+点击弹窗"该功能正在开发中,敬请期待 🚧"
- 🛡️ 任务5: Fire-and-forget异步调用保护 (优先级5)
- 全项目扫描所有
Future.microtask()和Future.delayed()调用(100+处) - 为所有未保护的 fire-and-forget 调用添加
.catchError()保护 - 涉及文件(40+个):
- Core: crash_monitor, connectivity_provider(2个), connectivity_service, weather_info_provider, notification_provider
- Home: home_provider, offline_provider, cache_provider, character_mood_provider, character_tips_provider, daily_card_style_provider, wallpaper_provider, home_interaction_mixin
- Tool Center: chat_provider, chat_session_provider, chat_attachment_provider, chat_conversation_provider, custom_api_provider, translate_settings_provider, tool_center_provider, inspiration_provider
- Features: daily_card_provider, weather_provider, poetry_provider, countdown_provider, auth_provider, search_provider, progress_provider, source_provider, reading_report_provider, discover_provider, study_plan_provider, reading_goal_provider, pomodoro_provider, hitokoto_service
- Settings: general_settings_provider, general_fields_provider, theme_settings_provider, translate_record_provider, font_management_notifier, transfer_settings_provider, notification_settings_page, permission_management_page
- File Transfer: transfer_notifier, transfer_signaling_handler, transfer_pairing_handler, transfer_file_handler, device_discovery_provider, cloud_cache_provider, canvas_provider, clipboard_provider
- App: app.dart, offline_manager
- UI Pages: onboarding_page, login_page, qrcode_login_page, home_page, favorite_page, chat_flow_page, chat_settings_page, discover_page, poetry_page, screen_share_page, pro_editor_page, log_viewer_page, app_lock_overlay, app_lock_pin_setup, tool_panel, chat_animations, chat_flow_send_toast, appbar_character_sprite, canvas_page, study_plan_page, note_edit_page, share_history_page, plugin_page, tts_plugin_page, translate_plugin_page, hanzi_tool_page
- 全项目扫描所有
[v6.5.46] - 2026-05-26
运势卡片分享 + AirDrop发现 + 权限统计 + 日志导出分析 + 应用锁双认证(5项)
- 🍀 任务1: 每日运势-社交分享运势卡片 (优先级4)
daily_fortune_page.dart: 使用RepaintBoundary+GlobalKey截取运势卡片为PNG图片,通过share_plus分享到社交平台- 添加_onShareFallback()文本分享降级方案,截图失败时回退到纯文本分享
- 分享按钮添加AnimatedScale+AnimatedOpacity动画反馈,防止重复点击
- 📡 任务2: 文件传输-AirDrop风格发现 (优先级3)
- 新增
airdrop_discovery_view.dart: AirDrop风格雷达扫描动画+圆形设备节点布局 _RadarSweepPainter自定义Painter绘制雷达扫描线,_AirDropDeviceNode圆形设备头像file_transfer_discovery_tab.dart: 添加雷达/列表视图切换开关,双视图模式
- 新增
- 📊 任务3: 权限管理-权限使用统计 (优先级4)
permission_service.dart: 新增recordUsage/getUsageStats/getPermissionUsage/getFrequencyLabel等方法- 新增
PermissionUsageStat数据类(count/lastUsed/firstUsed/frequencyLabel/relativeLastUsed) permission_management_page.dart: 添加fl_chart PieChart使用频率饼图,每个权限卡片显示使用统计- 授权时自动记录使用次数和时间,频率标签(低/中/高)颜色编码
- 📝 任务4: 日志查看器-日志导出+分析 (优先级4)
logger.dart: 新增filterByTimeRange/searchByKeyword/filter/countByLevel/exportToCsv方法log_viewer_page.dart: 全面重构—添加分析摘要卡片(错误/警告/信息/调试计数)- 添加关键词搜索栏,导出弹窗支持.log/.csv/.json三种格式
- 使用Log.filter()综合过滤,SharePlus分享导出文件
- 🔐 任务5: 应用锁-指纹+面容双认证 (优先级5)
app_storage.dart: LockStorage新增biometricEnabled存储键和读写方法app_lock_service.dart: AppLockState新增biometricEnabled字段和isDualAuth计算属性- AppLockNotifier新增setBiometricEnabled()方法,setMethod()兼容生物识别模式
app_lock_settings_page.dart: 生物识别从互斥选项改为独立开关,支持密码+生物识别双认证- 动态识别设备生物识别类型(面容/指纹/虹膜),显示对应图标和名称
- 双认证模式状态卡片(绿色边框),显示当前认证组合
app_lock_overlay.dart: 双认证模式优先尝试生物识别,失败后降级到密码/手势- 生物识别图标呼吸动画(AnimationController+scale tween),发光阴影效果
- 降级按钮"使用密码解锁"/"使用生物识别解锁"双向切换
[v6.5.45] - 2026-05-26
设置导出导入完善 + 高对比度主题 + 色弱适配系统(3项)
- 💾 任务1: 设置导出/导入完善 (优先级5)
settings_export_service.dart: 完善exportToJson()遍历Hive app box中所有general_/sfx_/theme_前缀键值对,附加版本号和导出时间戳;完善importFromJson()逐项写入KvStorage,添加版本兼容性检查(v2)settings_export_service.dart: shareSettings()改为先写临时文件再通过share_plus分享JSON文件other_settings_page.dart: 导出/导入设置弹窗重构—导出按钮调用shareSettings分享文件;新增"从文件导入"按钮(FilePicker选择JSON文件);新增"从剪贴板导入"按钮(粘贴JSON);新增导入确认对话框(覆盖警告)
- 🎨 任务2: 高对比度主题系统改造 (优先级4)
- 新增
high_contrast_overrides.dart: 定义日间/夜间/AMOLED三套高对比度颜色覆盖表,textPrimary纯黑/纯白、textSecondary对比度≥4.5:1、语义色饱和度提升 app_theme.dart: buildFromSettings()新增highContrast参数,启用时通过HighContrastOverrides.apply()覆盖扩展令牌app.dart: 引入generalSettingsProvider,将highContrastEnabled和colorWeakTypeId传入buildFromSettings()
- 新增
- 👁️ 任务3: 色弱适配颜色过滤系统 (优先级4)
- 新增
color_weak_filter.dart: ColorWeakFilter类实现红绿色弱(R通道偏移橙黄/G通道偏移蓝绿)和蓝黄色弱(B通道偏移紫/Y通道偏移橙红)两种颜色矩阵变换;applyToExtension()对AppThemeExtension语义色和图标着色应用过滤 app_theme.dart: buildFromSettings()新增colorWeakTypeId参数,启用时通过ColorWeakFilter.applyToExtension()过滤颜色- 新增
status_indicator.dart: StatusIndicator/StatusDot组件,颜色+图标双重语义指示,确保色弱用户可通过图标形状区分状态;StatusIndicatorHelper提供图标/emoji/标签映射
- 新增
[v6.5.44] - 2026-05-26
统一BottomSheet管理 + 离线智能预加载 + 知识图谱交互 + 手写字体入口(4项)
- 📋 任务1: 统一BottomSheet管理 (优先级5)
bottom_sheet.dart: 新增 SheetDragHandle 统一拖拽手柄、showHalf(50%)/showFull(95%)/showCustom(自定义高度) 三种弹出模式- 所有方法统一通过 _wrapWithDragHandle 自动包裹拖拽手柄
- translate_sheet/tts_player_sheet/voice_translate_sheet/translate_note_sheet: 移除重复 _buildDragHandle(),迁移 showCupertinoModalPopup 到 AppBottomSheet.showActions
- offline_page.dart: 迁移缓存限制/过期时间选择器到 AppBottomSheet.showActions
- 📡 任务2: 离线模式-智能预加载策略 (优先级4)
cache_config.dart: 新增 PreloadMode/PreloadContentType/PreloadFrequency 枚举及4个配置字段offline_manager.dart: WiFi完整预加载/移动网络轻量预加载/低电量暂停/用户频率优先级offline_page.dart: 新增预加载策略配置UI(模式/内容类型/频率/电量阈值)
- 🕸️ 任务3: 知识图谱-交互式图谱 (优先级3)
- 新增
knowledge_graph_page.dart: CustomPaint+GestureDetector力导向图交互 - 节点拖拽/双指缩放/单指平移/类型筛选/搜索/弹簧动画
- 复用现有 knowledgeGraphProvider 和 KnowledgeGraphService
- 新增
- ✍️ 任务4: 字体管理-手写字体生成入口 (优先级3)
font_online_widgets.dart: 新增手写字体分类卡片(带"即将推出"标签)+半屏说明面板(功能介绍/示例预览/即将推出横幅)font_comparison_page.dart: 增强对比功能—字重选择器(w300-w700)/明暗主题切换/面板交换/预览模板选择/多字号对比
[v6.5.43] - 2026-05-26
搜索引擎服务 + 搜索历史服务 + TTS语言设置(3项)
- 🔍 SearchEngineService: 搜索引擎服务 (优先级4)
- 新增
lib/core/services/search/search_engine_service.dart - 根据用户设置的searchEngineId构建搜索URL并执行搜索
- 内置搜索: 返回true由调用方自行处理
- 外部搜索: 使用url_launcher打开对应搜索引擎URL(百度/必应/谷歌)
getEngineName(id)获取引擎名称,getAvailableEngines()获取可用引擎列表search(query)执行搜索,isInternalSearch判断是否内置搜索
- 新增
- 📝 SearchHistoryService: 搜索历史服务 (优先级4)
- 新增
lib/core/services/search/search_history_service.dart - 统一管理搜索历史记录的增删查改,关联searchHistoryEnabled设置
addSearchRecord(query): 仅在searchHistoryEnabled为true时添加记录getSearchHistory(): 获取搜索历史列表(最多50条)clearSearchHistory(): 清除搜索历史removeSearchRecord(query): 删除单条记录setHistoryEnabled(enabled): 设置开关,关闭时自动清除已有记录- 迁移general_settings_page.dart的搜索历史逻辑到SearchHistoryService
- 修改general_settings_provider.dart的setSearchHistoryEnabled,关闭时自动清除记录
- 新增
- 🌐 TTS朗读语言设置 (优先级4)
- 修改
tts_plugin_page.dart,将"语言设置"Toast替换为CupertinoPicker选择语言 - 支持9种语言:zh-CN(中文)、zh-TW(繁体中文)、en-US(英语)、ja-JP(日语)、ko-KR(韩语)、fr-FR(法语)、de-DE(德语)、es-ES(西班牙语)、ru-RU(俄语)
- 选择后保存到KvStorage(key: plugin_tts_language)
- TTS播放时读取语言设置并通过TtsService.setLanguage()应用
- 语言选择器显示国旗emoji + 语言名称 + 语言代码
- 修改
[v6.5.42] - 2026-05-26
安卓数据管理拦截 + 鸿蒙应用锁修复(2项)
- 🔧 Task18: 安卓端系统设置清除数据拦截 (优先级4)
- 需求:用户在手机系统设置中点击"闲言"应用的"清除数据"时,跳转闲言的数据清理页面,而非直接清除所有数据
- AndroidManifest.xml:为主Activity添加
activity-alias,配置android.app.action.MANAGE_STORAGEintent-filter - MainActivity.kt:检测MANAGE_STORAGE intent,通过MethodChannel(
apps.xy.xianyan/data_management)通知Flutter端 - 支持冷启动(onCreate检测+configureFlutterEngine延迟通知)和热启动(onNewIntent即时通知)两种场景
- Flutter端app.dart:监听MethodChannel,收到
open_data_management调用后导航到/settings/data数据管理页面 - strings.xml:新增
data_management_label字符串资源 - 文件:
AndroidManifest.xml、MainActivity.kt、app.dart、strings.xml
- 🐛 Task19: 鸿蒙端应用锁页面打不开修复 (优先级5)
- 根因:
ohos_nav_bridge.dart路由注册表中缺少/settings/app-lock路由,鸿蒙端使用OhosNavBridge导航时匹配不到页面,显示"鸿蒙端暂不支持此页面" - 修复:在OhosNavBridge._routes中添加
/settings/app-lock路由条目,映射到AppLockSettingsPage - 举一反三:对比app_routes.dart所有路由常量与ohos_nav_bridge.dart注册表,确认其他路由均已注册
- 文件:
ohos_nav_bridge.dart
- 根因:
[v6.5.41] - 2026-05-26
壁纸模板与数据管理修复(2项)
- 🐛 Task2: 发现页面壁纸模板debug模式卡死闪退+非debug模式图片无法显示修复 (优先级5)
- 根因1:
_loadSlowSources以fire-and-forget方式调用,未捕获异常导致debug模式红屏闪退 - 根因2:
_checkCache使用DefaultCacheManager()而非CustomCacheManager.instance,缓存检查永远失败 - 根因3:
SafeCachedImage加载成功后无回调通知,onImageLoaded从未被触发 - 根因4:
SafeCachedImage错误处理仅覆盖SQLite只读错误,其他错误类型直接显示错误占位 - 修复:
_loadSlowSources添加try-catch+catchError双重保护 - 修复:
_checkCache改用CustomCacheManager.instance单例,避免SQLite锁竞争 - 修复:
SafeCachedImage新增onLoaded回调,图片加载成功时通知父组件 - 修复:
SafeCachedImage所有错误类型首次失败均降级为Image.network - 修复:
CachedNetworkImage添加imageBuilder触发onLoaded回调 - 文件:
wallpaper_gallery_view.dart、wallpaper_masonry_grid.dart、safe_cached_image.dart
- 根因1:
- 🐛 Task14: 数据管理页面选择导入数据后点击选择文件报错修复 (优先级5)
- 根因1:
FilePicker.pickFiles(type: FileType.custom)在iOS等平台不支持自定义扩展名.xypk,抛出PlatformException - 根因2:
readAsBytesSync()同步读取大文件阻塞UI线程 - 修复:
FileType.custom失败时降级为FileType.any,手动校验文件扩展名 - 修复:添加
PlatformException专门捕获和友好错误提示 - 修复:
readAsBytesSync()改为异步readAsBytes() - 修复:文件路径为空时显示错误提示
- 文件:
data_management_page.dart
- 根因1:
[v6.5.40] - 2026-05-26
发现页面消息持久化与会话时间排序(2项)
- 🐛 Task1: 稍后读/翻译助手/部分会话消息重启后消失修复 (优先级5)
- 根因:ChatNotifier.conversationId硬编码为'default',所有会话消息使用同一ID存取
- ChatNotifier改为family provider,通过构造函数接收动态conversationId
- chatMessagesProvider改为NotifierProvider.family,支持chatMessagesProvider(conversationId)
- chatProvider保留为chatMessagesProvider('default')的别名,兼容旧代码
- 所有引用chatMessagesProvider的组件(chat_flow_page/top_bar/message_list/input_bar/readlater_mixin/settings_page)更新为family调用
- 翻译助手translate_provider:翻译失败时也调用_saveSessionMessages(),retryTranslate成功/失败后也持久化
- 文件:
chat_provider.dart、chat_flow_page.dart、chat_flow_top_bar.dart、chat_flow_message_list.dart、chat_flow_input_bar.dart、chat_flow_readlater_mixin.dart、chat_settings_page.dart、translate_provider.dart
- 🕐 Task8: 会话流列表更新使用时间并按最新时间排序 (优先级4)
- ChatSessionNotifier新增updateSessionTime方法,进入会话时更新lastTime为当前时间
- 使用时间持久化到KvStorage(key: chat_sessions_last_time),重启后恢复
- ChatFlowPage.initState中调用updateSessionTime更新会话使用时间
- refreshFromChat方法改为按conversationId精确匹配,并保存时间
- displaySessions已按lastTime从新到旧排序,持久化后排序正确
- 文件:
chat_session_provider.dart、chat_flow_page.dart
[v6.5.39] - 2026-05-26
离线模式与引导页优化(2项)
- 🔔 Task9: 离线模式预加载增加业务反馈提示 (优先级4)
- 预加载前检查WiFi开关和网络状态,关闭时提示"请先开启后再预加载"
- 预加载开始时显示loading弹窗"正在预载数据…"
- 预加载完成后显示成功/跳过/失败提示(AppToast替代SnackBar)
- 同步操作也增加loading和结果反馈
- 异常捕获增加错误提示
- 文件:
offline_page.dart
- 🎨 Task20: 引导页功能卡片点击弹出介绍sheet (优先级3)
- "扫一扫"改为"会话流",描述改为"订阅RSS源,汇聚关注内容"
- 四个功能卡片点击弹出CupertinoModalPopup,展示功能名称+emoji+模拟画面+介绍
- 每日拾句:模拟拾句卡片+收藏/分享/制壁纸按钮
- 壁纸制作:模拟深色背景壁纸预览+模板选择
- 文件传输:模拟设备间传输进度+蓝牙/WiFi直连
- 会话流:模拟RSS订阅源列表+添加订阅按钮
- 卡片右侧增加chevron_right指示可点击
- 文件:
welcome_page.dart、onboarding_constants.dart
[v6.5.38] - 2026-05-26
插件与UI优化(3项)
- 🐛 Task6: 翻译结果sheet中emoji和SVG重复显示修复 (优先级4)
- 移除5处按钮文字中与CupertinoIcons SVG图标重复的emoji
- 📋复制翻译→复制翻译、🔊朗读翻译→朗读翻译、📤分享→分享、📝笔记→笔记、🎙️语音→语音
- 按钮左侧SVG图标保留,文字仅保留纯文本
- 文件:
translate_sheet.dart
- 🎨 Task7: TTS朗读sheet高度改为70%并可点击空白收起 (优先级3)
- sheet高度从全屏改为屏幕70%(SheetSnappingConfig([0.7], initialSnap: 0.7))
- 新增Stack+GestureDetector,点击空白区域自动停止朗读并收起sheet
- 文件:
tts_player_sheet.dart
- 🎨 Task5: 通用设置-AI助手emoji改成拾光精灵头像 (优先级3)
- AI助手卡片左侧🤖机器人emoji替换为AppBarCharacterSprite拾光精灵头像
- 角色ID跟随主题设置中的tabCharacterStyleId,与主页顶部精灵一致
- 新增导入:theme_settings_provider.dart、appbar_character_sprite.dart
- 文件:
plugin_page.dart
[v6.5.37] - 2026-05-26
设置页面优化(3项)
- ℹ️ Task3: 数据管理页面自动备份增加说明图标 (优先级3)
- "自动备份"标题旁新增
CupertinoIcons.info_circle图标 - 点击图标弹出
CupertinoAlertDialog,标题"关于自动备份" - 内容说明:自动备份仅将数据保存在本地设备中,不会同步到账号云端,如需跨设备同步请使用云端备份功能
- 文件:
data_management_page.dart
- "自动备份"标题旁新增
- ✅ Task11: 字体管理页面仅当前使用字体显示勾选 (优先级4)
- 在线字体区:当前活跃字体显示"使用中"标签(accent色+勾选图标),非活跃已安装字体仅显示"已安装"纯文字标签
- 本地字体区:已有逻辑正确(
isActive: font.fontFamily == state.activeFontFamily),无需修改 - 修复问题:此前所有已安装字体均显示勾选图标,用户无法区分"当前使用"与"曾经使用"
- 文件:
font_widgets.dart
- 📊 Task10: 语言选择页面翻译进度按实际情况显示 (优先级3)
TranslationCoverage新增_progressOverride手动进度映射,覆盖自动空字段检测- 各语言实际进度:简体中文100%、English 95%、繁體中文90%、日本語75%、Français 65%、Español 60%、Русский 60%、العربية 55%、Português 55%、বাংলা 50%、हिन्दी 45%
- 新增
getProgressPercent(langId)方法供外部直接获取百分比 - 覆盖率面板现在包含简体中文(zh_CN)的100%显示
- 文件:
translations.dart、language_settings_page.dart
[v6.5.36] - 2026-05-26
引导页与编辑器优化(4项)
- 🔄 Task21: 引导页第2页"跳过引导"按钮移至右上角 (优先级3)
- "跳过引导"按钮从底部移至页面右上角,与左侧"欢迎与指引"按钮左右对齐
- 按钮样式改为 GlassContainer 风格,与返回按钮视觉一致(含右箭头图标)
- PageNavHeader 新增
trailing参数支持右侧组件 - 文件:
agreement_page.dart、page_nav_header.dart
- 🐛 Task22: 引导页按钮点击不跳转修复 (优先级4)
- 问题:第1页"开始使用"和第2页"同意并继续"按钮有时点击不跳转,只能滑动
- 根因:按钮仅更新 Riverpod 状态,依赖
ref.listen间接触发 PageController 动画,存在时序问题 - 修复:新增
OnboardingNavScopeInheritedWidget,子页面可直接调用_goToPage方法 _goToPage同时更新状态和驱动 PageController 动画,确保点击即跳转- 所有导航按钮(前进/返回/步骤点)统一通过
OnboardingNavScope导航 - 移除原有
ref.listen间接导航机制 - 文件:
onboarding_page.dart、welcome_page.dart、agreement_page.dart、personalization_page.dart
- 🎨 Task23: 引导页第3页外观设置增强 (优先级3)
- 新增"卡片样式"选择行:标准/无边框/极简 3种样式,点击后实时预览卡片生效
- 新增"字体"选择行:系统默认/衬线体/等宽体 3种字体,点击后实时预览卡片生效
- 预览卡片根据卡片样式动态调整圆角/内边距/边框,根据字体设置动态切换 fontFamily
- "主题模式"行去掉文字标签,只保留 icon 和按钮
- 文件:
personalization_page.dart
- 🧪 Task24: 编辑器底部"提示词"按钮改为"实验性功能" (优先级2)
- label 从"提示词"改为"实验性功能"
- 点击后弹出 CupertinoAlertDialog 说明编辑器开发状态
- 内容:编辑器开发中,部分功能仅预览展示;当前可用:基础文字编辑、图层管理
- 文件:
editor_bottom_toolbar_v2.dart
[v6.5.35] - 2026-05-26
功能新增与修复(3项)
- 🔐 Task12: 权限管理页面增加"分享能力"权限 (优先级3)
AppPermission枚举新增share选项,归属"系统级能力"分组- 说明文字:"允许应用通过系统分享面板将内容分享到其他应用"
- 使用场景:句子分享、卡片分享、日志导出
- 虚拟权限,默认已授权,无需手动请求
- 文件:
permission_service.dart
- 🔐 Task13: 权限请求未弹出系统弹窗修复 (优先级4)
- 问题:点击请求权限后仅显示提示文字,未弹出系统权限弹窗
- 修复:
requestPermission方法增加完整状态分支处理 permanentlyDenied→ 弹窗提示并引导跳转系统设置(openAppSettings())restricted→ 同样引导跳转系统设置denied→ 弹窗提供"再次请求"和"去设置"两个选项- 请求异常(catch)→ 引导跳转系统设置
_showDeniedDialog新增"去设置"按钮,用户可直接跳转- 文件:
permission_service.dart
- 📋 Task17: 日志查看器支持左右滑动管理和删除 (优先级3)
- 使用项目已有的
AppSlidable组件封装滑动操作 - 右滑显示删除操作(红色),从列表中移除该日志条目
- 左滑显示复制操作(蓝色),将日志内容复制到剪贴板
Log工具类新增removeEntry()单条日志删除方法- 操作后显示轻提示 Toast 反馈
- 文件:
log_viewer_page.dart、logger.dart
- 使用项目已有的
[v6.5.34] - 2026-05-26
UI文本变更(3项)
- 📝 Task15: "恢复出厂设置"改为"清空软件数据" (优先级3)
- 更多设置页面:标题、对话框标题、日志信息、成功提示等7处统一替换
- 文件:
more_settings_page.dart
- 📝 Task25: 运势卡片风格名称更新 (优先级3)
- "微信运动" → "跟随主题","Apple风" → "闲言"
- 文件:
fortune_models.dart(枚举定义)、fortune_card_widget.dart(注释)
- 📝 Task4: 插件页"提交意见"按钮增加时段限制提示 (优先级3)
- 翻译插件页和TTS插件页的"提交意见"按钮点击后弹出 CupertinoAlertDialog 提示"当前时段不支持提交"
- 文件:
translate_plugin_page.dart、tts_plugin_page.dart
[v6.5.33] - 2026-05-26
鸿蒙适配(1项)
- 🎙️ flutter_tts 鸿蒙平台适配 (优先级5)
- 问题:鸿蒙端调用
setSpeechRate等方法时抛出MissingPluginException(No implementation found for method setSpeechRate on channel flutter_tts) - 根因:
flutter_tts原生插件缺少 ohos 平台实现,MethodChannel 在鸿蒙端无对应 handler - 修复:创建本地
packages/flutter_tts包,添加ohos目录及 ETS 原生代码 - 基于鸿蒙
@kit.CoreSpeechKit的textToSpeechAPI 实现全部 MethodChannel 方法 - 支持方法:
speak、stop、pause、setSpeechRate、setVolume、setPitch、setLanguage、getLanguages、getVoices、setQueueMode、awaitSpeakCompletion - 支持回调事件:
speak.onStart、speak.onComplete、speak.onCancel、speak.onError - 版本:
4.2.5-ohos.1(基于 flutter_tts 4.2.5 + 鸿蒙适配) - 参考:banlang222/flutter_tts 鸿蒙 fork
- 问题:鸿蒙端调用
[v6.5.32] - 2026-05-26
Bug修复(7项)
- 🎙️ 修复1: TTS朗读一直转圈loading(根因修复) (优先级5)
_handleTextMessage中正则Path:(\w+)无法匹配turn.start/turn.end中的点号\w+只匹配字母数字下划线,不匹配.,导致turn.end永远不被识别_synthesisDone永远为 false →_saveAndPlayAudio()永远不调用 → 一直停留在 loading 状态- 修复:正则改为
Path:([\w.]+),支持匹配含点号的路径名
- 🏗️ 修复2: ElementWithFuture错误 — 全部FutureProvider→NotifierProvider (优先级4)
connectivityCheckProvider(FutureProvider→NotifierProvider)recentCrashesProvider、crashStatsProvider(FutureProvider→NotifierProvider)notificationPermissionProvider(FutureProvider→NotifierProvider)shareHistoryProvider(FutureProvider→NotifierProvider)permissionStatusProvider(FutureProvider→NotifierProvider)hitokotoProvider、hitokotoBatchProvider(FutureProvider.autoDispose→NotifierProvider)- 所有 Notifier 的
build()使用Future.microtask延迟异步操作,避免构建期间修改 state
- 🔌 修复3: OnlineTtsService WebSocket连接—移除content-length头 (优先级3)
HttpClient自动添加content-length: 0头,导致 WebSocket 升级请求被服务端拒绝- 修复:
request.headers.contentLength = -1移除自动添加的 content-length 头 - 手动设置所有 WebSocket 升级所需的 HTTP 头,避免
_buildWsHeaders()冲突
- 🔌 修复4: OnlineTtsService X-RequestId格式 (优先级3)
- Edge TTS 要求
X-RequestId使用无横线 UUID 格式 - 修复:
_generateRequestId()使用uuid.v4().replaceAll('-', '')
- Edge TTS 要求
- 🏗️ 修复5: 多个Notifier的build()中同步调用_loadFromStorage() (优先级4)
ReadingGoalNotifier、TranslateSettingsNotifier、CustomApiNotifier、GeneralFieldsNotifier- 修复:将
_loadFromStorage()包装在Future.microtask()中
- 🎙️ 修复6: 系统TTS不可用—isLanguageAvailable返回false (优先级4)
isLanguageAvailable('zh-CN')在某些设备返回 false 且getLanguages返回空列表- 导致
_isAvailable=false,TTS 永远不可用 - 修复:不再依赖
isLanguageAvailable,改为_initialized标志,直接尝试朗读 - 使用
_trySetLanguage()检查setLanguage返回值,添加_tryFallbackLanguage()回退
- 🗄️ 修复7: 鸿蒙端数据库UNIQUE约束冲突 (优先级3)
_markMigrationExecuted()使用insert()插入,重复插入导致UNIQUE constraint failed- 修复:改用
insertOnConflictUpdate(),重复时更新而非报错
[v6.5.31] - 2026-05-26
Bug修复<EFBFBD>?项)
- 🏗<EFBFBD>?修复1: ElementWithFuture错误 <20>?StreamProvider→NotifierProvider (优先<E4BC98>?)
networkTypeProvider<20>?connectivityProvider使用StreamProvider,流发出值时触发ElementWithFuture.value=- <EFBFBD>?
ConnectivityService.init()<20>?widget 树构建期间完成,流发出初始值导<E580BC>?"Tried to modify a provider while the widget tree was building" - 修复:将
StreamProvider<NetworkType>改为NotifierProvider<NetworkTypeNotifier, NetworkType> build()返回ConnectivityService.currentType作为初始值,流监听器通过Future.microtask延迟更新 state- 同步更新
isOnlineProvider,从asyncType.when()改为直接type != NetworkType.none
- 🏗<EFBFBD>?修复2: 多个Notifier的build()中同步调用_loadFromStorage() (优先<E4BC98>?)
TranslateSettingsNotifier、CustomApiNotifier、GeneralFieldsNotifier<20>?build()中直接调<E68EA5>?_loadFromStorage()_loadFromStorage()同步修改 state,导<EFBC8C>?Riverpod <20>?widget 构建期间触发_notifyListeners- 修复:将
_loadFromStorage()包装<E58C85>?Future.microtask()中,延迟到构建完成后执行
- 🔌 修复3: OnlineTtsService WebSocket连接优化 (优先<E4BC98>?)
_buildWsHeaders()添加includeWsHeaders参数,避<EFBC8C>?Sec-WebSocket-Version重复HttpClient禁用自动重定<E9878D>?request.followRedirects = false- 添加 WebSocket 升级响应状态日志,便于调试
- 响应<EFBFBD>?101 时先
drain再抛出异常,避免连接泄漏
[v6.5.30] - 2026-05-26
Bug修复<EFBFBD>?项)
- 🎙<EFBFBD>?修复1: Edge TTS WebSocket 403错误(根因修复) (优先<E4BC98>?)
- Dart
WebSocket.connect内部使用Uri()构造器<E980A0>?wss://转换<E8BDAC>?https:// - <EFBFBD>?URL 无显式端口时,
Uri.parse返回port=0, hasPort=false Uri()构造器<E980A0>?port=0输出<E8BE93>?:0,空fragment输出<E8BE93>?#- 导致请求 URL 变为
https://speech.platform.bing.com:0/...#,服务端返回 403 - 修复:URL 中显式包<E5BC8F>?
:443端口,使Uri.parse返回port=443, hasPort=true Uri()构造器<E980A0>?port=443时不会输<E4BC9A>?:443(因<EFBFBD>?https 默认端口),也不会输<E4BC9A>?#
- Dart
- 🏗<EFBFBD>?修复2: Provider在widget树构建期间被修改(根因修复) (优先<E4BC98>?)
ThemeSettingsNotifier.build()中同步调<E6ADA5>?_loadFromStorage()_loadFromStorage()使用同步KvStorageAPI,在build()返回前同步修<E6ADA5>?state- 导致 Riverpod <20>?widget 构建期间触发
_notifyListeners,抛<EFBFBD>?"Tried to modify a provider" 错误 - 修复:将
_loadFromStorage()包装<E58C85>?Future.microtask()中,延迟到构建完成后执行
[v6.5.29] - 2026-05-26
Bug修复<EFBFBD>?项)
- 🧩 修复1: HomeWidgetService Android端小组件name为null (优先<E4BC98>?)
pushInitialData<20>?HomeWidget.updateWidget只传<E58FAA>?iOSName,未<EFBFBD>?androidName/qualifiedAndroidName- 导致 Android 端尝试查<E8AF95>?
apps.xy.xianyan.null类,抛出ClassNotFoundException - 修复:改<EFBFBD>?
updateWidget(WidgetType)方法,自动传递所有平台参<E58FB0>?
- 🏗<EFBFBD>?修复2: Provider在widget树构建期间被修改 (优先<E4BC98>?)
home_page.dart<20>?_setupStateListeners()<20>?build方法中调<E4B8AD>?ref.listenref.listen回调中修改了homeProvider,触<EFBFBD>?"Tried to modify a provider while the widget tree was building"- 修复:将
_setupStateListeners()移到initState<20>?addPostFrameCallback中,改用ref.listenManual
- ⏱️ *修复3: 壁纸源健康检测超<E6B58B>? (优先<E4BC98>?)
checkAllSources串行遍历所有源,单个慢源导致整体超<E4BD93>?WallpaperService<20>?receiveTimeout<20>?秒,对慢源不<E6BA90>?- 修复:
checkAllSources改为Future.wait并行检测;connectTimeout5<>?秒,receiveTimeout8<>?2秒;单源超时10<31>?5<>?
- 🎙<EFBFBD>?修复4: Edge TTS WebSocket 403错误 (优先<E4BC98>?)
- Dart
Uri()构造器<E980A0>?URL 末尾引入#号(fragment分隔符),导致服务端返回 403 - 时钟偏移为覆盖式而非累积式,多次校准后偏移量不准<EFBFBD>?
ConnectionId使用<E4BDBF>?UUID 而非真正<E79C9F>?UUID v4- 修复:URL 改用字符串拼接(<E68EA5>?Python edge-tts 一致);时钟偏移改为累积式
_clockSkewSeconds += newSkew;_generateRequestId改用uuid<20>?
- Dart
[v6.5.28] - 2026-05-25
新增 <20>?插件系统全面增强<E5A29E>?2项Bug修复 + 11项功能增强)
Bug修复<EFBFBD>?2项)
- 🔄 *修复1: AI助手卡片轮播进度点联<E782B9>? (优先<E4BC98>?)
- 🔀 修复2: TTS卡片跳转路由错误 (优先<E4BC98>?)
- 💾 *修复3: 翻译记录持久<E68C81>? <20>?TranslateRecords/TtsRecords<64>?+ schemaVersion 15
- 💾 *修复4: TTS记录持久<E68C81>? <20>?字段名用
content避免Drift冲突 - 🌐 修复5: OnlineTtsService 跨平台WebSocket <20>?web_socket_channel替代dart:io
- ❄️ 修复6: PluginState Freezed注解 <20>?
@freezed sealed class - 🏗<EFBFBD>?*修复7: 翻译引擎注册表Riverpod<6F>? <20>?
translateEngineRegistryProvider - 🗄<EFBFBD>?修复8: 翻译LRU缓存 <20>?LinkedHashMap最<70>?00<30>?
- 🎚<EFBFBD>?修复9: TTS语速范围统一 <20>?0.5~2.0,系统TTS
/2.0适配 - 🐛 修复10: 翻译弹窗TTS级联操作Bug <20>?顺序await替代级联操作<E6938D>?
- 🌐 修复11: Online TTS WebSocket URI端口错误 (优先<E4BC98>?)
Uri.parse('wss://...')返回port=0 <20>?改用Uri(scheme:'wss', host:..., port:443)构造器- 修复
https://speech.platform.bing.com:0/...连接失败问题
- 🔊 *修复12: 系统TTS播放按钮不工<E4B88D>? (优先<E4BC98>?)
- speak前先init + setSpeed(_speed/2.0) + setPitch + setVolume
插件页面交互修复<EFBFBD>?项)
- 🎨 卡片间距优化 <20>?AppSpacing.sm(8px) <20>?AppSpacing.md(16px)
- 🔀 翻译卡片路由修复 <20>?AppRoutes.translate <20>?AppRoutes.translatePlugin
- 🏷<EFBFBD>?官方+启用标签紧邻 <20>?移除Spacer,SizedBox(width:4)连接
- 👆 启用/禁用直接切换 <20>?点击标签直接toggle,无需跳转详情<E8AFA6>?
- 🏗<EFBFBD>?*Provider构建时修<EFBFBD>? <20>?Future.microtask延迟_loadRecords()
功能增强<EFBFBD>?1项)
- 👆 增强13: flutter_slidable 滑动删除
- 📊 增强15: fl_chart 翻译趋势图表 <20>?真实Drift数据
- <EFBFBD>?*增强16: shimmer 骨架<E9AAA8>?
- 📤 增强18: share_plus 分享翻译
- 🔄 *增强B: 翻译引擎指数退避重<E981BF>? <20>?3次重<E6ACA1>?指数退<E695B0>?多引擎降<E6938E>?
- 🌐 增强C: TTS在线多语言语音 <20>?英文(5)+日文(2)+韩文(2)+法文(2)
- ☁️ *增强D: 插件更新机制+云端状态同<E68081>? <20>?Supabase远程版本检<E69CAC>?状态同<E68081>?
- 📝 *增强17: flutter_quill 富文本笔<E69CAC>?
- 🎙<EFBFBD>?增强19: record 录音自定义语音包
- 🎙<EFBFBD>?增强20: speech_to_text 语音输入翻译
- 🎤 增强21: TTS朗读高亮卡拉OK效果 <20>?RichText高亮+语言自动检<E58AA8>?
Mock→真实数据替<EFBFBD>?
- 翻译守护<EFBFBD>?TTS朗读<E69C97>? Drift真实数据 + 相对时间格式<E6A0BC>?+ 空记录占<E5BD95>?
插件健康状<EFBFBD>?
- 🏥
plugin_health_service.dart: 翻译/TTS各组件健康检<E5BAB7>? - 详情页启用开关下方显<EFBFBD>?<3F>?⚠️/<2F>?状态条 + 刷新按钮
新增文件
translate_engine_provider.dart<20>?翻译引擎注册+LRU缓存+重试策略translate_record_provider.dart<20>?翻译/TTS记录Drift Providerplugin_update_service.dart<20>?插件更新服务+云端同步plugin_health_service.dart<20>?插件健康状态检<E68081>?translate_note_sheet.dart<20>?翻译笔记富文本弹<E69CAC>?voice_translate_sheet.dart<20>?语音翻译弹窗voice_recorder_sheet.dart<20>?录音弹窗plugin_provider.freezed.dart<20>?Freezed生成代码
修改文件
app_database.dart<20>?TranslateRecords/TtsRecords<64>?CRUD+schemaVersion 15plugin_page.dart<20>?路由修复+卡片间距+标签布局+toggle+更新红点+同步plugin_provider.dart<20>?Freezed+语<>?toJson/fromJson+syncToCloud/syncFromCloudtranslate_sheet.dart<20>?引擎Provider+LRU缓存+Drift+重试+Shimmer+分享+笔记+语音translate_plugin_page.dart<20>?Drift数据+Slidable+图表+健康状<E5BAB7>?tts_plugin_page.dart<20>?Drift数据+Slidable+语<>?健康状<E5BAB7>?tts_player_sheet.dart<20>?语<>?卡拉OK高亮+语言检<E8A880>?系统TTS修复tts_service.dart<20>?多语言+setLanguage+mapToTtsLanguageonline_tts_service.dart<20>?WebSocket跨平<E8B7A8>?多语言语音+URI修复+动态SSML
[v6.5.27] - 2026-05-25
新增 <20>?插件系统(翻译守<E8AF91>?+ 文本朗读<E69C97>?
-
🧩 插件系统架构 (优先<E4BC98>?)
plugin_provider.dart: 插件状态管理(Riverpod Notifier),13个配置字<E7BDAE>?+ KvStorage持久<E68C81>?- 通用设置页新增「功能扩展」分<EFBFBD>?+ 「插件」导航入<E888AA>?
- 路由注册:
/settings/plugin、/settings/plugin/translate、/settings/plugin/tts - 鸿蒙端路由同步注册(ohos_nav_bridge.dart<72>?
-
🌐 翻译守护插件 (优先<E4BC98>?)
translate_plugin_page.dart: 翻译守护详情页(启用开<E794A8>?+ 使用预览 + 翻译设置 + 翻译记录 + 使用场景 + 反馈入口<E585A5>?translate_sheet.dart: 翻译结果底部弹窗(Bing/Google/MyMemory多引擎降<E6938E>?+ 复制翻译 + 朗读翻译 + 分享翻译<E7BFBB>?- 复用现有 TranslateApiService 体系,独立配置(不与翻译助手共享<E585B1>?
- 主页每日推荐卡片 + 句子广场列表卡片:爱心左侧增<E4BEA7>?🌐 翻译按钮(CupertinoIcons.globe<62>?
-
🔊 文本朗读插件 (优先<E4BC98>?)
tts_plugin_page.dart: 文本朗读详情页(启用开<E794A8>?+ 使用预览 + 引擎选择 + 语<>?音调/音量 + 朗读记录 + 使用场景 + 反馈入口<E585A5>?tts_player_sheet.dart: 朗读控制底部弹窗(系统TTS/在线TTS双引<E58F8C>?+ 播放/暂停/停止 + 语速调节)online_tts_service.dart: Edge TTS在线语音合成服务(WebSocket + MP3 + 8种中文语音)- 主页每日推荐卡片 + 句子广场列表卡片:爱心左侧增<E4BEA7>?🔊 朗读按钮(CupertinoIcons.speaker_2_fill<6C>?
-
🤖 AI助手插件卡片 (优先<E4BC98>?)
- 插件列表页新增AI助手卡片(次要色 + "敬请期待"标签 + 2页预览轮播)
- 预览内容:智能对话(Claude/GPT/Gemini/DeepSeek<65>? AI创作(续<EFBC88>?文案/改写<E694B9>?
- 暂不可用,占位展<EFBFBD>?
-
📡 离线兼容
- 无网络时插件列表页显<EFBFBD>?暂无可用插件"空状<E7A9BA>?+ 重新加载按钮
修改文件
general_settings_sections.dart: 新增「功能扩展」分<E3808D>?general_settings_page.dart: _onNavigate 增加 plugin caseapp_routes.dart: 新增 plugin/translatePlugin/ttsPlugin 路由常量settings_routes.dart: 新增3条路由注<E794B1>?ohos_nav_bridge.dart: 鸿蒙端路由注<E794B1>?home_daily_card.dart: buildAuthorRow 注入翻译/朗读按钮home_sentence_card.dart: _buildActionRow 注入翻译/朗读按钮
[v16.36.3] - 2026-05-25
新增 <20>?插件列表<E58897>?
- 🧩 新增 PluginPage 插件管理页面 (优先<E4BC98>?)
plugin_page.dart: 插件列表页,展示翻译助手和语音朗读两个插件卡<E4BBB6>?- 网络离线时展示📡空状<EFBFBD>?+ 重新加载按钮(使<EFBC88>?isOnlineProvider<65>?
- 翻译助手卡片:渐变图<EFBFBD>?+ 官方徽章 + 启用状态标<E68081>?+ 源→目标语言预览 + 版本/使用次数
- 语音朗读卡片:渐变图<EFBFBD>?+ 官方徽章 + 启用状态标<E68081>?+ 播放器模拟预<E68B9F>?+ 版本/使用次数
- 底部"关于插件"说明区(GlassContainer<65>?
- 点击卡片导航到对应详情页(translate / translateSettings<67>?
- 遵循项目设计系统:AppThemeExtension、AppSpacing、AppRadius、AppTypography、GlassContainer
[v16.36.2] - 2026-05-25
新增 <20>?翻译结果弹窗组件
- 🌐 新增 TranslateSheet 翻译结果底部弹窗 (优先<E4BC98>?)
translate_sheet.dart: 展示句子翻译结果的半屏弹窗组<E7AA97>?- 支持多翻译引擎(Bing/Google/MyMemory)自动降<E58AA8>?
- 翻译结果卡片(蓝色背景)+ 原文卡片(灰色背景)双卡片布局
- 操作按钮:<EFBFBD>?复制翻译 + 🔊 朗读翻译(支持系统TTS/在线TTS切换<E58887>?
- 翻译成功自动递增 pluginProvider 翻译计数
- 加载<EFBFBD>?CupertinoActivityIndicator + 错误态中文友好提<E5A5BD>?+ 重试按钮
- 静<EFBFBD>?
TranslateSheet.show()方法,调<EFBC8C>?AppBottomSheet.showHalf()弹出 - 遵循项目设计系统:AppThemeExtension 动态主题、AppSpacing/AppRadius/AppTypography 令牌
[v16.36.1] - 2026-05-25
Bug修复 <20>?OHOS平台3项启动崩溃修<E6BA83>?
- 💥 修复1: FrameRateThrottler.currentFrameTimeStamp断言崩溃 (优先<E4BC98>?)
- 根因:
SchedulerBinding.instance.currentFrameTimeStamp在非帧回调期间访问时_currentFrameTimeStamp为null,触<EFBC8C>?_AssertionError - OHOS平台调度器行为与标准Flutter不同,更容易在非帧期间调用此getter
performance_optimizer.dart: 使用Stopwatch.elapsed替代currentFrameTimeStamp,确保任何上下文都能安全获取时间- 移除不再需要的
scheduler.dart导入
- 根因:
- 📱 修复2: flutter_local_notifications OHOS端初始化失败 (优先<E4BC98>?)
- 根因:
notification_init_stub.dart通过dynamic动态设<E68081>?settings.ohos,但InitializationSettings.ohos<20>?final字段无法赋<E6B395>? _createOhosInitializationSettings()返回null,导<EFBFBD>?OHOS <20>?settings.ohos始终<E5A78B>?null- 插件
initialize()检<>?settings.ohos == null抛出ArgumentError - 修复: 直接<E79BB4>?
InitializationSettings构造函数中传入OhosInitializationSettings(本地包已导出此类型<EFBFBD>? - 同步修复
requestOhosNotificationPermission()使用强类<E5BCBA>?OhosFlutterLocalNotificationsPlugin
- 根因:
- ⚙️ *修复3: workmanager OHOS端原生通道未注<E69CAA>? (优先<E4BC98>?)
- 根因: OHOS<4F>?
WorkmanagerHostApi的原生MethodChannel未注册,initialize()抛出PlatformException background_task_service.dart: 新增 OHOS 平台检查,跳过 workmanager 初始化避免异<E5858D>?- 待OHOS端原生插件通道注册完成后可移除此检<EFBFBD>?
- 根因: OHOS<4F>?
[v16.36.0] - 2026-05-25
Bug修复 <20>?7项功能修复与优化
- 🏷<EFBFBD>?*修复1: 发现页标题改<E9A298>?
- "灵感" <20>?"工作<E5B7A5>?,图<EFBC8C>?lightbulb_fill <20>?wrench_fill
- "天气诗词" <20>?"情景诗词"(涉<EFBC88>?个文件统一修改<E4BFAE>?
- 🎨 修复2: 日签卡片动态主<E68081>?+ 切换句子
card_action_bar.dart: 全量重写,硬编码颜色替换为动态主题色daily_card_page.dart: 导航栏增<E6A08F>?换一<E68DA2>?按钮daily_card_provider.dart: 新增nextContent()方法循环切换内容类型
- 🐱 *修复3: 发现页下拉组件精灵头<E781B5>?
inspiration_page.dart: 下拉指示器从emoji文字替换<E69BBF>?AppBarCharacterSprite + SpriteDialogBubble
- 💾 *修复4: 翻译助手持久化保<E58C96>?
translate_provider.dart: 新增 session_messages 的加<E79A84>?保存/清除逻辑- 退出后台后翻译记录不再丢失,最多保<EFBFBD>?00<30>?
- 🔒 修复5: 壁纸模板debug模式卡死
wallpaper_gallery_view.dart: 移除_sortLoadedFirst()中阻塞式DefaultCacheManager().getFileFromCache()逐个检<E4B8AA>?- 改为基于
_cachedUrls集合的防抖排序(300ms),由卡<E794B1>?_onImageLoaded回调驱动 wallpaper_masonry_grid.dart: 移除冗余_ImageLoadNotifier缓存轮询(每3秒N次并发I/O<>?_checkCache()添加2秒超时保<E697B6>?- 验证12个壁纸API接口全部正常响应
- ⌨️ 修复6: 稍后读输入框键盘弹出问题
- 根因:
ChatFlowInputBar<20>?markUserTapped使用的pageKey不含时间戳,与注册的pageKey不匹<E4B88D>? chat_flow_input_bar.dart: 新增pageKey<20>?onInputTapped参数chat_flow_page.dart: 传递正确的_pageKey,点击输入框时标<EFBFBD>?_userTappedInput = true- 修复
didChangeAppLifecycleState中过度清除键盘状态的逻辑
- 根因:
- 🌐 修复7: TransferAPI连接错误优化
transfer_api_service.dart: 新增DNS预检机制<E69CBA>?分钟缓存),DNS不可用时跳过API请求直接降级- 网络类错误日志级别从
Log.e降为Log.w,减少控制台噪音 - 新增
_isDnsError()辅助方法区分DNS错误和业务错<E58AA1>?
[v16.35.0] - 2026-05-25
性能优化 <20>?主页发热/卡顿/线程占用 8项深度优<E5BAA6>?
骁龙8Gen5 16+1T设备5秒冷启动即烫手,thread 17 is not paused 根因:GPU着色器过重 + 动画全<E794BB>?0fps无节<E697A0>?+ MaskFilter.blur + BackdropFilter叠加 + 入场动画冗余
- 🔥 优化1: LiquidGlass参数降级 (GPU着色器负载 <20>?0%)
app_shell.dart: thickness 40<34>?4, blur 25<32>?2, refractiveIndex 1.8<EFBFBD>?.45- chromaticAberration 1.2<EFBFBD>?.3 (<28>?5%), lightIntensity 3.5<EFBFBD>?.2 (<28>?6%)
app.dart: GlassTheme全局 thickness 30<33>?0, blur 3<>?, lightIntensity 1.2<EFBFBD>?.8
- 🔥 优化2: SheetAnimationNotifier帧率节流 (重建频率 <20>?0%)
- 添加FrameRateThrottler 30fps节流,值缓存避免重复notify
- progress变化<0.002时跳过通知,零值时跳过Transform重建
- home_page.dart: 添加RepaintBoundary隔离Transform重绘范围
- filterQuality medium→low
- 🔥 *优化3: TabIconSprite粒子效果轻量<E8BDBB>? (GPU绘制调用 <20>?0%)
- _FloatingParticle: BoxShadow+Container <20>?CustomPaint(消除shadow blur GPU开销<E5BC80>?
- _GlowPainter: 移除MaskFilter.blur(BlurStyle.normal, 8)(最昂贵的GPU操作<E6938D>?
- 粒子<EFBFBD>?5<>?,光晕渐变stop优化
- 🔥 优化4: AppBarCharacterSprite 6个AnimationController全部节流 (重建频率 <20>?0%)
- 6个Controller全部通过FrameRateThrottler(decorative) 30fps节流
- 新增5个ValueNotifier转发节流后的值,AnimatedBuilder只监听节流<EFBFBD>?
- _paintShadow/_paintGroundShadow: 移除MaskFilter.blur,用半透明椭圆替代
- 🔥 优化5: GlassContainer/GlassBottomNavBar BackdropFilter按性能级别降级
- BackdropFilter集成PerformanceOptimizer.shouldEnableBackdropFilter
- saver模式完全禁用BackdropFilter,balanced模式blur sigma×0.7
- GlassBottomNavBar同样集成性能级别降级
- 🔥 优化6: HomeSentenceListSection入场动画精简 (GPU叠加<E58FA0>?<3F>?0%)
- 移除入场动画的scale+shimmer效果(fadeIn+slideY已足够)
- stagger延迟 50ms<6D>?0ms,上<EFBC8C>?20<32>?0(总入场时<E59CBA>?1s<31>?.3s<EFBFBD>?
- 动画时长 500ms<6D>?00ms,slideY幅度 0.12<EFBFBD>?.08
- 骨架屏shimmer alpha 0.2<EFBFBD>?.12, duration 1000ms<6D>?500ms
- 🔥 优化7: DailyCard Tilt+CardSwiper叠加优化 (GPU渲染<E6B8B2>?<3F>?0%)
- Tilt angle 8<>?, lightIntensity 0.06<EFBFBD>?.03, shadowIntensity 0.15<EFBFBD>?.08
- CardSwiper scale 0.88<EFBFBD>?.92, backCardOffset (12,20)<29>?8,12)
- swipe duration 500ms<6D>?00ms
- 🔥 *优化8: PerformanceOrchestrator前后台暂停增<E5819C>?
- 新增onPauseStateChanged回调,后台时通知所有动画组件暂<EFBFBD>?
- 新增isPaused属性,removePauseStateCallback方法
- 前后台切换时先发送暂停状态通知,再执行各组件回<EFBFBD>?
已归档版本
6.25.1(鸿蒙小组件跳转修复) / 6.25.0(鸿蒙端数据库+存储迭代修复) / 6.24.0(诗词设置页面) / 14.23.0(翻译助手) / 14.22.0(画布样式) / 14.20.0(屏幕共享WebRTC) / 14.19.0(画布协作) / 14.18.0(离线队列) / 14.17.0(USB传输) / 14.16.0(云端暂存) / 14.15.0(送达回执) / 14.14.0(断点续传) / 14.13.0(文件分流) / 14.12.0(信令服务器) / 14.11.0(配对码机制) / 14.10.0(雷达扫描) / 14.9.0(屏幕共享信令) / 14.8.0(画布同步) / 14.7.0(全流程E2E) / 14.6.0(翻译服务) / 14.5.0(诗词页面) / 14.4.0(天气诗词) / 14.3.0(编辑器增强) / 14.2.0(画布圆角) / 14.1.0(编辑器样式) / 14.0.0(传输架构重构) / 13.9.0(多语言) / 13.8.0(主题系统) / 13.7.0(设置重构) / 13.6.1(数据库修复) / 13.6.0(存储优化) / 13.4.0(本地化) / 13.3.0(HTTP明文) / 13.2.0(信令协议) / 6.4.1-6.4.5(鸿蒙端数据库+存储迭代修复) / 5.13.0(local_auth_ohos合并) / 5.10.0(SDK升级oh-3.41.9) / 12.4.0(Tab栏个性交互) / 12.3.0(搜索三大问题修复) / 12.2.0(收藏双向同步) / 12.1.1(快捷按钮导航) / 12.1.0(USB OTG传输) / 6.3.2(登录加载闪烁修复) / 6.3.1(TextPainter异常修复) / 6.2.0(协作画布) / 6.2.1(剪贴板同步) / 11.2.0(云端暂存) / 5.33.0(智能推荐+标签云+智能模式) / 5.32.0(离线浏览缓存) / 5.31.0(通知设置) / 5.30.0(二维码登录) / 5.29.0(表单校验+本地通知) / 5.28.0(文件传输助手+我的设备) / 5.27.0(用户中心接口同步) / 5.26.0(文件传输核心架构) / 5.22.0(聊天多媒体+视觉增强) / 4.21.0(聊天会话流) / 5.11.0(通用设置重构) / 5.10.0(关于页面+图标统一) / 3.9.9(画布样式编辑) / 3.9.8(拖拽描边/文本回写/壁纸无限加载) / 3.9.7(画布圆角+导出修复) / 3.9.6(画布圆角/文字按钮卡死) / 3.9.5(Bug回归修复) / 3.9.4(本地化/HTTP明文) / 3.9.3(画布圆角/壁纸卡死) / 3.9.2(画布圆角/文字按钮/壁纸) / 3.9.1(历史卡死/同步丢失) / 3.9.0(编辑器增强) / 3.8.0 / 2.58.0(六大Bug修复) / 2.57.0(开发计划) / 2.56.0(README更新) / 2.55.1(代码质量清理) / 1.55.0(灵感页面重构) / 1.54.0(个人中心+签到Bug) / 1.53.0(分类列表+骨架屏) / 1.52.0(句子卡片不更新) / 1.51.0(句子循环重复) / 1.50.0(频道同步延迟) / 1.49.0(刷新无响应+分类同步) / 1.48.0(句子广场无限循环) / 1.47.0(API类型转换崩溃) / 1.46.0(句子来源页面) / 1.45.0(笔记自动保存) / 1.44.2(笔记Bug修复) / 1.44.1(笔记删除Bug) / 1.44.0(API集成补全) / 1.40.0(用户安全接口) / 1.39.0(卡片震动/分类切换) / 1.31.0(API功能全面接入) / 1.30.0(传统色页面重构) / 1.23.0(偷工减料修复) / 1.22.0(句子广场交互) / 1.21.0(数据管理卡死/Tab抖动) — 更早版本详见 git history