Skip to content

ZenFile_v1.1.23

Choose a tag to compare

@l930203811 l930203811 released this 25 Jul 16:15
· 67 commits to main since this release

🚀 v1.1.23更新内容

✨ 新增功能

  • 应用管理:点击应用弹窗新增「复制包名」选项,可一键复制应用包名。
  • 路径栏:长按路径栏进入编辑模式,支持输入并跳转到指定路径。

🔧 优化

  • 分类媒体浏览(图片、视频、音频、截图)改为递归文件系统扫描,不再依赖系统级媒体库索引(MediaStore)。类别识别更精准、稳定——文件移动或重命名后不再从分类中消失。扫描逻辑现已与 Web 共享页统一。
  • 视频与音频缩略图改为原生生成(通过 MediaMetadataRetriever),不再依赖系统媒体缩略图。
  • 回收站管理现已统一:启用开关与自动删除时长设置从「设置」迁移至「回收站」页面(抽屉 → 本地 → 回收站进入),开关与回收内容在同一处管理,更方便。

🐛 问题修复

  • 修复全局搜索无法检索 data 目录下文件的问题。
  • 修复应用管理弹窗中「卸载应用」按钮在部分机型上溢出屏幕底部、难以点击的问题。
  • 修复浏览远程目录时返回本地空目录的问题。
  • 修复列表视图下视频缩略图不显示的问题(网格视图原本已正常显示)。
  • 修复分类页长按进入多选模式后,顶部「全选」按钮无法全选的问题。
  • 优化分类页选中高亮效果:选中项现在显示清晰的主色边框与浅色底色,不再只是角落的小勾。
  • 修复清除应用数据/缓存后启动闪退的问题(卡在语言选择页)。此场景下系统可能误报「所有文件管理」已授权、但实际访问被拒(权限状态不一致);现已在授予访问前用真实目录枚举探测确认权限。
  • 修复备份较大 APK 时后台已成功但无完成弹窗的问题。进度框现使用根导航的 Overlay context 且不可关闭,备份完成时必能弹出成功对话框。
  • 修复视频播放器外挂字幕大小和位置调整不生效的问题。外挂字幕现改用基于解析后 SRT/ASS 时间轴的 Flutter 浮层渲染,字号与位置滑块对所有字幕格式都能稳定生效。
  • 优化在线歌词搜索:现在会列出候选歌曲供手动选择,避免在歌名相同、歌手不同的情况下误匹配(此前会自动匹配首个结果)。
  • 修复 FTP 共享后其他客户端连接成功却显示空目录的问题。被动模式(PASV)响应此前返回的是服务端 anyIPv4 地址(0.0.0.0),远程客户端无法回连该地址;现改为返回具体可达的局域网地址(同设备客户端返回 127.0.0.1),目录列表得以正确送达。

⚠️ 已知问题(预计下个版本修复)

  • 目前仅 WebDAV 客户端支持媒体文件流式播放,其他客户端暂不支持。

🚀 What's New in v1.1.23

✨ New Features

  • App Management: Added a 'Copy Package Name' option in the app popup menu, allowing one-tap copy of the app's package name.
  • Path bar: Long-press the path bar to enter edit mode, allowing you to input and navigate to a specified path.

🔧 Optimizations

  • Category media browsing (images, videos, audio, screenshots) now uses recursive filesystem scanning instead of system-level media library indexing (MediaStore). Category recognition is now more accurate and stable — files that are moved or renamed no longer disappear from their category. The scanning logic is unified with the Web Sharing page.
  • Video and audio thumbnails are now generated natively (via MediaMetadataRetriever) instead of relying on system media thumbnails.
  • Recycle Bin management is now unified: the enable switch and auto-delete duration setting were moved out of Settings into the Recycle Bin page (opened from Drawer → Local → Recycle Bin), so the toggle and the bin contents are managed in one place.

🐛 Bug Fixes

  • Fixed the issue where the global search could not find files in the data directory.
  • Fixed the issue where the 'Uninstall' button in the App Management popup overflowed the bottom of the screen on some devices, making it hard to tap.
  • Fixed an issue where browsing a remote directory would return an empty local directory.
  • Fixed missing video thumbnails in list view (thumbnails already worked in grid view).
  • Fixed the "Select All" button failing to select all items after long-pressing to enter selection mode on category pages.
  • Improved selection highlighting on category pages: selected items now show a clear colored border and tinted background instead of only a small corner checkmark.
  • Fixed an issue where the app would crash on launch (at the language selection page) after clearing app data/cache. The system could report the all-files permission as granted while actual storage access was denied (permission state inconsistency); permission is now verified with a real directory probe before granting access.
  • Fixed an issue where backing up a large APK succeeded in the background but showed no completion dialog. The progress dialog now uses the root navigator's overlay context and is non-dismissible, so the success dialog always appears when the backup finishes.
  • Fixed external subtitle size and position not taking effect. External subtitles are now rendered via a Flutter overlay driven by parsed SRT/ASS cues, so the size and position sliders work reliably for all subtitle formats.
  • Improved online lyrics search: it now lists candidate songs so you can manually pick the correct one, avoiding wrong matches when songs share the same title but have different artists (previously it auto-matched the first result).
  • Fixed FTP sharing showing an empty directory to other clients after a successful connection. The PASV passive-mode response previously returned the server's anyIPv4 address (0.0.0.0), which a remote client cannot connect back to; it now returns a concrete, reachable LAN address (or loopback for same-device clients), so the directory listing is delivered correctly.

⚠️ Known Issues (to be fixed in the next version)

  • Currently, only the WebDAV client supports media file streaming; other clients do not yet support this feature.