6.6.1 - Alpha2 - 修复选择器不支持 ConsString 类型参数的问题 (issue #277)

This commit is contained in:
SuperMonster003
2024-12-24 20:43:38 +08:00
parent 9a4b581f07
commit a6e197c0b6
4 changed files with 10 additions and 5 deletions

View File

@@ -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": [

View File

@@ -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> 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()

View File

@@ -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<out Any?>): Array<Any?> {
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

View File

@@ -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