From a6e197c0b6af629d051a14ab168f5128d0cad745 Mon Sep 17 00:00:00 2001 From: SuperMonster003 Date: Tue, 24 Dec 2024 20:43:38 +0800 Subject: [PATCH] =?UTF-8?q?6.6.1=20-=20Alpha2=20-=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E5=99=A8=E4=B8=8D=E6=94=AF=E6=8C=81=20ConsSt?= =?UTF-8?q?ring=20=E7=B1=BB=E5=9E=8B=E5=8F=82=E6=95=B0=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20(issue=20#277)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changelog/lang_zh-Hans.json | 1 + .../main/java/org/autojs/autojs/extension/AnyExtensions.kt | 6 ++++-- .../autojs/autojs/runtime/api/augment/selector/Selector.kt | 4 +++- version.properties | 4 ++-- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.changelog/lang_zh-Hans.json b/.changelog/lang_zh-Hans.json index f1187aaf..6a63b729 100644 --- a/.changelog/lang_zh-Hans.json +++ b/.changelog/lang_zh-Hans.json @@ -12,6 +12,7 @@ "调用不存在的方法时可能出现的 \"非原始类型值\" 异常", "部分设备无法正常添加脚本快捷方式的问题 (试修) _[`issue #221`](http://issues.autojs6.com/221)_", "automator.click/longClick 方法参数类型限制错误 _[`issue #275`](http://issues.autojs6.com/275)_", + "选择器不支持 ConsString 类型参数的问题 _[`issue #277`](http://issues.autojs6.com/277)_", "UiObjectCollection 实例缺失自身方法及属性的问题" ], "improvement": [ diff --git a/app/src/main/java/org/autojs/autojs/extension/AnyExtensions.kt b/app/src/main/java/org/autojs/autojs/extension/AnyExtensions.kt index 84822d6d..5d9bd2f2 100644 --- a/app/src/main/java/org/autojs/autojs/extension/AnyExtensions.kt +++ b/app/src/main/java/org/autojs/autojs/extension/AnyExtensions.kt @@ -11,6 +11,7 @@ import org.autojs.autojs.util.RhinoUtils.js_typeof import org.autojs.autojs.util.RhinoUtils.newNativeObject import org.autojs.autojs.util.StringUtils.str import org.autojs.autojs6.R +import org.mozilla.javascript.ConsString import org.mozilla.javascript.Context import org.mozilla.javascript.NativeError import org.mozilla.javascript.Scriptable @@ -80,11 +81,12 @@ object AnyExtensions { */ fun T?.jsSanitize() = if (this.isJsNullish()) null else this - fun Any?.jsUnwrapped() = when (this) { + fun Any?.jsUnwrapped(): Any? = when (this) { is String -> this + is ConsString -> this.toString() is Number -> Context.toNumber(this) is Boolean -> Context.toBoolean(this) - is Wrapper -> this.unwrap() + is Wrapper -> this.unwrap().jsUnwrapped() is Unit -> UNDEFINED is List<*> -> this.toNativeArray() is Array<*> -> this.toNativeArray() diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/augment/selector/Selector.kt b/app/src/main/java/org/autojs/autojs/runtime/api/augment/selector/Selector.kt index 3b55293b..3fdba3bf 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/augment/selector/Selector.kt +++ b/app/src/main/java/org/autojs/autojs/runtime/api/augment/selector/Selector.kt @@ -4,6 +4,7 @@ import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface import org.autojs.autojs.core.accessibility.UiSelector import org.autojs.autojs.core.automator.UiObject import org.autojs.autojs.extension.AnyExtensions.isJsNullish +import org.autojs.autojs.extension.AnyExtensions.jsUnwrapped import org.autojs.autojs.extension.FlexibleArray import org.autojs.autojs.extension.ScriptableExtensions.hasProp import org.autojs.autojs.extension.ScriptableExtensions.defineProp @@ -18,6 +19,7 @@ import org.autojs.autojs.util.RhinoUtils.coerceString import org.autojs.autojs.util.RhinoUtils.newBaseFunction import org.autojs.autojs.util.RhinoUtils.withRhinoContext import org.mozilla.javascript.BaseFunction +import org.mozilla.javascript.ConsString import org.mozilla.javascript.Context import org.mozilla.javascript.Scriptable import java.lang.reflect.Method @@ -110,7 +112,7 @@ class Selector(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRun private fun convertArgumentsIfNeeded(method: Method, args: Array): Array { return method.parameterTypes.mapIndexed { index, paramType -> - val arg = args[index] + val arg = args[index].jsUnwrapped() when { arg !is Double -> arg paramType == Double::class.java || paramType == java.lang.Double.TYPE -> arg diff --git a/version.properties b/version.properties index f380e4ef..5c6b4c36 100644 --- a/version.properties +++ b/version.properties @@ -1,5 +1,5 @@ -#Tue Dec 24 20:14:13 CST 2024 -BUILD_TIME=1735042453409 +#Tue Dec 24 20:40:53 CST 2024 +BUILD_TIME=1735044053799 COMPILE_SDK_VERSION=34 JAVA_VERSION=23 JAVA_VERSION_MIN_RADICAL=0