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

14 KiB
Raw Blame History

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.batwifi_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 📋 计划中