6.7.0 - Alpha5 - 修复 floaty.window/rawWindow 方法无法接受字符串参数的问题

This commit is contained in:
SuperMonster003
2025-09-12 14:31:08 +08:00
parent 335e12fd12
commit 1d18e5652a
2 changed files with 4 additions and 2 deletions

View File

@@ -12,6 +12,7 @@
"fix": [
"isJavaClass/isJavaPackage 等全局方法无效的问题",
"timers.keepAlive 方法 timeout 参数功能无效的问题",
"floaty.window/rawWindow 方法无法接受字符串参数的问题",
"使用 XML 语法将 JavaScript 表达式作为属性值时, this 对象可能出现指向错误的问题",
"canvas 元素控件 setMaxFps 方法内部帧率计算错误",
"images.concat 方法纵向拼接时宽度值计算错误",

View File

@@ -6,6 +6,7 @@ import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.core.floaty.BaseResizableFloatyWindow
import org.autojs.autojs.core.ui.ViewExtras
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.isJsString
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
@@ -93,13 +94,13 @@ class Floaty(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
}
private fun wrap(scriptRuntime: ScriptRuntime, windowFunction: (supplier: BaseResizableFloatyWindow.ViewSupplier) -> JsWindow, xml: Any?): ProxyJavaObject {
require(xml is XML) { "Argument xml ${xml.jsBrief()} is invalid for Floaty#wrap" }
require(xml is XML || xml.isJsString()) { "Argument xml ${xml.jsBrief()} is invalid for Floaty#wrap" }
val storage = mutableMapOf<String, Any?>()
val layoutInflater = scriptRuntime.ui.layoutInflater
val window = windowFunction(object : BaseResizableFloatyWindow.ViewSupplier {
override fun inflate(context: AndroidContext, parent: ViewGroup?): View {
layoutInflater.context = context
return layoutInflater.inflate(toXMLString(xml), parent, true)
return layoutInflater.inflate(toXMLString(xml!!), parent, true)
}
})
val getter = fun(args: Array<out Any?>): Any? {