Files
xianyan/CHANGELOG.md
Developer 3e68f7dc2a chore: 完成v5.10.0版本迭代更新
此版本包含多项功能优化与修复:
1. 新增鸿蒙分层图标生成脚本,完善鸿蒙应用图标适配
2. 重构多处FutureProvider为NotifierProvider,修复ElementWithFuture异常
3. 更新flutter_tts依赖为鸿蒙适配版本,调整pubspec配置
4. 优化运势卡片样式文案,更新引导页功能介绍详情
5. 修复在线TTS服务Path正则匹配问题,支持含点号的路径
6. 重构通知权限、崩溃监控等状态管理逻辑
7. 更新翻译覆盖率统计,支持手动标注真实翻译进度
8. 优化编辑器工具栏、会话流页面交互细节
9. 新增日志筛选、导出CSV等增强功能
10. 调整设置页面文案,优化用户操作体验
2026-05-26 08:24:44 +08:00

50 KiB
Raw Blame History

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() 中所有硬编码会话ID
    • translate_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
    • 新增 QuickCardPlaceholderEditorSubPlaceholder 占位组件
  • 🗄️ 任务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: true
    • general_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(俄语)
    • 选择后保存到KvStoragekey: 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_STORAGE intent-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.xmlMainActivity.ktapp.dartstrings.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,缓存检查永远失败
    • 根因3SafeCachedImage加载成功后无回调通知,onImageLoaded从未被触发
    • 根因4SafeCachedImage错误处理仅覆盖SQLite只读错误其他错误类型直接显示错误占位
    • 修复:_loadSlowSources添加try-catch+catchError双重保护
    • 修复:_checkCache改用CustomCacheManager.instance单例避免SQLite锁竞争
    • 修复:SafeCachedImage新增onLoaded回调,图片加载成功时通知父组件
    • 修复:SafeCachedImage所有错误类型首次失败均降级为Image.network
    • 修复:CachedNetworkImage添加imageBuilder触发onLoaded回调
    • 文件:wallpaper_gallery_view.dartwallpaper_masonry_grid.dartsafe_cached_image.dart
  • 🐛 Task14: 数据管理页面选择导入数据后点击选择文件报错修复 (优先级5)
    • 根因1FilePicker.pickFiles(type: FileType.custom)在iOS等平台不支持自定义扩展名.xypk,抛出PlatformException
    • 根因2readAsBytesSync()同步读取大文件阻塞UI线程
    • 修复:FileType.custom失败时降级为FileType.any,手动校验文件扩展名
    • 修复:添加PlatformException专门捕获和友好错误提示
    • 修复:readAsBytesSync()改为异步readAsBytes()
    • 修复:文件路径为空时显示错误提示
    • 文件:data_management_page.dart

[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.dartchat_flow_page.dartchat_flow_top_bar.dartchat_flow_message_list.dartchat_flow_input_bar.dartchat_flow_readlater_mixin.dartchat_settings_page.darttranslate_provider.dart
  • 🕐 Task8: 会话流列表更新使用时间并按最新时间排序 (优先级4)
    • ChatSessionNotifier新增updateSessionTime方法进入会话时更新lastTime为当前时间
    • 使用时间持久化到KvStoragekey: chat_sessions_last_time重启后恢复
    • ChatFlowPage.initState中调用updateSessionTime更新会话使用时间
    • refreshFromChat方法改为按conversationId精确匹配并保存时间
    • displaySessions已按lastTime从新到旧排序持久化后排序正确
    • 文件:chat_session_provider.dartchat_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.dartonboarding_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.dartlanguage_settings_page.dart

[v6.5.36] - 2026-05-26

引导页与编辑器优化4项

  • 🔄 Task21: 引导页第2页"跳过引导"按钮移至右上角 (优先级3)
    • "跳过引导"按钮从底部移至页面右上角,与左侧"欢迎与指引"按钮左右对齐
    • 按钮样式改为 GlassContainer 风格,与返回按钮视觉一致(含右箭头图标)
    • PageNavHeader 新增 trailing 参数支持右侧组件
    • 文件:agreement_page.dartpage_nav_header.dart
  • 🐛 Task22: 引导页按钮点击不跳转修复 (优先级4)
    • 问题第1页"开始使用"和第2页"同意并继续"按钮有时点击不跳转,只能滑动
    • 根因:按钮仅更新 Riverpod 状态,依赖 ref.listen 间接触发 PageController 动画,存在时序问题
    • 修复:新增 OnboardingNavScope InheritedWidget子页面可直接调用 _goToPage 方法
    • _goToPage 同时更新状态和驱动 PageController 动画,确保点击即跳转
    • 所有导航按钮(前进/返回/步骤点)统一通过 OnboardingNavScope 导航
    • 移除原有 ref.listen 间接导航机制
    • 文件:onboarding_page.dartwelcome_page.dartagreement_page.dartpersonalization_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.dartlogger.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.darttts_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.CoreSpeechKittextToSpeech API 实现全部 MethodChannel 方法
    • 支持方法:speakstoppausesetSpeechRatesetVolumesetPitchsetLanguagegetLanguagesgetVoicessetQueueModeawaitSpeakCompletion
    • 支持回调事件:speak.onStartspeak.onCompletespeak.onCancelspeak.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)
    • connectivityCheckProviderFutureProvider→NotifierProvider
    • recentCrashesProvidercrashStatsProviderFutureProvider→NotifierProvider
    • notificationPermissionProviderFutureProvider→NotifierProvider
    • shareHistoryProviderFutureProvider→NotifierProvider
    • permissionStatusProviderFutureProvider→NotifierProvider
    • hitokotoProviderhitokotoBatchProviderFutureProvider.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('-', '')
  • 🏗️ 修复5: 多个Notifier的build()中同步调用_loadFromStorage() (优先级4)
    • ReadingGoalNotifierTranslateSettingsNotifierCustomApiNotifierGeneralFieldsNotifier
    • 修复:将 _loadFromStorage() 包装在 Future.microtask()
  • 🎙️ 修复6: 系统TTS不可用—isLanguageAvailable返回false (优先级4)
    • isLanguageAvailable('zh-CN') 在某些设备返回 false 且 getLanguages 返回空列表
    • 导致 _isAvailable=falseTTS 永远不可用
    • 修复:不再依赖 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>?)
    • TranslateSettingsNotifierCustomApiNotifierGeneralFieldsNotifier <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>?#
  • 🏗<EFBFBD>?修复2: Provider在widget树构建期间被修改根因修复 (优先<E4BC98>?)
    • ThemeSettingsNotifier.build() 中同步调<E6ADA5>?_loadFromStorage()
    • _loadFromStorage() 使用同步 KvStorage APIbuild() 返回前同步修<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.listen
    • ref.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 并行检测;connectTimeout 5<>?秒,receiveTimeout 8<>?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>?

[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>?移除SpacerSizedBox(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 Provider
  • plugin_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 15
  • plugin_page.dart <20>?路由修复+卡片间距+标签布局+toggle+更新红点+同步
  • plugin_provider.dart <20>?Freezed+语<>?toJson/fromJson+syncToCloud/syncFromCloud
  • translate_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+mapToTtsLanguage
  • online_tts_service.dart <20>?WebSocket跨平<E8B7A8>?多语言语音+URI修复+动态SSML

[v6.5.27] - 2026-05-25

新增 <20>?插件系统翻译守<E8AF91>?+ 文本朗读<E69C97>?

  • 🧩 插件系统架构 (优先<E4BC98>?)

    • plugin_provider.dart: 插件状态管理Riverpod Notifier13个配置字<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 case
  • app_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>?

[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模式完全禁用BackdropFilterbalanced模式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>?00msslideY幅度 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