|
@@ -182,7 +182,10 @@ ViewModel 经现有 Gateway/Repository 使用它,不访问 BookHelp、DAO 或
|
|
|
|
|
|
|
|
### 格式、变换与失败降级
|
|
### 格式、变换与失败降级
|
|
|
|
|
|
|
|
-- 灰度继续用已有渲染 ColorFilter,文件始终保存未应用展示变换的原图。
|
|
|
|
|
|
|
+- 灰度现在统一在最终渲染 ColorFilter 中处理(参考 Komikku 的容器绘制滤镜),
|
|
|
|
|
+ 不再对 Coil preview 单独做灰度 bitmap 变换;预览、原图瓦片、动画与整图回退使用相同矩阵。
|
|
|
|
|
+ 通道/透明度滤镜继续在灰度之后应用,EInk 仍优先走自己的二值化变换。
|
|
|
|
|
+ 内存缓存键升级到 v2,防止沿用旧版已经灰度变换的 preview。文件始终保存原图。
|
|
|
- EInk 首版使用明确的整图渲染分支:由 Coil 生成二值化 painter,配合现有缩放状态/手势,
|
|
- EInk 首版使用明确的整图渲染分支:由 Coil 生成二值化 painter,配合现有缩放状态/手势,
|
|
|
不把变换后的 preview 交给会读取未变换原图的自动瓦片路径。
|
|
不把变换后的 preview 交给会读取未变换原图的自动瓦片路径。
|
|
|
仅继续使用 `ZoomableAsyncImage(File)` 或设置 diskCachePolicy 不能关闭该区域解码路径。
|
|
仅继续使用 `ZoomableAsyncImage(File)` 或设置 diskCachePolicy 不能关闭该区域解码路径。
|
|
@@ -195,6 +198,8 @@ ViewModel 经现有 Gateway/Repository 使用它,不访问 BookHelp、DAO 或
|
|
|
也没有对应 CompositionLocal;不能假定直接调用它已经接入错误回退。
|
|
也没有对应 CompositionLocal;不能假定直接调用它已经接入错误回退。
|
|
|
现在在 `SubSamplingImageSource.decoder()` 返回的 factory/decoder 边界捕获初始化和瓦片异常,
|
|
现在在 `SubSamplingImageSource.decoder()` 返回的 factory/decoder 边界捕获初始化和瓦片异常,
|
|
|
发出一次请求 owner 的降级状态,保留预览直到 Coil 整图 painter 接管;取消照常传播。
|
|
发出一次请求 owner 的降级状态,保留预览直到 Coil 整图 painter 接管;取消照常传播。
|
|
|
|
|
+ 错误适配与在线文件租约独立:本地目录、CBZ 解压文件及 content URI 同样包装原 source,
|
|
|
|
|
+ 在线原图额外获取瓦片租约。无租约不再跳过错误恢复,原 source 的格式/URI 能力与关闭语义保留。
|
|
|
`ImageRegionDecoder` 在 0.19.0 虽处于 internal 包,声明为 public;没有复制库渲染代码,
|
|
`ImageRegionDecoder` 在 0.19.0 虽处于 internal 包,声明为 public;没有复制库渲染代码,
|
|
|
但升级依赖时必须复核此适配点。降级绑定当前请求 owner,重试建立新 owner 后允许再次区域解码;
|
|
但升级依赖时必须复核此适配点。降级绑定当前请求 owner,重试建立新 owner 后允许再次区域解码;
|
|
|
尚未实现跨请求的文件版本失败记忆。
|
|
尚未实现跨请求的文件版本失败记忆。
|
|
@@ -288,18 +293,23 @@ Windows Robolectric 的 API 35 ImageDecoder 文件 JNI 返回 "Only supported on
|
|
|
多个章节共享一张原图时追加引用;失败下载也保留已登记用途,但文件缺失/无效时绝不判定完成。
|
|
多个章节共享一张原图时追加引用;失败下载也保留已登记用途,但文件缺失/无效时绝不判定完成。
|
|
|
Manual/Batch 队列请求保留显式用途,ReadPreload 不降级已有用途;暂停、优先级与失败重试保留用途。
|
|
Manual/Batch 队列请求保留显式用途,ReadPreload 不降级已有用途;暂停、优先级与失败重试保留用途。
|
|
|
已有图片命中也会补登记索引,不因 `hasImageContent` 提前跳过升级;执行中的预加载收到显式请求,
|
|
已有图片命中也会补登记索引,不因 `hasImageContent` 提前跳过升级;执行中的预加载收到显式请求,
|
|
|
-完成回调会再次复核用途并补登记。正文与真实有效原图仍决定章节完成,索引不能代替文件。
|
|
|
|
|
|
|
+完成回调会再次复核用途并补登记。用途复核和完成提交与入队共用模型锁;
|
|
|
|
|
+仍在执行的同章再次请求保留在队列,范围游标经过执行中章节时转为待复核索引,
|
|
|
|
|
+执行中请求不算可启动章节,避免调度循环空转。正文与真实有效原图仍决定章节完成,索引不能代替文件。
|
|
|
在线预算与章节窗口均保护显式用途;整本缓存的主动清理仍可删除下载,读取租约继续保护活动文件。
|
|
在线预算与章节窗口均保护显式用途;整本缓存的主动清理仍可删除下载,读取租约继续保护活动文件。
|
|
|
索引损坏时原图仍受保护,完成判定为 false,可通过显式重试补齐引用。
|
|
索引损坏时原图仍受保护,完成判定为 false,可通过显式重试补齐引用。
|
|
|
这是原图→章节用途索引,尚非完整章节下载清单:稳定目录身份、源版本失效、下载取消后主动取消保留、
|
|
这是原图→章节用途索引,尚非完整章节下载清单:稳定目录身份、源版本失效、下载取消后主动取消保留、
|
|
|
逐章删除/共享引用回收与独立下载列表恢复留待后续;现有章节正文/数据库继续负责重建阅读页。
|
|
逐章删除/共享引用回收与独立下载列表恢复留待后续;现有章节正文/数据库继续负责重建阅读页。
|
|
|
|
|
|
|
|
-本轮验证:11 个相关测试类、96 项测试全部通过(包含 API 26/35 native graphics 文件链路测试),
|
|
|
|
|
-覆盖区域解码初始化/瓦片失败与取消、索引重启/损坏恢复/共享引用、显式用途升级不联网、
|
|
|
|
|
-保留文件不占在线预算、队列用途与既有阅读交互。实际执行 `:app:testAppDebugUnitTest`
|
|
|
|
|
|
|
+本轮验证:13 个相关测试类、104 项测试全部通过(包含 API 26/35 native graphics 文件链路测试),
|
|
|
|
|
+覆盖区域解码初始化/瓦片失败与取消、本地无在线租约 source 的降级/关闭、在线生产适配器的瓦片租约、
|
|
|
|
|
+灰度矩阵与通道滤镜组合/EInk 优先级、索引重启/损坏恢复/共享引用、显式用途升级不联网、
|
|
|
|
|
+保留文件不占在线预算、执行中 Single/Range 请求的保留与可启动判断、既有阅读交互。
|
|
|
|
|
+复用审查阶段的编译产物队列复现程序,执行中的同章显式请求现可在预加载完成后再次出队。实际执行 `:app:testAppDebugUnitTest`
|
|
|
(按上述测试类过滤)、`verifyConfigArchitecture`、`lintAppDebug`,并完成 Kotlin 编译与
|
|
(按上述测试类过滤)、`verifyConfigArchitecture`、`lintAppDebug`,并完成 Kotlin 编译与
|
|
|
`git diff --check`;lint 仍为原有 118 个警告、13 个提示,未修改 baseline。
|
|
`git diff --check`;lint 仍为原有 118 个警告、13 个提示,未修改 baseline。
|
|
|
-区域错误使用可控 decoder 注入验证;真机原生瓦片失败、回退后的缩放体验和完整断网重建仍未验收。
|
|
|
|
|
|
|
+区域错误使用可控 decoder 注入验证,灰度验证矩阵对原图像素的结果与滤镜顺序;
|
|
|
|
|
+真机原生瓦片/CBZ/content URI 失败、实际灰度绘制、回退后的缩放体验和完整断网重建仍未验收。
|
|
|
|
|
|
|
|
### D. 优化与真机验收
|
|
### D. 优化与真机验收
|
|
|
|
|
|