Files
wushu/CHANGELOG.md
2026-04-10 06:22:06 +08:00

343 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
All notable changes to this project will be documented in this file.
---
## [1.4.7] - 2026-04-09
### 新增
-**列表/网格布局切换功能**
- 扩展 `FavoritesController` 添加布局切换持久化功能
- 支持在列表模式(一行一个)和网格模式(一行两个)之间切换
- 布局设置自动保存到 SharedPreferences
- 涉及页面:
- 全部列表页面 - 支持网格布局
- 笔记列表页面 - 支持网格布局
- 涉及文件:
- `lib/services/get/favorites_controller.dart` - 添加布局持久化
- `lib/views/footprint/all_list.dart` - 支持网格布局
- `lib/views/footprint/local_jilu.dart` - 支持网格布局
### 优化
- 🔧 **网格布局卡片优化**
- 全部列表页面网格布局2列适配点赞诗词和笔记
- 笔记列表页面网格布局2列完整功能支持
- 支持锁定、置顶、删除等所有操作
- 深色模式完整支持
### 新增
-**诗词答题页面骨架屏**
-`poetry-page.dart` 中新增 `PoetryLevelSkeleton` 骨架屏组件
- 冷启动加载时显示骨架屏,避免页面闪白
- 包含分数显示、题目卡片、选项等完整骨架
- 支持深色/浅色模式和动态主题色
- 涉及文件:
- `lib/views/profile/level/poetry-page.dart` - 新增 PoetryLevelSkeleton 组件
- `lib/views/profile/level/poetry.dart` - 使用骨架屏替换加载指示器
### 修复
- 🐛 **修复笔记网格布局报错**
- 修复 `_buildGridNoteCard` 方法中缺少 `hasCategory` 变量定义的问题
- 涉及文件:
- `lib/views/footprint/local_jilu.dart` - 添加 `hasCategory` 变量定义
- 🐛 **修复个人页面统计数据隐藏功能**
- 修复点击隐藏按钮后统计数据依旧显示的问题
- 使用 `Obx` 包裹统计部分的 Column使其能够响应 `isStatsHidden` 的变化
- 现在点击隐藏按钮会同时隐藏诗词挑战和统计数据
- 涉及文件:
- `lib/views/profile/profile_page.dart` - 使用 Obx 包裹统计部分
---
## [1.4.6] - 2026-04-09
### 新增
-**搜索历史功能**
- 新建搜索历史管理器 `SearchHistoryManager`
- 新建搜索历史页面 `SearchHistoryPage`
- 自动保存用户搜索记录,最多保存 20 条
- 支持点击搜索历史快速搜索
- 支持删除单条搜索记录
- 支持清空所有搜索历史
- 使用 iOS 风格 Cupertino 组件
- 涉及文件:
- `lib/views/active/search/search_history_manager.dart` - 搜索历史管理器
- `lib/views/active/search/search_history_page.dart` - 搜索历史页面
- `lib/views/active/active_search_page.dart` - 搜索页面
### 优化
- 🔧 **统一消息气泡样式为 GetX 风格**
- 将所有页面的 ScaffoldMessenger 改为 GetX 的 Get.snackbar
- 背景使用 GetX 默认样式
- 字体色使用动态主题色
- 根据操作逻辑判断显示位置:
- 成功操作(保存、删除、更新等)显示在底部
- 错误提示(密码错误、输入为空等)显示在顶部
- 涉及文件:
- `lib/views/footprint/local_jilu.dart` - 笔记列表页面
- `lib/views/footprint/collect_notes.dart` - 笔记编辑页面
- `lib/views/footprint/footprint_page.dart` - 足迹页面
- `lib/views/footprint/all_list.dart` - 全部列表页面
- `lib/views/profile/settings/app_fun.dart` - 设置页面
- 🔧 **公告页面优化**
- 添加底部"到底了"提示
- 增加底部 padding 防止被底部 tabs 遮住
- 涉及文件:
- `lib/views/footprint/load/notice-page.dart` - 公告页面
- 🔧 **全局Tips开关优化**
- 添加开关状态提示消息
- 使用 GetX 消息气泡样式
---
## [1.4.5] - 2026-04-09
### 新增
-**添加密码提示和找回密码功能**
- 笔记数据结构新增 `passwordHint` 字段
- 在设置/修改密码对话框中新增密码提示输入框
- 密码提示可作为找回密码的凭证
- 在笔记列表密码输入对话框中新增"忘记密码?"选项
- 输入正确的密码提示可重置密码并解锁笔记
- 涉及文件:
- `lib/controllers/history_controller.dart` - 添加密码提示相关方法
- `lib/views/footprint/collect_notes.dart` - 添加密码提示输入框
- `lib/views/footprint/local_jilu.dart` - 添加忘记密码功能
### 优化
- 🔧 **HistoryController 新增方法**
- `verifyNotePasswordHint()` - 验证密码提示
- `resetNotePasswordByHint()` - 通过密码提示重置密码
- 🔧 **确保密码提示正确保存到 SharedPreferences**
- `saveNote()` 方法正确处理和保存 `passwordHint` 字段
- 读取和更新笔记时正确保留密码提示
- 🔧 **修复忘记密码按钮功能**
- 重构密码输入对话框,使用 Map 返回不同类型的结果
- 确保"忘记密码?"按钮正常工作并切换到密码提示输入模式
- 验证成功后直接进入笔记页面
---
## [1.4.4] - 2026-04-09
### 新增
-**创建公告信息页面**
- 新建 `lib/views/footprint/load/notice-page.dart` 文件
-`https://yy.vogov.cn/api/app/notice_api.php` 获取公告数据
- 支持下拉刷新、加载状态、错误处理
- 使用 iOS 风格 Cupertino 组件
- 公告卡片显示公告编号、内容、作者、创建时间、更新时间
- 支持可选显示导航栏(`showAppBar` 参数)
- 涉及文件:
- `lib/views/footprint/load/notice-page.dart` - 新增公告页面
- `lib/views/favorites_page.dart` - 集成公告页面到推送标签
-**在收藏页面添加推送标签功能**
- 在收藏页面的"推送"标签中显示公告列表
- 公告页面嵌入到 TabBarView 中,不显示重复导航栏
- 涉及文件:
- `lib/views/favorites_page.dart` - 添加推送标签处理
- `lib/views/footprint/footprint_page.dart` - 移除通知按钮(公告已移至收藏页面)
---
## [1.4.3] - 2026-04-04
### 修复
- 🐛 **修复 Trae 环境下 WiFi 设备安装卡顿问题**
- 问题:在 Trae 中运行到三星平板时,一直显示 "Installing build\app\outputs\flutter-apk\app-debug.apk...",但 Android Studio 能正常安装
- 根本原因WiFi 连接的设备建立 VM Service 连接较慢,导致 Flutter 认为安装卡住
- 解决方案:
- 在 VS Code launch.json 中为所有配置添加 `--device-timeout=60` 参数
- 新增 WiFi 设备专用配置,使用 `--device-timeout=120``--device-connection=wireless`
- 新增 USB 设备专用配置,使用 `--device-timeout=30``--device-connection=attached`
- 创建 WiFi 设备连接辅助脚本wifi_device_helper.bat 和 wifi_device_helper.ps1
- 提供手动安装 APK 的选项,绕过 VM Service 连接等待
- 涉及文件:
- `.vscode/launch.json` - 优化设备连接配置
- `wifi_device_helper.bat` - Windows 批处理辅助脚本
- `wifi_device_helper.ps1` - PowerShell 辅助脚本
- 使用说明:
- 在 VS Code 中运行时,选择 "flutter_application_2 (WiFi Device)" 配置
- 或使用辅助脚本 `wifi_device_helper.bat``wifi_device_helper.ps1`
- 如仍卡住,可选择选项 4 手动安装 APK
---
## [1.4.2] - 2026-04-04
### 新增
-**创建统一的平台判断工具类 PlatformUtils**
- 新建 `lib/controllers/settings/is_platform.dart` 文件
- 统一管理平台判断逻辑,支持 Web、Android、iOS、HarmonyOS、Windows、macOS、Linux 等平台
- 提供平台检测、操作系统信息获取、平台显示名称等功能
- 所有平台判断方法都包含异常处理,确保在 Web 平台也能正常工作
### 重构
- ♻️ **统一平台判断代码**
- 将分散在多个文件中的平台判断代码统一使用 PlatformUtils
- 移除了各文件中重复的 `import 'dart:io'``import 'package:flutter/foundation.dart'`
- 简化了平台判断逻辑,提高了代码可维护性
- 涉及文件:
- `lib/views/profile/app-info.dart` - 使用 PlatformUtils 替代 io.Platform
- `lib/views/profile/expand/manu-script.dart` - 使用 PlatformUtils.platformDisplayName
- `lib/views/profile/profile_page.dart` - 使用 PlatformUtils.isWeb
- `lib/views/profile/components/pop-menu.dart` - 使用 PlatformUtils
- `lib/services/get/profile_controller.dart` - 使用 PlatformUtils
- `lib/views/profile/guide/app-data.dart` - 使用 PlatformUtils.pathSeparator
- `lib/utils/http/vote_api.dart` - 使用 PlatformUtils
### 修复
- 🐛 **修复三星平板卡 Logo 启动页的问题**
- 将屏幕适配从初始化阶段移到第一帧绘制后执行
- 延迟 100ms 调用屏幕适配,避免在启动时阻塞
- 为所有初始化步骤添加 try-catch 保护,即使某个初始化失败也能继续启动
- 添加详细的调试日志,方便定位启动问题
- 移除 AppInitializer 中的屏幕适配调用
- 修改 MyApp 为 StatefulWidget使用 WidgetsBindingObserver
- 涉及文件:
- `lib/main.dart` - 重构启动流程
- `lib/utils/app_initializer.dart` - 优化初始化流程
## [1.4.1] - 2026-04-03
### 新增
-**项目默认图标裁剪**
- 使用 Python PIL 库裁剪图片为正方形
- 生成了多种尺寸的应用图标1024x1024, 512x512, 256x256 等)
- 默认图标尺寸512x512
- 涉及文件:
- `assets/app_icon_default.png` - 项目默认图标512x512
- `assets/app_icon_square.png` - 正方形原图1271x1271
- `assets/app_icon_*.png` - 各种尺寸图标
- `crop_image.py` - 图片裁剪脚本
-**Web 图标替换**
- 替换了所有 web 平台的图标为新图片
- 包括favicon.png (32x32)、PWA 图标 (192x192, 512x512)
- 包含 maskable 图标版本
- 涉及文件:
- `web/favicon.png` - 网站图标
- `web/icons/Icon-192.png` - PWA 图标
- `web/icons/Icon-512.png` - PWA 图标
- `web/icons/Icon-maskable-192.png` - PWA 可遮罩图标
- `web/icons/Icon-maskable-512.png` - PWA 可遮罩图标
- `replace_web_icons.py` - Web 图标替换脚本
-**从 pubspec.yaml 动态获取版本号**
- 使用 package_info_plus 插件动态获取应用版本号和版本代码
- 在 AppConfig 中添加 init() 初始化方法和 appVersion、appVersionCode getter
- 在 main.dart 中应用启动时初始化 AppConfig
- 在 app-info.dart 中动态显示 appVersion 和 appVersionCode
- 涉及文件:
- `pubspec.yaml` - 使用官方 package_info_plus: ^9.0.1
- `lib/config/app_config.dart` - 添加动态版本号获取
- `lib/main.dart` - 初始化 AppConfig
- `lib/views/profile/app-info.dart` - 动态显示版本号
-**软件更新日志卡片**
- 启用应用信息页面的软件更新日志卡片
- 添加了版本 1.4.1 和 1.3.59 的更新内容
- 涉及文件:
- `lib/views/profile/app-info.dart` - 启用更新日志
-**开源框架列表添加 GetX**
- 在应用信息页面的开源框架列表中添加了 GetX
- GetX 协议MIT
- 涉及文件:
- `lib/views/profile/app-info.dart` - 添加 GetX 到开源框架列表
-**了解我们页面网站列表优化**
- 在官方网站卡片中添加了情景诗词在线版
- 两个网站都添加了独立的复制按钮
- 添加了网站标签显示官方APP页/情景诗词在线版)
- 涉及文件:
- `lib/views/profile/settings/learn-us.dart` - 新增网站列表和复制按钮
### 优化
-**解决 package_info_plus 依赖冲突**
- 解决 wakelock_plus 与 package_info_plus 的版本冲突
- 使用官方版本 package_info_plus: ^9.0.1 替代 git 版本
- 同时保留鸿蒙适配版代码在 packages/flutter_plus_plugins/packages/package_info_plus 以备需要
- 鸿蒙适配版包含完整的 ohos 平台实现
- 涉及文件:
- `pubspec.yaml` - 移除 dependency_overrides使用官方版本
- `packages/flutter_plus_plugins/packages/package_info_plus` - 鸿蒙适配版本地备份
-**使用 Get.snackbar 替代 ScaffoldMessenger**
- 将应用信息页面中的所有 SnackBar 消息改为 Get.snackbar
- 背景色使用 Get.snackbar 默认颜色
- 文字颜色使用动态主题色
- 图标颜色也使用动态主题色(仅复制提示)
- 添加圆角和边距样式
- 涉及文件:
- `lib/views/profile/app-info.dart` - SnackBar 改为 Get.snackbar
-**了解我们页面消息提示优化**
- 将了解我们页面中的所有 SnackBar 消息改为 Get.snackbar
- 包括QQ群号复制、微信公众号复制、网站链接复制
- 背景色使用 Get.snackbar 默认颜色
- 文字颜色使用动态主题色
- 涉及文件:
- `lib/views/profile/settings/learn-us.dart` - 所有消息改为 Get.snackbar
### 修复
- 🐛 **修复版本号不显示的问题**
- 将 AppConfig 中的版本号改为 GetX 响应式变量
- 在 app-info.dart 中使用 Obx 观察版本号变化
- 更新默认版本号为 1.4.1
- 涉及文件:
- `lib/config/app_config.dart` - 响应式版本号
- `lib/views/profile/app-info.dart` - Obx 包裹版本号显示
### 删除
- 🗑️ **移除设计风格卡片**
- 从应用信息页面移除了设计风格卡片
- 涉及文件:
- `lib/views/profile/app-info.dart` - 移除 _buildDesignStyleCard 调用
## [1.3.59] - 2026-04-03
### 修复
- 🐛 **修复出处字段被时间提示语遮挡的问题**
- 给诗词卡片内容添加了顶部内边距60
- 确保出处等内容不被浮动的时间提示语遮挡
- 涉及文件:
- `lib/views/home/home_part.dart` - 添加顶部内边距
---
## 软件特性功能
### 已开发完成
- ✅ iOS 风格界面设计
- ✅ 诗词浏览与收藏
- ✅ 搜索与分类
- ✅ 答题挑战功能
- ✅ 离线模式
- ✅ 个性化设置
- ✅ 投稿功能
- ✅ 投票功能
- ✅ 天气与十二时辰
- ✅ 图片分享
- ✅ 数据管理
- ✅ 使用教程页面
- ✅ 全站统计页面
- ✅ 修复 AppBar 标题显示问题
- ✅ 个人卡片emoji头像切换功能
- ✅ 深色模式支持
- ✅ 液态玻璃导航栏
- ✅ 多页面主题色支持
### 开发中
- 🚧 更多功能优化
## 开发进度
| 功能 | 优先级 | 状态 |
| ------------ | ------ | -------- |
| 使用教程 | 1 | ✅ 已完成 |
| 投稿功能优化 | 2 | ✅ 已完成 |
| 界面美化 | 3 | ✅ 已完成 |
| 数据管理功能 | 1 | ✅ 已完成 |
| 主题色支持 | 1 | ✅ 已完成 |
| 性能优化 | 4 | 🔄 进行中 |
| 新功能开发 | 5 | 📋 计划中 |