Skip to content

Feature/v1.8.0#4

Merged
Webb-L merged 56 commits intomasterfrom
feature/v1.8.0
Jul 31, 2025
Merged

Feature/v1.8.0#4
Webb-L merged 56 commits intomasterfrom
feature/v1.8.0

Conversation

@Webb-L
Copy link
Owner

@Webb-L Webb-L commented Jul 31, 2025

No description provided.

引入 Syncfusion DataGrid 替换原有的表格实现,增强表格的功能与可扩展性,包括列排序与自定义单元格样式支持。同时增加了 "全选" 功能,并调整了部分交互逻辑以配合新的表格组件。修改了相关依赖及配置以支持新功能。
添加国际化机制,支持语言切换。新增中英文语言资源文件,覆盖常见UI文本及提示,优化用户体验。
新增主页面相关模块和功能,包括主机观察者、编辑模式支持、主页面侧边栏及顶部导航栏组件。添加适配不同平台的逻辑,并实现主机信息的表格与文本编辑。
新增 `SimpleHomePage` 和 `SimpleHomeView` 组件,完善主页面的简化视图展示。优化文件读取逻辑,通过 `HostCubit` 管理从文件读取的数据流。更新 `.gitignore` 增加多平台相关的缓存文件排除规则。同步更新依赖项以支持新功能和修复。
在 `onToggleUse` 中新增对主机行内容的更新逻辑,通过实时更新文件内容增强操作的一致性。重构 `toHostString` 方法,提升代码复用性并简化主机字符串生成规则。修复部分逻辑中的格式处理问题。
新增 `filePath` 参数到 `SimpleHomeView`,支持根据文件路径加载主机文件内容。实现文件保存功能,包含多平台支持,并在 Web 平台上新增通过剪贴板保存的选项。优化编辑模式逻辑,修复部分注释内容不准确的问题。
新增导出功能,允许用户将 Hosts 文件压缩为 ZIP 包并保存到指定路径。更新本地化文件,添加导出相关文本提示,同时调整依赖以引入 `archive` 和 `file_picker` 包。
• 新增服务器模块 (lib/server/)
  - HostsServer: 提供RESTful API管理hosts文件
  - ServerManager: 服务器生命周期管理
  - ServerSettingsPage: 服务器配置界面
  - 支持CORS、日志、错误处理

• 完善导入导出功能
  - ExportHostsDialog: 支持多选导出hosts文件
  - ImportHostsDialog: 支持ZIP文件导入
  - 在主菜单中集成导入/导出/远程同步选项

• 国际化增强
  - 新增50+本地化字符串
  - 服务器相关界面完全支持中英文
  - API端点描述支持多语言
  - 错误信息本地化

• 界面优化
  - 使用主题颜色替代硬编码颜色
  - 改进用户体验和视觉一致性
  - 添加服务器状态指示器

• 依赖更新
  - 添加 shelf 和 shelf_router 依赖
  - 支持HTTP服务器功能
• 添加 shelf ^1.4.2 - HTTP服务器框架
• 添加 shelf_router ^1.1.4 - 路由管理
• 更新 pubspec.lock 以固定依赖版本
• API路径优化
  - 将路径参数从 {fileId} 改为 {fileName} 提高语义清晰度
  - 更新所有相关的路由和处理函数
  - 保持API文档与实际实现一致

• 国际化修复
  - 移除重复的 select_all 字符串定义
  - 重新组织导出相关的本地化字符串
  - 确保所有本地化文件结构一致

• 代码一致性
  - 统一使用 fileName 作为参数名
  - 更新服务器设置页面的API文档显示
  - 保持前后端接口命名规范
## 新增功能
- 添加network_info_plus依赖,实现可靠的WiFi网络检测
- 新增QrCodeDialog独立组件,支持透明背景和居中显示
- 新增ServerStatusCard组件,完整的服务器状态管理

## 网络检测优化
- 使用network_info_plus库优先检测WiFi信息
- 结合传统NetworkInterface.list()作为补充
- 完整显示192.168.x.x等私有网络地址
- 根据IP地址类型使用不同颜色主题

## 界面增强
- 地址芯片支持二维码和复制功能
- 移除手动刷新功能,简化用户界面
- 优化视觉层次,提高用户体验

## 代码重构
- 提取独立的二维码对话框组件
- 提取独立的服务器状态卡片组件
- 简化ServerSettingsPage主文件逻辑
- 提高代码复用性和可维护性
- 添加network_info_plus ^6.1.4用于可靠的WiFi网络检测
- 添加qr_flutter ^4.1.0用于二维码生成和显示
- 更新pubspec.lock以包含新的传递依赖项

这些依赖项支持了服务器状态页面的网络接口检测和二维码功能
- 使用ListTile替代CheckboxListTile以获得更清晰的界面
- 优先显示hostFile.remark而不是文件名
- 添加点击整行切换选择功能
- 保持复选框和图标的视觉一致性
- 添加用户级和系统级服务配置文件
- 实现服务自动安装脚本
- 优化服务器功能和UI界面
- 更新Android构建配置和依赖项
- 重构服务器设置页面为BLoC架构提升状态管理
- 新增附近设备扫描和展示功能
- 优化响应式布局支持大屏幕设备
- 完善国际化支持添加新功能相关文案
- 组件化重构移动服务状态卡片到server/view目录
- 添加equatable ^2.0.5用于BLoC状态管理
- 添加url_launcher ^6.3.1用于外部链接跳转
- 更新相关平台插件依赖
- 修复服务器状态卡片参数匹配问题
- 添加启动和停止服务器的独立事件处理
- 实现主机文件选择对话框集成
- 完善服务器权限检查和文件访问控制
- 添加访问拒绝和主机文件选择的国际化字符串
- 更新服务器状态管理BLoC架构
- 重新设计服务器状态卡片界面,采用现代化设计风格
- 增强启动/停止按钮的视觉效果,使用绿色/红色突出显示
- 添加状态指示器动画效果和阴影
- 优化布局结构,增加端口信息显示
- 设置主机文件选择对话框默认全选所有文件
- 提升用户交互体验和界面美观度
- 修复HomeView中scaffold key重复创建导致的FocusScopeNode错误
- 使用postFrameCallback避免构建期间调用setState
- 添加服务器功能相关的国际化文案
- 完善访问控制和文件选择的用户提示
- 为主页面和简单主页面添加SafeArea包装,确保内容不被系统状态栏遮挡
- 优化抽屉导航的顶部padding设置,提升视觉效果
- 改进列表视图的padding配置,提供更好的用户体验
- 新增附近设备扫描和状态管理功能
- 实现设备在线检测和状态更新
- 优化主页抽屉导航中的设备选择界面
- 添加设备缓存机制和时间扩展工具
- 完善附近设备卡片的交互体验
- 重构设备展示界面,采用网格布局和卡片设计
- 优化设备状态指示器和离线状态显示
- 新增设备API缓存功能,提升离线体验
- 添加flutter_staggered_grid_view依赖支持
- 优化设备发现和缓存逻辑
- 升级Kotlin版本至1.8.10
- 添加flutter_staggered_grid_view依赖用于网格布局
- 更新相关构建配置
- 创建独立的NearbyDevicesStateData数据类
- 使用sealed类设计模式定义不同状态类型
- 重构Cubit以使用新的状态架构
- 提供更好的类型安全和状态管理
- 保持与HomeCubit一致的代码结构
- 更新BlocBuilder以使用新的NearbyDevicesState架构
- 保持设备选择和显示功能正常工作
- 适配sealed状态类的使用模式
- 在HomeCubit中添加loadRemoteHostFiles方法支持远程设备数据加载
- 优化设备API缓存,只保存fileName和remark字段
- 修复设备选择逻辑,避免重复加载相同设备数据
- 添加设备选择状态管理,支持本地/远程模式切换
- 改进缓存数据结构,提高性能和可维护性
重构 NearbyDevicesCubit 和相关组件,移除设备缓存加载和状态检查功能。优化设备扫描逻辑,添加后台服务支持。重构设备API访问方式,改为直接访问而非缓存。新增设备访问对话框,改进用户体验。添加多语言支持并优化UI显示。这些改动简化了代码结构,提高了性能,并改善了设备交互流程。
Webb-L added 26 commits July 20, 2025 20:30
- 在home_drawer.dart中实现host文件使用功能,替换注释掉的旧代码
- 添加使用失败时的SnackBar错误提示
- 在home_cubit.dart中完整实现useHost方法,包含文件写入、状态更新和错误处理
- 优化删除host文件时的逻辑处理,自动切换到system文件
- 统一代码格式,修复部分代码缩进问题
- 移除无用注释代码,提升代码可读性
- 修复AlertDialog中HomeCubit和HostCubit的Provider查找错误
- 在showDialog前预获取cubit引用,避免在对话框上下文中查找Provider
- 添加HostCubit.areFilesEqual方法支持文件比较功能
- 优化对话框中的异步操作和错误处理逻辑
- 实现文本编辑器与行号的滚动同步功能
- 修复文本选择范围越界问题,防止应用崩溃
- 优化横向滚动支持,提升长文本编辑体验
- 完善行号组件的滚动条样式
- 新增HostsDiffPage页面显示文件差异对比
- 添加HostsDiffViewer组件提供diff视觉化
- 在历史页面集成差异对比按钮
- 增加diff_match_patch依赖支持文本差异分析
- 完善国际化文本支持差异对比功能
- 添加ApiDocumentationDialog组件,支持展示设备API端点信息
- 优化AccessDeviceDialog,增加历史记录数量显示和导入功能
- 扩展DeviceApiCache,支持获取hosts文件历史内容
- 更新国际化文件,添加API文档相关翻译
- 支持自适应布局,宽屏显示网格布局
- 支持二维码生成、浏览器打开、URL复制等功能
- 为在线且开启共享的设备添加API文档查看按钮
- 使用eye图标提供直观的API文档访问入口
- 导入ApiDocumentationDialog组件引用
- 保持原有设备访问功能不变
- 优化HomeAppBar支持窄屏幕响应式布局,改善移动端体验
- 修复历史记录保存逻辑,使用原始内容而非当前内容
- 增加文本编辑器占位符提示和国际化支持
- 优化文本编辑器焦点处理和交互体验
- 设置默认语言为英文
- 完善历史记录和差异对比功能的国际化
- 移除设备缓存功能以简化附近设备扫描逻辑
- 修复nearby_devices_scanner中isOnline属性引用错误
- 优化文件差异对比和选择逻辑
- 添加HomeDelete状态类支持删除操作
- 改进文本模式下的文件保存功能
- 移除强制英文locale设置,使用系统默认语言
  - 将页面文件迁移到更合理的目录结构 (lib/home/view/)
  - 删除未使用的文件和组件以减少代码库体积
    - 移除 lib/services/background_service.dart
    - 移除 lib/server/index.dart 和 README.md
    - 移除多个已废弃的页面和组件文件
  - 重命名 utils 目录为 util 保持命名一致性
  - 增强用户体验功能
    - 添加检查更新和问题反馈菜单项
    - 实现主机链接点击打开功能
    - 改进服务器自动启动机制
  - 完善国际化支持,新增相关本地化字符串
  - 修复文本编辑器撤销操作的滚动位置问题
删除以下不再需要的文件:
- hosts-manager.service
- hosts-manager-user.service
- install-service.sh
- install-user-service.sh

这些文件原本用于安装系统服务和用户服务,但由于项目架构变更,不再需要这些安装脚本和服务定义文件。删除这些文件可以保持代码库的整洁,避免维护过时的代码。
修复撤回操作时文本编辑控制器未正确处理的问题。在host_cubit.dart中添加撤回可能导致问题的注释说明,在host_text.dart中重构控制器处理逻辑:
1. 销毁旧控制器并创建新控制器以避免状态不一致
2. 重新添加内容变更监听器
3. 使用LayoutBuilder和ConstrainedBox改进文本框布局约束
4. 设置expands: true使文本框填满可用空间

这些修改确保在撤回操作时文本内容能正确显示并保持功能正常。
更新了 Linux 桌面入口文件 hosts.desktop,添加了更详细的元数据信息:
- 新增 GenericName 和 Keywords 字段
- 更新 Comment 描述
- 调整 Categories 分类
- 添加 MimeType 和版本信息
- 新增两个桌面操作项:简单模式和直接打开 hosts 文件
- 更新图标引用名称
为项目添加各平台打包配置文件,包括:
- Linux平台:AppImage、DEB和RPM包的配置文件
- macOS平台:PKG安装包配置文件
- Windows平台:EXE安装程序和MSIX包的配置文件

配置文件包含应用元信息、图标路径、分类、关键词等必要信息,为后续自动化打包流程提供基础配置。各平台配置文件均使用YAML格式,保持一致的显示名称和基本描述信息。
- 添加Android发布签名配置
- 更新Android应用启动图标
- 更新iOS应用图标
- 更新macOS应用图标
- 版本号更新至1.8.0
- 添加 DMG 背景图片和 SVG 文件
- 添加 DMG 打包配置文件
- 简化 PKG 配置文件
- 用 GlobalSettings().filePath 替代 isSimple 标志位
- 统一 Web 和桌面版本的文件保存逻辑
- 改进文本编辑模式下的 Ctrl+S 保存功能
- 清理调试输出和不必要的注释代码
- 优化应用栏布局和交互逻辑
- 从 pubspec.yaml 移除 flutter_background 依赖
- 删除 main.dart 中的后台服务初始化逻辑
- 简化应用启动流程,提高启动速度
- 减少应用包体积
- 添加 flutter_keyboard_visibility 依赖用于键盘状态检测
- 在移动平台键盘展开时动态添加 TextField 顶部内边距
- 优化文本编辑器在键盘显示/隐藏时的用户体验
- 使用专门的键盘检测库替代 MediaQuery 方式
- 将 flutter_keyboard_visibility 替换为 flutter_keyboard_visibility_temp_fork
- 简化 ServerManager 中的 null 处理逻辑
- 移除 FileManager 中未使用的 exitCode 变量
- 清理 RowLineWidget 中的无用变量和计算
@Webb-L Webb-L merged commit 8d5a3c6 into master Jul 31, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant