阅读 Max(GEd520-辞晨)
阅读Max继承自阅读Sigma,在其基础上新增更多实用和强大功能。
最近版本
最新版8.2
版本说明
2026/08/02
- 修复书籍详情页 useWeb 简介渲染污染 showBrowser 页面显示的问题:两者共用 WebViewPool 的 GLOBAL 池导致复用污染(杀后台后池清空故正常)。新增 Scope.INLINE,BookInfoActivity useWeb 渲染改从 INLINE 池获取与 showBrowser 隔离,BackstageWebView 同步补全 INLINE 分支。
- 新增应用主题「导入应用主题设置」选项:三点菜单新增导入设置入口,勾选要导入的组件(主题/顶栏/底栏/封面图集)后持久化保存,后续导入自动套用,未勾选的跳过。同时修复导入后主题管理列表不显示——restoreThemeAsset 漏调 ThemeConfig.addConfig 注册主题,补齐注册逻辑。
- 优化气泡管理列表项排版,对齐应用主题三按键布局:单个「应用」按键重构为 buttonRow(textBox 信息区底部)含应用/编辑/更多三按键,bg_action_button 背景 + Space 分隔;整行点击与 tvMore 弹 showActions,长按进多选。同时修复 foreground 在 API 21-22 崩溃(加版本判断)。
- 优化气泡颜色渲染:普通颜色作用于边框、强调颜色作用于数字。默认 SVG 模板
${color}拆为${borderColor}/${textColor};内置气泡 emphasisColor 改为 normalColor 使边框数字同色,本地气泡默认边框灰数字红;渲染保留${color}兼容旧模板,cacheKey 同步含两颜色。 - 优化强制气泡渲染:移植参考版 ParagraphBubbleRenderer 增强,URL 支持 displayText 覆盖数字文本、displayColor 覆盖数字颜色;新增 replaceBubbleValue 用正则匹配
${name}/$name/{{name}}三种占位符格式并支持多别名(borderColor/color、textColor/displayColor、displayText/num),queryValue 参数名忽略大小写;保留边框普通色/数字强调色的分色逻辑,displayColor 只覆盖数字颜色不影响边框。 - 新增图片文件夹导入漫画:本地导入界面长按文件夹弹出「导入漫画」菜单,以文件夹名为书名、子文件夹为章节(无子文件夹则整文件夹为一章),图片按文件名自然排序生成
<img>正文。ImageFolderBook 解析器支持 content:// 和 file:// URI,ImageProvider 通过 ImageFolderBook.getImage 加载本地图片流。 - 修复本地图片书从书架或详情页重新进入时变回文本模式:Fragment.startActivityForBook 和 BookInfoActivity 的路由判断含
!book.isLocal限制,本地图片书被排除出 ReadMangaActivity;移除该限制使三处入口(Context/Fragment/BookInfoActivity)统一为book.isImage && AppConfig.showMangaUi。
2026/08/01
- 修复播放界面通过自定义按钮回调跳转后再播放新视频,旧视频仍在继续播放的问题:VideoPlayerActivity 启动模式由 singleTask 改为 standard,新实例创建时自动 finish 旧实例并释放其播放器;新增 startNewSession 方法在启动新视频前停止旧播放、重置状态;onDestroy 在被替换时跳过操作 VideoPlay 单例(避免影响新实例),onResume 新会话启动时跳过恢复旧视频。返回栈支持逐级返回,不管跳转多少次按返回键都能回到上一个界面。
- 修复视频播放通知标题显示对象引用而非视频标题的问题:字符串插值
$VideoPlay.videoTitle实际插值的是 VideoPlay 对象,.videoTitle变成字面文本,改为${VideoPlay.videoTitle ?: ""}。 - 修复 ExoPlayer 并发请求时 HTTP 请求头全局串改竞态:resolvingDataSource 原先通过
okhttpDataFactory.setDefaultRequestProperties全局修改共享工厂的请求头,多请求并发时 headers 相互覆盖;改为使用DataSpec.withRequestHeaders将请求头绑定到每个请求,彻底消除竞态。 - 修复 VideoPlay.isLoading 时序错误导致 releaseAllVideos 状态重置失效:原代码在 startPlay 末尾同步设置
isLoading = false,但加载协程异步运行尚未完成;且 singleUrl/rss 两条路径有 return 永远不会执行到该行。改为在每个协程的成功/错误回调中设置。 - 修复切换视频时旧实例 onDestroy 触发 releaseAllVideos 误重新实例播放器的问题:旧 Activity 被新实例替换时,playerView.release() → releaseVideos() → releaseAllVideos() 会操作已指向新实例的 videoManager,导致新实例的播放器被释放、加载协程被取消。新增 skipReleaseAllVideos 标志,被替换时设置该标志使 releaseAllVideos 直接返回,仅由 GSY 框架释放旧实例自身的 surface 资源。
- 修复 saveRead 自动获取进度时未实际播放(pos<=0)仍保存进度覆盖有效记录的问题:自动模式(参数为 null)下 pos<=0 跳过保存,显式传 0(切集重置)仍正常保存。
- 修复弹幕 FileInputStream 泄漏:createParser 中 FileInputStream 传给 loader 后永不关闭,改为 readBytes 读入内存后用 ByteArrayInputStream 交给 loader,文件流即时关闭。
- 修复切换章节后弹幕仍显示旧内容、新解析器无法激活的问题:initDanmaku 切集时未释放旧弹幕实例,DanmakuView.isPrepared 仍为 true 导致 onPrepareDanmaku 中的 prepare 调用被跳过;新增 initDanmaku 开头先 release 旧弹幕并清空 mParser。
- 修复 BiliDanmukuParser 安全与健壮性问题:新增 XXE 防护(禁用 DTD 声明和外部实体解析);SAX characters 多次调用导致文本截断,改用 StringBuilder 累积后在 endElement 统一处理;单条弹幕属性解析或特殊弹幕处理异常时跳过该条不影响整体解析;删除 SAX 已解码的冗余 XML 实体二次解码;修复空文本弹幕被错误添加到结果集的问题。
- 修复 ExoPlayer 重建前旧实例未释放导致内存泄漏:Exo2MediaPlayer 创建新 ExoPlayer 前先 release 旧实例;ExoPlayerManager 初始化失败时不再误调 initSuccess,Surface/SurfaceControl 释放顺序修正为先 VideoSurface 后 SurfaceControl。
- 修复 InputStreamDataSource skip 不准确导致 seek 偏移:实现 skipFully 循环确保跳过完整字节数,异常时正确关闭流,始终回调 bytesTransferred。
- 修复 ExoPlayerHelper 窗口时长硬编码 3000ms 的问题:改为 C.TIME_UNSET 让 ExoPlayer 自动计算;CacheDataSource 设置 FLAG_IGNORE_CACHE_ON_ERROR 避免缓存错误时中断播放。
- 修复 VideoPlayService Android 14 前台服务崩溃:MediaSession 初始化移至 super.onCreate 之前,确保 startForeground 时已有活跃 session;修复 null intent 未 stopSelf 的问题;修正 onDestroy 资源释放顺序。
- 修复 ChoiceEpisodeDialog / ChoiceSpeedDialog 回调未设置时 NPE 崩溃:
!!改为?.空安全调用。 - 修复 ChapterAdapter 越界崩溃:添加 NO_POSITION 守卫,position 超出 chapters 范围时不绑定数据。
- 修复全屏模式选集列表背景过白遮挡文字的问题:card_bg_water 颜色值 alpha 从 F2/E6(95%/90%几乎不透明)改为 69(41%半透明),card_border_water 对应调整,使对话框深色底色透过卡片背景,白色文字清晰可读。
2026/07/31
- 修复书籍缓存选择界面底部「保存选择/导出选中」按钮被系统导航键遮挡的问题:edge-to-edge 模式下给 bottomBar 补上 navigationBarsPadding,按钮不再沉到导航栏下方。
2026/07/30
- 内置 CryptoJS 加解密库(参考 legadoT):规则与 JS 源中可直接使用
CryptoJS,无需在 jsLib 重复引入;支持 MD5/SHA1/SHA256/SHA512/SHA3、HmacMD5/HmacSHA1/HmacSHA256/HmacSHA512、AES/DES/TripleDES/RC4/Rabbit/Blowfish、PBKDF2,以及 enc/mode/pad 编码与分组模式。无 jsLib 的 JSON 书源规则自动回退到 CryptoJS 作用域。 - 修复书架阅读进度开关关闭时间距异常:列表项 tv_last 的 goneMarginBottom 由 8dp 改回 4dp,与原版一致,关闭开关时书架布局不再因进度条控件而偏移。
- 书架新增显示阅读进度功能(参考 legadoT 实现):列表布局在书籍项底部显示进度条与百分比,网格布局在封面底部叠加进度条;书架配置对话框新增「显示阅读进度」开关,默认关闭,进度条使用主题强调色支持换肤。
- 修复订阅源长按保存图片未携带订阅源请求头的问题:保存网页图片时改为带上当前订阅源的 headerMap,避免需要请求头才能访问的图片下载失败。
- 修复网页类型订阅源误应用静音播放设置的问题:WebView 内 h5 video/audio 的静音处理改为仅对视频类型(type==2)订阅源生效,网页类型(type==0)不再受静音播放开关控制。
- 修复视频播放切换章节后静音状态不立即生效的问题:创建新播放器后立即应用当前静音设置,并重写 setNeedMute 使其立即作用到播放器,静音开关切换后无需重新进入即可生效。
- 优化气泡管理的导出与分享入口:条目菜单从「应用/编辑/导出/文件分享/直链分享/删除」精简为「应用/编辑/导出/删除」,点「导出」弹出二级菜单,统一提供「导出到文件」(系统文件保存选择器)、「文件分享」(系统分享面板分享 zip)、「直链分享」(上传后分享下载链接)三项,操作层级更清晰。