Skip to content

refactor: 按注释规则收短 fork 注释,把上游文件里的 fork 逻辑挪进自有类 - #176

Merged
HicirTech merged 18 commits into
mainfrom
Refactor--code-standard
Oct 3, 2026
Merged

HicirTech merged 18 commits into
mainfrom
Refactor--code-standard

Conversation

@HicirTech

Copy link
Copy Markdown
Owner
  • fork 代码的注释按「代码自己说明,注释只留一句为什么」收短,删掉分隔线和重复说明:fork 主代码 64 个文件、fork 测试 50 个、上游文件里我们加的注释 31 个;这三个提交只改注释,逐文件比对过代码不变
  • 还原之前被顺手「整理」掉的上游代码:Settings 的抽屉头图块、EhApplication.update()(只去掉调用,fix: 阅读器新手引导 overlay 每次启动都重新弹出(versionCode 重置引入的回归) #33 的修复不变)、SpiderQueen 的两行注释、GalleryHolder 的 import、FavoritesScene 的原写法
  • 上游文件里的钩子尽量改成纯插入:批量操作和下载列表多选排除 SMB 行改用提前返回,不再给上游代码套一层缩进;删掉三处死代码
  • SMB / 网络存储设置整块从上游 Settings.java 挪到新类 NetworkStorageSettings;并发设置进 SmbConcurrency,通知权限标记进 NotificationPermission,库存排序进 LocalInventoryScene,旧开关迁移进 PowerDownloadSettings。key 字符串不变,不需要迁移;Settings.java 只剩两行调用和一处可见性改动
  • MainActivity 的 edge-to-edge 处理挪进 EdgeToEdgeInsets,抽屉「SMB Library」项交给 LocalInventoryScene.updateDrawerItem
  • 详情页「下载到哪」对话框挪进 DownloadTargetDialog,选项文字复用 PowerDownloadTarget.label
  • 共享库上阅读进度文件的读写挪进 RemoteSpiderInfo,SpiderQueen 里的调用都插在原样保留的上游代码块之后;jcifs 主线程保护移到 SmbSpiderStorage;SpiderDen.contain() 恢复上游那一行
  • 阅读器刷新页后回传共享库挪进 SharePageRepair;读 SMB 进度文件头统一用 SmbGalleryFiles.readSpiderInfoHeader,SmbGalleryLifecycle 也改用它
  • 下载列表 SMB 行的判断、长按菜单、全选后取消勾选挪进 SmbDownloadsDelegate,FAB 让出分页条的位置挪进 FabPaginationClearance
  • 阅读器的 Power Download(页面规则、音量键、长按菜单项)挪进 ReaderPowerDownload,音量键翻页的互斥确认挪进 VolumeKeyModeDialog
  • CommonOperations.startDownloadWithoutAsking 改为 PowerDownloader 的私有方法,CommonOperations 与上游一致;原来的 4 个测试并入 PowerDownloaderTest
  • 删掉 ContentLayout.replaceAt,库存行替换改用上游已有的 getData();下载适配器里两次行绑定调用合成一次;删掉 fork 文件里没用的 import
  • 上游 Java/Kotlin 文件里的 fork 改动从 +1233/-410 行(40 个文件)降到 +510/-354(39 个文件)。行为不变,只有两处例外:SmbGalleryLifecycle 读页数时只读文件头并核对 gid;getSmbClientId 不再吞掉读取 ANDROID_ID 时的异常

验证:LXC 上 CI 同款构建通过,单测 406 个 0 失败,androidTest 编译通过,release 构建的 lintVital 通过;18 个提交逐个能编译(拆分出的提交单独编译过,其余与跑过全量测试的版本相同或只差注释)。平板(SM-X926B,Android 16)上装了本分支构建(保留数据):已有设置全部读对(抽屉「SMB Library」、网络存储页、Power Download 页、库存排序);SmbWorkflowTest 6 个、ImageDecodeTest 1 个全部通过;手工走过详情页「下载到哪」对话框、共享库画廊进阅读器(页面从共享库加载,主线程保护生效,阅读进度写回且不变)、长按菜单的「下载到手机」、已下载本子上的菜单项和音量上键(提示已下载,不改音量)、两处音量键翻页互斥确认、下载列表多选和全选。全程没有崩溃,没有任何下载写进共享库,测试前后 16 个相关设置逐项一致。

未验证:下载列表里其他设备的 SMB 任务行(共享库上目前没有这类任务);工作线程从共享库读阅读进度(这条流程主线程会先用本地缓存,硬触发会改掉真实库里的阅读进度),只有单测;会写共享库的路径(刷新页回传、库存重新同步、对话框里真正开始下载)没在平板上点;旧开关迁移(平板上已没有旧 key)只有单测;SmbReadWorkflowTest 要 NAS 凭据,没跑。

@HicirTech
HicirTech merged commit 88af5eb into main Oct 3, 2026
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