6.6.4 - Alpha - 新增 util.dpToPx/spToPx/pxToDp/pxToSp 方法
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
"v6.6.4": {
|
"v6.6.4": {
|
||||||
"released_date": "2025/05/29",
|
"released_date": "2025/05/29",
|
||||||
"feature": [
|
"feature": [
|
||||||
|
"util.dpToPx/spToPx/pxToDp/pxToSp 方法, 用于像素单位转换"
|
||||||
],
|
],
|
||||||
"fix": [
|
"fix": [
|
||||||
"Android 15 部分页面状态栏背景着色区域不完整的问题 _[`issue #398`](http://issues.autojs6.com/398)_"
|
"Android 15 部分页面状态栏背景着色区域不完整的问题 _[`issue #398`](http://issues.autojs6.com/398)_"
|
||||||
|
|||||||
@@ -27,9 +27,12 @@ import org.autojs.autojs.runtime.api.augment.Augmentable
|
|||||||
import org.autojs.autojs.runtime.api.augment.global.Species
|
import org.autojs.autojs.runtime.api.augment.global.Species
|
||||||
import org.autojs.autojs.runtime.api.augment.util.Inspect.inspectRhino
|
import org.autojs.autojs.runtime.api.augment.util.Inspect.inspectRhino
|
||||||
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
|
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
|
||||||
|
import org.autojs.autojs.util.DisplayUtils
|
||||||
import org.autojs.autojs.util.RhinoUtils
|
import org.autojs.autojs.util.RhinoUtils
|
||||||
import org.autojs.autojs.util.RhinoUtils.ObsoletedRhinoFunctionException
|
import org.autojs.autojs.util.RhinoUtils.ObsoletedRhinoFunctionException
|
||||||
import org.autojs.autojs.util.RhinoUtils.callToStringFunction
|
import org.autojs.autojs.util.RhinoUtils.callToStringFunction
|
||||||
|
import org.autojs.autojs.util.RhinoUtils.coerceFloatNumber
|
||||||
|
import org.autojs.autojs.util.RhinoUtils.coerceNumber
|
||||||
import org.autojs.autojs.util.RhinoUtils.js_function_bind
|
import org.autojs.autojs.util.RhinoUtils.js_function_bind
|
||||||
import org.autojs.autojs.util.RhinoUtils.js_json_stringify
|
import org.autojs.autojs.util.RhinoUtils.js_json_stringify
|
||||||
import org.autojs.autojs.util.RhinoUtils.js_object_create
|
import org.autojs.autojs.util.RhinoUtils.js_object_create
|
||||||
@@ -108,6 +111,10 @@ object Util : Augmentable() {
|
|||||||
::toRegular.name,
|
::toRegular.name,
|
||||||
::toRegularAndCall.name,
|
::toRegularAndCall.name,
|
||||||
::toRegularAndApply.name,
|
::toRegularAndApply.name,
|
||||||
|
::dpToPx.name,
|
||||||
|
::spToPx.name,
|
||||||
|
::pxToDp.name,
|
||||||
|
::pxToSp.name,
|
||||||
)
|
)
|
||||||
|
|
||||||
private val availableTypes = listOf(
|
private val availableTypes = listOf(
|
||||||
@@ -568,9 +575,10 @@ object Util : Augmentable() {
|
|||||||
fun ensureTypeRhino(o: Any?, type: Any?) {
|
fun ensureTypeRhino(o: Any?, type: Any?) {
|
||||||
if (type !is String) throw WrappedIllegalArgumentException("Argument \"type\" must be a string")
|
if (type !is String) throw WrappedIllegalArgumentException("Argument \"type\" must be a string")
|
||||||
val niceType = type.lowercase()
|
val niceType = type.lowercase()
|
||||||
if (niceType !in availableTypes) throw WrappedIllegalArgumentException("Argument \"type\" must be one of these types: ${
|
if (niceType !in availableTypes) throw WrappedIllegalArgumentException(
|
||||||
availableTypes.joinToString(", ") { "\"$it\"" }
|
"Argument \"type\" must be one of these types: ${
|
||||||
}")
|
availableTypes.joinToString(", ") { "\"$it\"" }
|
||||||
|
}")
|
||||||
if (js_typeof(o) != niceType) {
|
if (js_typeof(o) != niceType) {
|
||||||
throw WrappedIllegalArgumentException("Argument must be type of $type instead of ${o.jsBrief()}")
|
throw WrappedIllegalArgumentException("Argument must be type of $type instead of ${o.jsBrief()}")
|
||||||
}
|
}
|
||||||
@@ -736,6 +744,30 @@ object Util : Augmentable() {
|
|||||||
throw ObsoletedRhinoFunctionException(::toRegularAndCall.name)
|
throw ObsoletedRhinoFunctionException(::toRegularAndCall.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
@RhinoSingletonFunctionInterface
|
||||||
|
fun dpToPx(args: Array<out Any?>): Double = ensureArgumentsOnlyOne(args) {
|
||||||
|
coerceNumber(DisplayUtils.dpToPx(coerceFloatNumber(it)))
|
||||||
|
}
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
@RhinoSingletonFunctionInterface
|
||||||
|
fun spToPx(args: Array<out Any?>): Double = ensureArgumentsOnlyOne(args) {
|
||||||
|
coerceNumber(DisplayUtils.spToPx(coerceFloatNumber(it)))
|
||||||
|
}
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
@RhinoSingletonFunctionInterface
|
||||||
|
fun pxToDp(args: Array<out Any?>): Double = ensureArgumentsOnlyOne(args) {
|
||||||
|
coerceNumber(DisplayUtils.pxToDp(coerceFloatNumber(it)))
|
||||||
|
}
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
@RhinoSingletonFunctionInterface
|
||||||
|
fun pxToSp(args: Array<out Any?>): Double = ensureArgumentsOnlyOne(args) {
|
||||||
|
coerceNumber(DisplayUtils.pxToSp(coerceFloatNumber(it)))
|
||||||
|
}
|
||||||
|
|
||||||
private fun getClassInternal(o: Any): Scriptable = when (o) {
|
private fun getClassInternal(o: Any): Scriptable = when (o) {
|
||||||
is Class<*> -> o
|
is Class<*> -> o
|
||||||
else -> o.javaClass
|
else -> o.javaClass
|
||||||
|
|||||||
Reference in New Issue
Block a user