6.7.0 - Alpha15 - Fine tuning
This commit is contained in:
@@ -4,6 +4,7 @@
|
|||||||
"released_date": "2026/01/17",
|
"released_date": "2026/01/17",
|
||||||
"feature": [
|
"feature": [
|
||||||
"插件中心功能, 支持插件的安装/卸载/更新等操作 (入口: 主页抽屉按钮/主页标签页)",
|
"插件中心功能, 支持插件的安装/卸载/更新等操作 (入口: 主页抽屉按钮/主页标签页)",
|
||||||
|
"Paddle OCR (PP-OCRv5) 插件, 用于光学字符识别",
|
||||||
"cvt 模块, 用于数据单位转换 (参阅 项目文档 > [单位转换](https://docs.autojs6.com/#/cvt))",
|
"cvt 模块, 用于数据单位转换 (参阅 项目文档 > [单位转换](https://docs.autojs6.com/#/cvt))",
|
||||||
"fmt 模块, 用于数据格式化 (参阅 项目文档 > [格式化](https://docs.autojs6.com/#/fmt))",
|
"fmt 模块, 用于数据格式化 (参阅 项目文档 > [格式化](https://docs.autojs6.com/#/fmt))",
|
||||||
"zip 模块, 用于文件压缩与解压缩操作 (Ref to [Auto.js Pro](https://g.pro.autojs.org/)) (参阅 项目文档 > [Zip](https://docs.autojs6.com/#/zip))",
|
"zip 模块, 用于文件压缩与解压缩操作 (Ref to [Auto.js Pro](https://g.pro.autojs.org/)) (参阅 项目文档 > [Zip](https://docs.autojs6.com/#/zip))",
|
||||||
@@ -102,6 +103,7 @@
|
|||||||
"构建工具启用 isCleanup[Paddle/Rapid]Ocr 配置选项时无法正常完成 Rebuild Project 任务的问题"
|
"构建工具启用 isCleanup[Paddle/Rapid]Ocr 配置选项时无法正常完成 Rebuild Project 任务的问题"
|
||||||
],
|
],
|
||||||
"improvement": [
|
"improvement": [
|
||||||
|
"插件化 Paddle OCR (PP-OCRv3) 相关功能 _[`issue #334`](http://issues.autojs6.com/334)_ _[`issue #331`](http://issues.autojs6.com/331)_",
|
||||||
"runtime.loadJar 方法增强兼容性 (by [LYS86](https://github.com/LYS86)) _[`pr #475`](http://pr.autojs6.com/475)_",
|
"runtime.loadJar 方法增强兼容性 (by [LYS86](https://github.com/LYS86)) _[`pr #475`](http://pr.autojs6.com/475)_",
|
||||||
"ui.getStatusBarHeight 方法/statusBarHeight 属性 (getter) 增强一定程度的兼容性",
|
"ui.getStatusBarHeight 方法/statusBarHeight 属性 (getter) 增强一定程度的兼容性",
|
||||||
"console.log 等方法打印全局对象 (images, app, ocr 等) 时支持显示详细信息",
|
"console.log 等方法打印全局对象 (images, app, ocr 等) 时支持显示详细信息",
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
"android_studio_latest_recommended_file_name_of_tar": "android-studio-2025.2.3.9-linux.tar.gz",
|
"android_studio_latest_recommended_file_name_of_tar": "android-studio-2025.2.3.9-linux.tar.gz",
|
||||||
"android_studio_latest_recommended_download_address_of_tar": "https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.2.3.9/android-studio-2025.2.3.9-linux.tar.gz",
|
"android_studio_latest_recommended_download_address_of_tar": "https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.2.3.9/android-studio-2025.2.3.9-linux.tar.gz",
|
||||||
"android_studio_latest_recommended_file_size_of_tar": "1.39 GiB",
|
"android_studio_latest_recommended_file_size_of_tar": "1.39 GiB",
|
||||||
"var_date_contribution_table_data_updated": "2025/12/26",
|
"var_date_contribution_table_data_updated": "2026/01/17",
|
||||||
"latest_rhino_engine_name_with_github_lineno_address": "[v2.0.0-SNAPSHOT](http://rhino.autojs6.com/blob/master/gradle.properties#L3)",
|
"latest_rhino_engine_name_with_github_lineno_address": "[v2.0.0-SNAPSHOT](http://rhino.autojs6.com/blob/master/gradle.properties#L3)",
|
||||||
"var_date_rhino_engine_latest_committed": "2025/12/25",
|
"var_date_rhino_engine_latest_committed": "2025/12/25",
|
||||||
"var_date_jdk_max_supported": "%CURRENT_DATE%",
|
"var_date_jdk_max_supported": "%CURRENT_DATE%",
|
||||||
|
|||||||
@@ -37,6 +37,10 @@ class PluginCenterFragment : Fragment(R.layout.fragment_plugin_center) {
|
|||||||
// zh-CN: 用于延迟显示空态提示的 Job.
|
// zh-CN: 用于延迟显示空态提示的 Job.
|
||||||
private var emptyHintJob: Job? = null
|
private var emptyHintJob: Job? = null
|
||||||
|
|
||||||
|
// Job for debouncing package change refresh during replacing install/update.
|
||||||
|
// zh-CN: 用于在替换安装/更新期间对包变更刷新进行去抖的 Job.
|
||||||
|
private var pkgChangeRefreshJob: Job? = null
|
||||||
|
|
||||||
private var isFirstEnter: Boolean = true
|
private var isFirstEnter: Boolean = true
|
||||||
|
|
||||||
// Latest full list from ViewModel (unfiltered).
|
// Latest full list from ViewModel (unfiltered).
|
||||||
@@ -300,14 +304,40 @@ class PluginCenterFragment : Fragment(R.layout.fragment_plugin_center) {
|
|||||||
Intent.ACTION_PACKAGE_ADDED -> {
|
Intent.ACTION_PACKAGE_ADDED -> {
|
||||||
// Package installation (update) does not record "Recently installed" when replacing, but will refresh.
|
// Package installation (update) does not record "Recently installed" when replacing, but will refresh.
|
||||||
// zh-CN: 替换安装 (更新) 不记录 "最近安装", 但会刷新.
|
// zh-CN: 替换安装 (更新) 不记录 "最近安装", 但会刷新.
|
||||||
if (!replacing) PluginRecentStore.setLastInstalled(packageName)
|
if (!replacing) {
|
||||||
vm.load(context, forceRefreshIndex = false)
|
PluginRecentStore.setLastInstalled(packageName)
|
||||||
|
vm.load(context, forceRefreshIndex = false)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Debounce refresh when replacing, to avoid transient "missing pluginInfo" state.
|
||||||
|
// zh-CN: 替换安装时对刷新做去抖, 避免短暂的 "pluginInfo 缺失" 中间态.
|
||||||
|
pkgChangeRefreshJob?.cancel()
|
||||||
|
pkgChangeRefreshJob = viewLifecycleOwner.lifecycleScope.launch {
|
||||||
|
delay(1500L)
|
||||||
|
if (isAdded && _binding != null) {
|
||||||
|
vm.load(context, forceRefreshIndex = false)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Intent.ACTION_PACKAGE_REMOVED -> {
|
Intent.ACTION_PACKAGE_REMOVED -> {
|
||||||
// Package uninstallation (pre-update phase) does not record "Recently uninstalled" when replacing.
|
// Package uninstallation (pre-update phase) does not record "Recently uninstalled" when replacing.
|
||||||
// zh-CN: 替换卸载 (更新前阶段) 不记录 "最近卸载".
|
// zh-CN: 替换卸载 (更新前阶段) 不记录 "最近卸载".
|
||||||
if (!replacing) PluginRecentStore.setLastUninstalled(packageName)
|
if (!replacing) {
|
||||||
vm.load(context, forceRefreshIndex = false)
|
PluginRecentStore.setLastUninstalled(packageName)
|
||||||
|
vm.load(context, forceRefreshIndex = false)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Debounce refresh when replacing, to avoid transient "missing pluginInfo" state.
|
||||||
|
// zh-CN: 替换卸载时对刷新做去抖, 避免短暂的 "pluginInfo 缺失" 中间态.
|
||||||
|
pkgChangeRefreshJob?.cancel()
|
||||||
|
pkgChangeRefreshJob = viewLifecycleOwner.lifecycleScope.launch {
|
||||||
|
delay(1500L)
|
||||||
|
if (isAdded && _binding != null) {
|
||||||
|
vm.load(context, forceRefreshIndex = false)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -323,6 +353,8 @@ class PluginCenterFragment : Fragment(R.layout.fragment_plugin_center) {
|
|||||||
|
|
||||||
override fun onStop() {
|
override fun onStop() {
|
||||||
super.onStop()
|
super.onStop()
|
||||||
|
pkgChangeRefreshJob?.cancel()
|
||||||
|
pkgChangeRefreshJob = null
|
||||||
pkgReceiver?.let { runCatching { requireContext().unregisterReceiver(it) } }
|
pkgReceiver?.let { runCatching { requireContext().unregisterReceiver(it) } }
|
||||||
pkgReceiver = null
|
pkgReceiver = null
|
||||||
}
|
}
|
||||||
@@ -340,6 +372,8 @@ class PluginCenterFragment : Fragment(R.layout.fragment_plugin_center) {
|
|||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
emptyHintJob?.cancel()
|
emptyHintJob?.cancel()
|
||||||
emptyHintJob = null
|
emptyHintJob = null
|
||||||
|
pkgChangeRefreshJob?.cancel()
|
||||||
|
pkgChangeRefreshJob = null
|
||||||
_binding = null
|
_binding = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ object PaddleOcrPluginHost {
|
|||||||
): Discovered? {
|
): Discovered? {
|
||||||
val list = discover(context)
|
val list = discover(context)
|
||||||
.filter { it.pluginInfo != null }
|
.filter { it.pluginInfo != null }
|
||||||
.filter { PluginEnableStore.isEnabled(context, it.serviceInfo.packageName, false) }
|
.filter { PluginEnableStore.isEnabled(context, it.serviceInfo.packageName, true) }
|
||||||
if (list.isEmpty()) return null
|
if (list.isEmpty()) return null
|
||||||
if (engineId != null) {
|
if (engineId != null) {
|
||||||
list.firstOrNull { d -> d.pluginInfo?.id == engineId }?.let { return it }
|
list.firstOrNull { d -> d.pluginInfo?.id == engineId }?.let { return it }
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/title_container"
|
android:id="@+id/title_container"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:minHeight="43dp"
|
android:minHeight="43dp"
|
||||||
android:layout_toEndOf="@+id/icon_container"
|
android:layout_toEndOf="@+id/icon_container"
|
||||||
android:layout_toStartOf="@id/sw"
|
android:layout_toStartOf="@id/sw"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#Thu Oct 30 10:26:35 GMT+8 2025
|
#Sat Jan 17 18:01:00 GMT+8 2026
|
||||||
|
9.3.0=2.2.21
|
||||||
9.2.0=2.2.20
|
9.2.0=2.2.20
|
||||||
9.0.0=2.2.0
|
9.0.0=2.2.0
|
||||||
8.12=2.0.21
|
8.12=2.0.21
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#Mon Dec 22 12:46:26 GMT+8 2025
|
#Sat Jan 17 18:00:52 GMT+8 2026
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#Sat Jan 17 15:22:28 CST 2026
|
#Sat Jan 17 18:13:03 CST 2026
|
||||||
BUILD_TIME=1768634548657
|
BUILD_TIME=1768644783702
|
||||||
COMPILE_SDK_VERSION=36
|
COMPILE_SDK_VERSION=36
|
||||||
IMAGE_QUANT_CMAKE_VERSION=3.22.1
|
IMAGE_QUANT_CMAKE_VERSION=3.22.1
|
||||||
IMAGE_QUANT_NDK_VERSION=26.1.10909125
|
IMAGE_QUANT_NDK_VERSION=26.1.10909125
|
||||||
@@ -27,6 +27,6 @@ RAPID_OCR_OPENCV_MOBILE_LABEL_VERSION=13
|
|||||||
RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3
|
RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3
|
||||||
TARGET_SDK_VERSION=36
|
TARGET_SDK_VERSION=36
|
||||||
TARGET_SDK_VERSION_INRT=29
|
TARGET_SDK_VERSION_INRT=29
|
||||||
VERSION_BUILD=3623
|
VERSION_BUILD=3624
|
||||||
VERSION_NAME=6.7.0 Alpha15
|
VERSION_NAME=6.7.0 Alpha15
|
||||||
VSCODE_EXT_REQUIRED_VERSION=1.0.13
|
VSCODE_EXT_REQUIRED_VERSION=1.0.13
|
||||||
|
|||||||
Reference in New Issue
Block a user