diff --git a/.readme/README-ar.md b/.readme/README-ar.md index 2f4f9d27..d9f88750 100644 --- a/.readme/README-ar.md +++ b/.readme/README-ar.md @@ -389,7 +389,7 @@ SDK Tools (أدوات SDK) (في النافذة اليمنى) يعتمد مشروع AutoJs6 على إصدار `JDK (مجموعة تطوير جافا)` بإصدار لا يقل عن `17`، ولكن يفضل الإصدار الذي لا يقل عن `19`. -اعتبارًا من 15 May 2025، الإصدار الأقصى المدعوم من JDK لمشروع AutoJs6 هو `24`. +اعتبارًا من 21 May 2025، الإصدار الأقصى المدعوم من JDK لمشروع AutoJs6 هو `24`. > ملاحظة: إذا كان نظام الكمبيوتر يحتوي على JDK والإصدار يفي بالمتطلبات المذكورة أعلاه، فيمكنك تخطي هذا القسم. diff --git a/.readme/README-en.md b/.readme/README-en.md index 7a63e705..47c41e31 100644 --- a/.readme/README-en.md +++ b/.readme/README-en.md @@ -389,7 +389,7 @@ Check `Show Package Details`, click NDK and CMake respectively to ensure the cor The `JDK (Java Development Kit)` version required for the AutoJs6 project should be at least `17`, but `19` or higher is recommended. -As of May 15, 2025, AutoJs6 supports up to version `24` of the JDK. +As of May 21, 2025, AutoJs6 supports up to version `24` of the JDK. > Note: If the JDK is already installed on the computer system and the version meets the above requirements, this section can be skipped. diff --git a/.readme/README-es.md b/.readme/README-es.md index 663236fb..67bf23e4 100644 --- a/.readme/README-es.md +++ b/.readme/README-es.md @@ -389,7 +389,7 @@ Marca `Show Package Details (Mostrar detalles del paquete)`, haz clic en NDK y C La versión mínima requerida del `JDK (Kit de Desarrollo de Java)` para el proyecto AutoJs6 es `17`, pero se recomienda usar una versión no inferior a `19`. -Hasta el 15 de May de 2025, AutoJs6 soporta hasta la versión `24` de JDK. +Hasta el 21 de May de 2025, AutoJs6 soporta hasta la versión `24` de JDK. > Nota: Si el sistema ya tiene instalado JDK y cumple con los requisitos anteriores, puedes omitir esta sección. diff --git a/.readme/README-fr.md b/.readme/README-fr.md index 6b4c8fc6..ace200e3 100644 --- a/.readme/README-fr.md +++ b/.readme/README-fr.md @@ -389,7 +389,7 @@ Cochez `Show Package Details (afficher les détails du package)`, puis cliquez r La version de JDK (Kit de développement Java) requise pour le projet AutoJs6 doit être au moins `17`, mais il est recommandé d'avoir au moins `19`. -À partir du 15 May 2025, AutoJs6 prend en charge la version maximale de JDK `24`. +À partir du 21 May 2025, AutoJs6 prend en charge la version maximale de JDK `24`. > Note : Si le JDK est déjà installé sur le système informatique et que la version répond aux exigences ci-dessus, vous pouvez ignorer cette section. diff --git a/.readme/README-ja.md b/.readme/README-ja.md index 5b10ea8d..242998df 100644 --- a/.readme/README-ja.md +++ b/.readme/README-ja.md @@ -389,7 +389,7 @@ SDK Tools (SDK ツール) (右側のウィンドウにあります) AutoJs6プロジェクトが依存する `JDK (Java開発キット)` のリリースバージョンは少なくとも `17` で, それ以下のバージョンは推奨されませんが, 最低でも `19` の使用を推奨します. -2025 年 5 月 15 日 現在, AutoJs6がサポートする最大のJDKバージョンは `24` です. +2025 年 5 月 21 日 現在, AutoJs6がサポートする最大のJDKバージョンは `24` です. > 注: コンピュータシステムに適切なバージョンのJDKがインストールされている場合, この節の内容をスキップできます. diff --git a/.readme/README-ko.md b/.readme/README-ko.md index a123fbe6..ec408c7f 100644 --- a/.readme/README-ko.md +++ b/.readme/README-ko.md @@ -389,7 +389,7 @@ SDK Tools (SDK 도구) (오른쪽 창에 위치) AutoJs6 프로젝트는 `JDK (Java 개발 도구 키트)` 버전이 `17` 이상이어야 하지만, `19` 이상을 권장합니다. -2025 년 5 월 15 일 기준으로, AutoJs6이 지원하는 최대 JDK 버전은 `24` 입니다. +2025 년 5 월 21 일 기준으로, AutoJs6이 지원하는 최대 JDK 버전은 `24` 입니다. > 메모: 시스템에 JDK가 설치되어 있고, 버전이 위의 요구 사항을 충족하는 경우, 이 섹션을 건너뛸 수 있습니다. diff --git a/.readme/README-ru.md b/.readme/README-ru.md index 0fae75dc..9251af01 100644 --- a/.readme/README-ru.md +++ b/.readme/README-ru.md @@ -389,7 +389,7 @@ SDK Tools (SDK Инструменты) (находится в правом ок Для проекта AutoJs6 требуется версия `JDK (Java Development Kit)` не ниже `17`, но рекомендуется не ниже `19`. -По состоянию на 15 May 2025 года AutoJs6 поддерживает JDK максимальной версии `24`. +По состоянию на 21 May 2025 года AutoJs6 поддерживает JDK максимальной версии `24`. > Примечание: Если на компьютере уже установлен JDK и версия соответствует указанным требованиям, этот раздел можно пропустить. diff --git a/.readme/README-zh-Hans.md b/.readme/README-zh-Hans.md index 8f2be452..135c612e 100644 --- a/.readme/README-zh-Hans.md +++ b/.readme/README-zh-Hans.md @@ -157,13 +157,15 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开 # v6.6.3 -###### 2025/05/14 +###### 2025/05/21 * `新增` 版本历史功能, 可查看发行版本历史更新记录 (多语言) 与统计数据 * `新增` timers.keepAlive 方法 (已全局化), 用于保持脚本活跃状态 * `新增` engines.on('start/stop/error', callback) 等事件监听方法, 用于监听脚本引擎全局事件 * `新增` images.detectMultiColors 方法, 用于多点颜色校验 _[`issue #374`](http://issues.autojs6.com/374)_ * `新增` images.matchFeatures/detectAndComputeFeatures 方法, 支持全分辨率找图 (Ref to [Auto.js Pro](https://g.pro.autojs.org/)) _[`issue #366`](http://issues.autojs6.com/366)_ +* `新增` images.compressToBytes 方法, 用于压缩图像并生成字节数组 +* `新增` images.downsample 方法, 用于像素降采样并生成新的 ImageWrapper * `修复` 主页文档标签显示在线文档时部分内容被系统导航栏遮挡的问题 * `修复` 部分设备代码编辑器空行显示方框字符的问题 * `修复` 主题色设置页面调色盘对话框可能无限叠加的问题 @@ -175,7 +177,10 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开 * `修复` 使用 JavaAdapter 时导致 ClassLoader 调用栈溢出的问题 _[`issue #376`](http://issues.autojs6.com/376)_ * `修复` console.setContentTextColor 方法导致日志字体颜色丢失默认值的问题 _[`issue #346`](http://issues.autojs6.com/346)_ * `修复` console.setContentBackgroundColor 方法无法接受颜色名称参数的问题 _[`issue #384`](http://issues.autojs6.com/384)_ +* `修复` images.compress 方法实现原理由像素降采样修正为编码质量变化 +* `修复` images.resize 方法无法正常使用的问题 * `修复` README.md 中部分语言日期格式不正确的问题 +* `修复` Gradle 构建脚本可能因获取到无效库档案文件长度而导致构建失败的问题 _[`issue #389`](http://issues.autojs6.com/389)_ * `优化` 布局分析支持控件隐藏 (by [TonyJiangWJ](https://github.com/TonyJiangWJ)) _[`pr #371`](http://pr.autojs6.com/371)_ _[`issue #355`](http://issues.autojs6.com/355)_ * `优化` 布局分析菜单添加渐变分隔线实现一定程度的功能分组 * `优化` 主题色扩充适配范围并支持更多控件类型 @@ -185,6 +190,8 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开 * `优化` 文件管理器浮动按钮展开后点击其他区域可自动隐藏 * `优化` 打包单文件时自动读取并勾选已安装应用的声明权限 _[`issue #362`](http://issues.autojs6.com/362)_ * `优化` 意图相关操作 (编辑/查看/安装/发送/播放等) 增加操作异常提示 +* `优化` ImageWrapper#saveTo 方法的路径参数支持相对路径 +* `优化` images.save 方法使用 quality 参数时支持 png 格式的文件体积压缩 _[`issue #367`](http://issues.autojs6.com/367)_ * `优化` 已忽略更新记录及客户端模式连接地址记录支持清空操作 * `优化` 版本更新信息支持多语言显示 (与当前显示语言同步) * `优化` 使用异步加载方式一定程度提升文件管理器列表滑动流畅性 @@ -335,7 +342,7 @@ SDK Tools (SDK 工具) (位于右侧窗口) AutoJs6 项目依赖的 `JDK (Java 开发工具包)` 发行版本不低于 `17`, 但建议不低于 `19`. -截至 2025 年 5 月 15 日, AutoJs6 可支持 JDK 最高版本为 `24`. +截至 2025 年 5 月 21 日, AutoJs6 可支持 JDK 最高版本为 `24`. > 注: 如果计算机系统已安装 JDK 且版本满足上述要求, 则可跳过此小节内容. diff --git a/.readme/README-zh-Hant-HK.md b/.readme/README-zh-Hant-HK.md index e03a9568..8bf2d321 100644 --- a/.readme/README-zh-Hant-HK.md +++ b/.readme/README-zh-Hant-HK.md @@ -389,7 +389,7 @@ SDK Tools (SDK 工具) (位於右側窗口) AutoJs6 項目依賴的 `JDK (Java 開發工具包)` 發行版本不低於 `17`, 但建議不低於 `19`. -截至 2025 年 5 月 15 日, AutoJs6 可支持 JDK 最高版本為 `24`. +截至 2025 年 5 月 21 日, AutoJs6 可支持 JDK 最高版本為 `24`. > 注: 如果計算機系統已安裝 JDK 且版本滿足上述要求, 則可跳過此小節內容. diff --git a/.readme/README-zh-Hant-TW.md b/.readme/README-zh-Hant-TW.md index 61df68c2..6901db70 100644 --- a/.readme/README-zh-Hant-TW.md +++ b/.readme/README-zh-Hant-TW.md @@ -389,7 +389,7 @@ SDK Tools (SDK 工具) (位於右側視窗) AutoJs6 專案依賴的 `JDK (Java 開發工具包)` 發行版本不低於 `17`, 但建議不低於 `19`. -截至 2025 年 5 月 15 日, AutoJs6 可支援 JDK 最高版本為 `24`. +截至 2025 年 5 月 21 日, AutoJs6 可支援 JDK 最高版本為 `24`. > 注: 如果計算機系統已安裝 JDK 且版本滿足上述要求, 則可跳過此小節內容. diff --git a/README.md b/README.md index 8f2be452..135c612e 100644 --- a/README.md +++ b/README.md @@ -157,13 +157,15 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开 # v6.6.3 -###### 2025/05/14 +###### 2025/05/21 * `新增` 版本历史功能, 可查看发行版本历史更新记录 (多语言) 与统计数据 * `新增` timers.keepAlive 方法 (已全局化), 用于保持脚本活跃状态 * `新增` engines.on('start/stop/error', callback) 等事件监听方法, 用于监听脚本引擎全局事件 * `新增` images.detectMultiColors 方法, 用于多点颜色校验 _[`issue #374`](http://issues.autojs6.com/374)_ * `新增` images.matchFeatures/detectAndComputeFeatures 方法, 支持全分辨率找图 (Ref to [Auto.js Pro](https://g.pro.autojs.org/)) _[`issue #366`](http://issues.autojs6.com/366)_ +* `新增` images.compressToBytes 方法, 用于压缩图像并生成字节数组 +* `新增` images.downsample 方法, 用于像素降采样并生成新的 ImageWrapper * `修复` 主页文档标签显示在线文档时部分内容被系统导航栏遮挡的问题 * `修复` 部分设备代码编辑器空行显示方框字符的问题 * `修复` 主题色设置页面调色盘对话框可能无限叠加的问题 @@ -175,7 +177,10 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开 * `修复` 使用 JavaAdapter 时导致 ClassLoader 调用栈溢出的问题 _[`issue #376`](http://issues.autojs6.com/376)_ * `修复` console.setContentTextColor 方法导致日志字体颜色丢失默认值的问题 _[`issue #346`](http://issues.autojs6.com/346)_ * `修复` console.setContentBackgroundColor 方法无法接受颜色名称参数的问题 _[`issue #384`](http://issues.autojs6.com/384)_ +* `修复` images.compress 方法实现原理由像素降采样修正为编码质量变化 +* `修复` images.resize 方法无法正常使用的问题 * `修复` README.md 中部分语言日期格式不正确的问题 +* `修复` Gradle 构建脚本可能因获取到无效库档案文件长度而导致构建失败的问题 _[`issue #389`](http://issues.autojs6.com/389)_ * `优化` 布局分析支持控件隐藏 (by [TonyJiangWJ](https://github.com/TonyJiangWJ)) _[`pr #371`](http://pr.autojs6.com/371)_ _[`issue #355`](http://issues.autojs6.com/355)_ * `优化` 布局分析菜单添加渐变分隔线实现一定程度的功能分组 * `优化` 主题色扩充适配范围并支持更多控件类型 @@ -185,6 +190,8 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开 * `优化` 文件管理器浮动按钮展开后点击其他区域可自动隐藏 * `优化` 打包单文件时自动读取并勾选已安装应用的声明权限 _[`issue #362`](http://issues.autojs6.com/362)_ * `优化` 意图相关操作 (编辑/查看/安装/发送/播放等) 增加操作异常提示 +* `优化` ImageWrapper#saveTo 方法的路径参数支持相对路径 +* `优化` images.save 方法使用 quality 参数时支持 png 格式的文件体积压缩 _[`issue #367`](http://issues.autojs6.com/367)_ * `优化` 已忽略更新记录及客户端模式连接地址记录支持清空操作 * `优化` 版本更新信息支持多语言显示 (与当前显示语言同步) * `优化` 使用异步加载方式一定程度提升文件管理器列表滑动流畅性 @@ -335,7 +342,7 @@ SDK Tools (SDK 工具) (位于右侧窗口) AutoJs6 项目依赖的 `JDK (Java 开发工具包)` 发行版本不低于 `17`, 但建议不低于 `19`. -截至 2025 年 5 月 15 日, AutoJs6 可支持 JDK 最高版本为 `24`. +截至 2025 年 5 月 21 日, AutoJs6 可支持 JDK 最高版本为 `24`. > 注: 如果计算机系统已安装 JDK 且版本满足上述要求, 则可跳过此小节内容. diff --git a/app/src/main/assets-app/doc/CHANGELOG-zh-Hans.md b/app/src/main/assets-app/doc/CHANGELOG-zh-Hans.md index d7697a66..c79c2477 100644 --- a/app/src/main/assets-app/doc/CHANGELOG-zh-Hans.md +++ b/app/src/main/assets-app/doc/CHANGELOG-zh-Hans.md @@ -6,13 +6,15 @@ # v6.6.3 -###### 2025/05/14 +###### 2025/05/21 * `新增` 版本历史功能, 可查看发行版本历史更新记录 (多语言) 与统计数据 * `新增` timers.keepAlive 方法 (已全局化), 用于保持脚本活跃状态 * `新增` engines.on('start/stop/error', callback) 等事件监听方法, 用于监听脚本引擎全局事件 * `新增` images.detectMultiColors 方法, 用于多点颜色校验 _[`issue #374`](http://issues.autojs6.com/374)_ * `新增` images.matchFeatures/detectAndComputeFeatures 方法, 支持全分辨率找图 (Ref to [Auto.js Pro](https://g.pro.autojs.org/)) _[`issue #366`](http://issues.autojs6.com/366)_ +* `新增` images.compressToBytes 方法, 用于压缩图像并生成字节数组 +* `新增` images.downsample 方法, 用于像素降采样并生成新的 ImageWrapper * `修复` 主页文档标签显示在线文档时部分内容被系统导航栏遮挡的问题 * `修复` 部分设备代码编辑器空行显示方框字符的问题 * `修复` 主题色设置页面调色盘对话框可能无限叠加的问题 @@ -24,7 +26,10 @@ * `修复` 使用 JavaAdapter 时导致 ClassLoader 调用栈溢出的问题 _[`issue #376`](http://issues.autojs6.com/376)_ * `修复` console.setContentTextColor 方法导致日志字体颜色丢失默认值的问题 _[`issue #346`](http://issues.autojs6.com/346)_ * `修复` console.setContentBackgroundColor 方法无法接受颜色名称参数的问题 _[`issue #384`](http://issues.autojs6.com/384)_ +* `修复` images.compress 方法实现原理由像素降采样修正为编码质量变化 +* `修复` images.resize 方法无法正常使用的问题 * `修复` README.md 中部分语言日期格式不正确的问题 +* `修复` Gradle 构建脚本可能因获取到无效库档案文件长度而导致构建失败的问题 _[`issue #389`](http://issues.autojs6.com/389)_ * `优化` 布局分析支持控件隐藏 (by [TonyJiangWJ](https://github.com/TonyJiangWJ)) _[`pr #371`](http://pr.autojs6.com/371)_ _[`issue #355`](http://issues.autojs6.com/355)_ * `优化` 布局分析菜单添加渐变分隔线实现一定程度的功能分组 * `优化` 主题色扩充适配范围并支持更多控件类型 @@ -34,12 +39,16 @@ * `优化` 文件管理器浮动按钮展开后点击其他区域可自动隐藏 * `优化` 打包单文件时自动读取并勾选已安装应用的声明权限 _[`issue #362`](http://issues.autojs6.com/362)_ * `优化` 意图相关操作 (编辑/查看/安装/发送/播放等) 增加操作异常提示 +* `优化` ImageWrapper#saveTo 方法的路径参数支持相对路径 +* `优化` images.save 方法使用 quality 参数时支持 png 格式的文件体积压缩 _[`issue #367`](http://issues.autojs6.com/367)_ * `优化` 已忽略更新记录及客户端模式连接地址记录支持清空操作 * `优化` 版本更新信息支持多语言显示 (与当前显示语言同步) * `优化` 使用异步加载方式一定程度提升文件管理器列表滑动流畅性 * `优化` Gradle 构建脚本提升版本自适应能力 _[`discussion #369`](http://discussions.autojs6.com/369)_ * `依赖` 本地化 Material Dialogs 版本 0.9.6.0 * `依赖` 本地化 Material Date Time Picker 版本 4.2.3 +* `依赖` 本地化 libimagequant 版本 2.17.0 +* `依赖` 本地化 libpng 版本 1.6.49 * `依赖` 附加 Jsoup 版本 1.19.1 * `依赖` 附加 Material Progressbar 版本 1.4.2 * `依赖` 附加 Flexmark Java HTML to Markdown 版本 0.64.8 diff --git a/app/src/main/assets-app/doc/CHANGELOG.md b/app/src/main/assets-app/doc/CHANGELOG.md index d7697a66..c79c2477 100644 --- a/app/src/main/assets-app/doc/CHANGELOG.md +++ b/app/src/main/assets-app/doc/CHANGELOG.md @@ -6,13 +6,15 @@ # v6.6.3 -###### 2025/05/14 +###### 2025/05/21 * `新增` 版本历史功能, 可查看发行版本历史更新记录 (多语言) 与统计数据 * `新增` timers.keepAlive 方法 (已全局化), 用于保持脚本活跃状态 * `新增` engines.on('start/stop/error', callback) 等事件监听方法, 用于监听脚本引擎全局事件 * `新增` images.detectMultiColors 方法, 用于多点颜色校验 _[`issue #374`](http://issues.autojs6.com/374)_ * `新增` images.matchFeatures/detectAndComputeFeatures 方法, 支持全分辨率找图 (Ref to [Auto.js Pro](https://g.pro.autojs.org/)) _[`issue #366`](http://issues.autojs6.com/366)_ +* `新增` images.compressToBytes 方法, 用于压缩图像并生成字节数组 +* `新增` images.downsample 方法, 用于像素降采样并生成新的 ImageWrapper * `修复` 主页文档标签显示在线文档时部分内容被系统导航栏遮挡的问题 * `修复` 部分设备代码编辑器空行显示方框字符的问题 * `修复` 主题色设置页面调色盘对话框可能无限叠加的问题 @@ -24,7 +26,10 @@ * `修复` 使用 JavaAdapter 时导致 ClassLoader 调用栈溢出的问题 _[`issue #376`](http://issues.autojs6.com/376)_ * `修复` console.setContentTextColor 方法导致日志字体颜色丢失默认值的问题 _[`issue #346`](http://issues.autojs6.com/346)_ * `修复` console.setContentBackgroundColor 方法无法接受颜色名称参数的问题 _[`issue #384`](http://issues.autojs6.com/384)_ +* `修复` images.compress 方法实现原理由像素降采样修正为编码质量变化 +* `修复` images.resize 方法无法正常使用的问题 * `修复` README.md 中部分语言日期格式不正确的问题 +* `修复` Gradle 构建脚本可能因获取到无效库档案文件长度而导致构建失败的问题 _[`issue #389`](http://issues.autojs6.com/389)_ * `优化` 布局分析支持控件隐藏 (by [TonyJiangWJ](https://github.com/TonyJiangWJ)) _[`pr #371`](http://pr.autojs6.com/371)_ _[`issue #355`](http://issues.autojs6.com/355)_ * `优化` 布局分析菜单添加渐变分隔线实现一定程度的功能分组 * `优化` 主题色扩充适配范围并支持更多控件类型 @@ -34,12 +39,16 @@ * `优化` 文件管理器浮动按钮展开后点击其他区域可自动隐藏 * `优化` 打包单文件时自动读取并勾选已安装应用的声明权限 _[`issue #362`](http://issues.autojs6.com/362)_ * `优化` 意图相关操作 (编辑/查看/安装/发送/播放等) 增加操作异常提示 +* `优化` ImageWrapper#saveTo 方法的路径参数支持相对路径 +* `优化` images.save 方法使用 quality 参数时支持 png 格式的文件体积压缩 _[`issue #367`](http://issues.autojs6.com/367)_ * `优化` 已忽略更新记录及客户端模式连接地址记录支持清空操作 * `优化` 版本更新信息支持多语言显示 (与当前显示语言同步) * `优化` 使用异步加载方式一定程度提升文件管理器列表滑动流畅性 * `优化` Gradle 构建脚本提升版本自适应能力 _[`discussion #369`](http://discussions.autojs6.com/369)_ * `依赖` 本地化 Material Dialogs 版本 0.9.6.0 * `依赖` 本地化 Material Date Time Picker 版本 4.2.3 +* `依赖` 本地化 libimagequant 版本 2.17.0 +* `依赖` 本地化 libpng 版本 1.6.49 * `依赖` 附加 Jsoup 版本 1.19.1 * `依赖` 附加 Material Progressbar 版本 1.4.2 * `依赖` 附加 Flexmark Java HTML to Markdown 版本 0.64.8 diff --git a/app/src/main/java/org/autojs/autojs/ui/settings/VersionHistoryAdapter.kt b/app/src/main/java/org/autojs/autojs/ui/settings/VersionHistoryAdapter.kt index 2fa0bd0e..d7530141 100644 --- a/app/src/main/java/org/autojs/autojs/ui/settings/VersionHistoryAdapter.kt +++ b/app/src/main/java/org/autojs/autojs/ui/settings/VersionHistoryAdapter.kt @@ -6,6 +6,9 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.TextView +import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import io.noties.markwon.Markwon import org.autojs.autojs.ui.settings.VersionHistoryAdapter.VersionHistoryViewHolder @@ -119,13 +122,17 @@ class VersionHistoryAdapter(private val context: Context, private val markwon: M private val tvDate = binding.tvDate private val tvLines = binding.tvLines + private val tvHintCount = binding.tvHintCount private val tvFeatureCount = binding.tvFeatureCount private val tvFixCount = binding.tvFixCount private val tvImprovementCount = binding.tvImprovementCount + private val tvDependencyCount = binding.tvDependencyCount + private val tvHintCountContainer = binding.tvHintCountContainer private val tvFeatureCountContainer = binding.tvFeatureCountContainer private val tvFixCountContainer = binding.tvFixCountContainer private val tvImprovementCountContainer = binding.tvImprovementCountContainer + private val tvDependencyCountContainer = binding.tvDependencyCountContainer private val changelogLabelHint = "`${context.getString(R.string.changelog_label_hint)}`" private val changelogLabelFeature = "`${context.getString(R.string.changelog_label_feature)}`" @@ -148,33 +155,26 @@ class VersionHistoryAdapter(private val context: Context, private val markwon: M visibility = if (item.expanded) View.VISIBLE else View.GONE } - when { - mCategoryFilter.contains(Category.FEATURE) -> { - tvFeatureCount.text = item.lines.count { it.contains(changelogLabelFeature) }.toString() - tvFeatureCountContainer.visibility = View.VISIBLE + Category.entries + .filter { category -> + val (count, label) = resolveCategoryView(category) + + val (tvCount, tvCountContainer) = count + when { + mCategoryFilter.contains(category) -> { + tvCount.text = item.lines.count { it.contains(label) }.toString() + true + } + else -> false + }.also { tvCountContainer.isVisible = it } } - else -> { - tvFeatureCountContainer.visibility = View.GONE + .sortedByDescending { it.priority } + .drop(3) + .forEach { + val (count, _) = resolveCategoryView(it) + val (_, tvCountContainer) = count + tvCountContainer.isVisible = false } - } - when { - mCategoryFilter.contains(Category.FIX) -> { - tvFixCount.text = item.lines.count { it.contains(changelogLabelFix) }.toString() - tvFixCountContainer.visibility = View.VISIBLE - } - else -> { - tvFixCountContainer.visibility = View.GONE - } - } - when { - mCategoryFilter.contains(Category.IMPROVEMENT) -> { - tvImprovementCount.text = item.lines.count { it.contains(changelogLabelImprovement) }.toString() - tvImprovementCountContainer.visibility = View.VISIBLE - } - else -> { - tvImprovementCountContainer.visibility = View.GONE - } - } itemView.setOnClickListener { item.expanded = !item.expanded @@ -182,6 +182,14 @@ class VersionHistoryAdapter(private val context: Context, private val markwon: M } } + private fun resolveCategoryView(category: Category): Pair, String> = when (category) { + Category.HINT -> Pair(tvHintCount to tvHintCountContainer, changelogLabelHint) + Category.FEATURE -> Pair(tvFeatureCount to tvFeatureCountContainer, changelogLabelFeature) + Category.FIX -> Pair(tvFixCount to tvFixCountContainer, changelogLabelFix) + Category.IMPROVEMENT -> Pair(tvImprovementCount to tvImprovementCountContainer, changelogLabelImprovement) + Category.DEPENDENCY -> Pair(tvDependencyCount to tvDependencyCountContainer, changelogLabelDependency) + } + private fun applyCategoryFilter(lines: List) = lines.filter { when { it.contains(changelogLabelHint) && !mCategoryFilter.contains(Category.HINT) -> false diff --git a/app/src/main/java/org/autojs/autojs/ui/settings/VersionHistoryRepository.kt b/app/src/main/java/org/autojs/autojs/ui/settings/VersionHistoryRepository.kt index 6072ade3..cb60b8b4 100644 --- a/app/src/main/java/org/autojs/autojs/ui/settings/VersionHistoryRepository.kt +++ b/app/src/main/java/org/autojs/autojs/ui/settings/VersionHistoryRepository.kt @@ -88,17 +88,16 @@ class VersionHistoryRepository { private val regexValidMarkdownVersion = Regex("""^#\s+v[\d.]+\S*""") - enum class Category(@StringRes val labelRes: Int) { - HINT(R.string.changelog_label_hint), - FEATURE(R.string.changelog_label_feature), - FIX(R.string.changelog_label_fix), - IMPROVEMENT(R.string.changelog_label_improvement), - DEPENDENCY(R.string.changelog_label_dependency); + enum class Category(@StringRes val labelRes: Int, val priority: Int) { + HINT(R.string.changelog_label_hint, -2), + FEATURE(R.string.changelog_label_feature, 3), + FIX(R.string.changelog_label_fix, 2), + IMPROVEMENT(R.string.changelog_label_improvement, 1), + DEPENDENCY(R.string.changelog_label_dependency, -1); } - /* 默认显示: 除 HINT 及 DEPENDENCY 以外的全部类别. */ val DEFAULT_FILTER: EnumSet = - EnumSet.complementOf(EnumSet.of(Category.HINT, Category.DEPENDENCY)) + EnumSet.of(Category.FEATURE, Category.FIX, Category.IMPROVEMENT) private fun String.toChangelogMarkdownFile(): String { return "CHANGELOG-$this.md" diff --git a/app/src/main/res/layout/item_version_history.xml b/app/src/main/res/layout/item_version_history.xml index 1107e095..e1f0b6a3 100644 --- a/app/src/main/res/layout/item_version_history.xml +++ b/app/src/main/res/layout/item_version_history.xml @@ -76,6 +76,41 @@ android:layout_gravity="center_vertical|end" android:gravity="end"> + + + + + + + + + + + + + + + + + + + + diff --git a/version.properties b/version.properties index a883cb0f..1d483a14 100644 --- a/version.properties +++ b/version.properties @@ -1,5 +1,5 @@ -#Tue May 20 22:30:54 CST 2025 -BUILD_TIME=1747751454685 +#Wed May 21 13:21:19 CST 2025 +BUILD_TIME=1747804879230 COMPILE_SDK_VERSION=35 IMAGE_QUANT_CMAKE_VERSION=3.22.1 IMAGE_QUANT_NDK_VERSION=26.1.10909125 @@ -19,6 +19,6 @@ RAPID_OCR_OPENCV_MOBILE_LABEL_VERSION=13 RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3 TARGET_SDK_VERSION=35 TARGET_SDK_VERSION_INRT=29 -VERSION_BUILD=3238 +VERSION_BUILD=3240 VERSION_NAME=6.6.3 Alpha5 VSCODE_EXT_REQUIRED_VERSION=1.0.8