Repository navigation
v11.5
v11.5 摘要
批量 / 扫描导入 — 导入向导第一步新增「批量扫描导入(多选)」:选一个目录(例如 Download),用 SAF 扫出候选——顶层带 .exe / .rpy / .rpyc / .xp3 / .rpa / .ypf / .wolf / .rgssad / .nsa 之一,或是 Ren'Py 的 game/ 目录;套娃目录只下探一层,跳过隐藏目录与运行时目录。勾选后串行导入,每条独立汇报「等待 / 复制中 / 导入中 / 已导入 / 失败」,失败项复用单条导入的回滚(删已建容器根目录 + 清暂存)。批量不自动拉起内置引擎,导完统一回游戏库自己点。
分类过滤由「单选」升级为「三维组合」 — 引擎 + 品类 + 标签可同时生效(AND),同一维度再点一次取消;筛空时空态文案改为「没有匹配的游戏」。「继续游玩」改为按最后启动时间倒序且只收真启动过的(lastPlayedAt > 0)——此前是「列表前 3 个」,名不副实;没玩过任何游戏时整段隐藏。
封面(提取修复 + 用户自定义) — ①BitmapFactory 解不了 PE 资源里的原始 DIB,所以卡片封面一直是占位图;新增 IconCodec 兜底(补 14 字节 BITMAPFILEHEADER、biHeight 减半剥掉 AND 掩码层、按 8bpp 调色板算偏移),组内候选按字节数降序逐个重试——真机上那款 Unity 游戏的 exe 图标首次正常显示。②详情页「维护 → 封面」可从相册选图或恢复自动,优先级 自定义 > 目录图 > exe 图标;选图先落 .tmp 并实际解码一次,解不开的不落盘。③修「换完封面回列表仍显示占位图」:解码完成前同一位置可能已被重绑到另一个 View,旧逻辑只贴给回调持有者;现在解码完成后让列表按缓存位图重画一次。
UI 修正(真机实测出来的) — 多选条加「品类 / 标签」后,六个动作把「已选 N 项」挤成 0 宽、「完成」被截断:标签简化为「删除 / 移除」、收紧边距、计数给最小宽度,全部回到一行内。「彻底删除 / 仅移除」确认弹窗从只报数量改为列出游戏名,并写明原生游戏的收纳副本同样会被删(真机复验时因只报数量误删过一批,当场从仍在的源目录重新导入恢复)。
测试与门禁 — JVM 回归 69 例全绿:DetectTest 21 + LanguageDetectorTest 15 + FilterTest 33(含 IconCodec 6 例)。gameId 派生与避碰、标签规范化(去空白 / 截断 12 字 / 换行)、三维过滤判定、DIB→BMP 边界这些纯逻辑都从 UI 里抽到 GalgameIds / GalgameFilter / IconCodec,界面与测试共用同一实现。ci/stubs 类型门禁三步(stubs → com.winlator.galgame 全树 → 热点入口清单)与 rebase-guard、Secret Scan 通过;零改动铁律未被触碰。
真机验收 — Realme RMX5010 / Adreno 830 / Android 16,release 包 versionName 11.5(versionCode 36):隔离目录里 Unity / Ren'Py / 套娃三个候选全部被扫出并导入,非游戏目录不入候选;再用 750MB 真实游戏走单候选路径(复制 → 检测 UNITY → 导入 → 启动);三维组合过滤逐维核对;封面提取与「详情页换封面 → 回列表」重绑核对(用临时 logcat 证实 bind/post 的 tagMatch,随后移除日志);多选条一行内显示与删除确认列名核对。未覆盖:批量导入中途杀进程的续传(TD-19 同源)未测;自定义封面未测超大图的降采样表现;引擎 chips 只在多于一种引擎时出现,单库环境靠注入第二条索引条目验证后已清理。
已知限制 — 走 DirectShow 的引擎(SystemNNN / YU-RIS 等)过场动画仍黑屏(TD-09,已坐实到 Wine 内建 quartz 的消息级死锁,现收窄为「自建 wine-9.2-custom 后 A/B」,本机无 WSL/Docker 未执行);AdvHD 仍未可玩(TD-17,改 wined3d 后引擎窗口能渲染,点 OK 自报 Direct3D Initialize failed (6))。本轮登记且仍在的债:TD-18(详情页「改用 Wine 容器运行」失败不回滚)、TD-19(原生收纳半拷贝被当成品)、TD-22(点卡片在主线程深扫目录)、TD-23(日文标题被弱信号误判为 zh_CN)、TD-25(显示标题只存在索引里)。逐条见 docs/tech-debt-register.md。
升级说明 — 覆盖安装即可,自有索引向后兼容:旧索引缺 genre / tags / cover 字段一律按「未设置」处理,不需要重新导入。安装 11.5 后首次进详情页/刷新列表会重新尝试 exe 图标提取,之前显示占位图的卡片应直接出图。
逐条变更见 CHANGELOG.md 的 [11.5] 段。下面的自动生成列表只覆盖经 PR 合并的条目。
What's Changed
- feat:批量/扫描导入 + 多选条与删除确认修正 by @ReSerendipity in #60
- feat:继续游玩真排序 + 分类三维组合 + 分类逻辑 JVM 回归 by @ReSerendipity in #61
- feat:自定义封面 + 修 exe 图标提取(DIB 兜底) by @ReSerendipity in #62
- chore(release):版本位升到 11.5(未打 tag) by @ReSerendipity in #63
Full Changelog: v11.4...v11.5