6.7.0 - Alpha18 - 重构 org.autojs.autojs.extension 包结构

This commit is contained in:
SuperMonster003
2026-01-24 16:19:20 +08:00
parent 71d9ad91c2
commit 8ea8225d92
146 changed files with 975 additions and 940 deletions

View File

@@ -15,7 +15,7 @@ import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import org.autojs.autojs.app.DialogUtils
import org.autojs.autojs.core.pref.Pref
import org.autojs.autojs.extension.MaterialDialogExtensions.widgetThemeColor
import org.autojs.autojs.util.MaterialDialogUtils.widgetThemeColor
import org.autojs.autojs.pluginclient.DevPluginService
import org.autojs.autojs.pluginclient.JsonSocketClient
import org.autojs.autojs.ui.common.NotAskAgainDialog

View File

@@ -2,7 +2,7 @@ package org.autojs.autojs.core.accessibility
import android.content.Context
import android.view.accessibility.AccessibilityWindowInfo
import org.autojs.autojs.extension.ArrayExtensions.toHashCode
import org.autojs.autojs.rhino.extension.IterableExtensions.toHashCode
import org.autojs.autojs.util.ObjectUtils
import org.autojs.autojs.util.StringUtils.str
import org.autojs.autojs6.R

View File

@@ -11,10 +11,10 @@ import org.autojs.autojs.app.GlobalAppContext
import org.autojs.autojs.core.accessibility.AccessibilityNodeInfoAllocator
import org.autojs.autojs.core.accessibility.AccessibilityNodeInfoHelper
import org.autojs.autojs.core.accessibility.UiSelector
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.isJsUndefined
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsUndefined
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
import org.autojs.autojs.util.DisplayUtils.toRoundIntX

View File

@@ -1,7 +1,7 @@
package org.autojs.autojs.core.automator
import org.autojs.autojs.core.accessibility.UiSelector
import org.autojs.autojs.extension.ArrayExtensions.toHashCode
import org.autojs.autojs.rhino.extension.IterableExtensions.toHashCode
import org.autojs.autojs.tool.Consumer
import org.autojs.autojs.util.RhinoUtils
import org.mozilla.javascript.Scriptable

View File

@@ -26,7 +26,7 @@ import org.autojs.autojs.annotation.OmniColor
import org.autojs.autojs.annotation.ScriptInterface
import org.autojs.autojs.core.pref.Language
import org.autojs.autojs.core.ui.inflater.util.Gravities
import org.autojs.autojs.extension.MaterialDialogExtensions.widgetThemeColor
import org.autojs.autojs.util.MaterialDialogUtils.widgetThemeColor
import org.autojs.autojs.permission.DisplayOverOtherAppsPermission
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.AbstractConsole

View File

@@ -4,8 +4,9 @@ package org.autojs.autojs.core.crypto
import android.util.Base64
import org.autojs.autojs.annotation.ScriptInterface
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.util.ArrayUtils
import org.autojs.autojs.core.crypto.Crypto.input
import org.autojs.autojs.rhino.extension.NativeArrayExtensions.jsBytesToByteArray
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.util.RhinoUtils.newNativeObject
import org.mozilla.javascript.NativeArray
import org.mozilla.javascript.NativeObject
@@ -116,7 +117,7 @@ object Crypto {
when (val iv = options.prop("iv")) {
is String -> cipher.init(mode, niceKey.toKeySpec(transformation), IvParameterSpec(iv.toByteArray()))
is ByteArray -> cipher.init(mode, niceKey.toKeySpec(transformation), IvParameterSpec(iv))
is NativeArray -> cipher.init(mode, niceKey.toKeySpec(transformation), IvParameterSpec(ArrayUtils.jsBytesToByteArray(iv)))
is NativeArray -> cipher.init(mode, niceKey.toKeySpec(transformation), IvParameterSpec(iv.jsBytesToByteArray()))
is AlgorithmParameterSpec -> cipher.init(mode, niceKey.toKeySpec(transformation), iv)
else -> cipher.init(mode, niceKey.toKeySpec(transformation))
}
@@ -158,7 +159,7 @@ object Crypto {
private fun input(input: Any, options: NativeObject, callback: (bytes: ByteArray, start: Int, length: Int) -> Unit) {
when (input) {
is ByteArray -> callback(input, 0, input.size)
is NativeArray -> callback(ArrayUtils.jsBytesToByteArray(input), 0, input.size)
is NativeArray -> callback(input.jsBytesToByteArray(), 0, input.size)
is String -> when (options.prop("input")) {
"file" -> {
val fis = FileInputStream(input)

View File

@@ -9,7 +9,7 @@ import androidx.core.graphics.get
import org.autojs.autojs.annotation.ScriptInterface
import org.autojs.autojs.core.opencv.Mat
import org.autojs.autojs.core.opencv.OpenCVHelper
import org.autojs.autojs.extension.AnyExtensions.toRuntimePath
import org.autojs.autojs.rhino.extension.AnyExtensions.toRuntimePath
import org.autojs.autojs.pio.UncheckedIOException
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.Images

View File

@@ -6,8 +6,8 @@ import android.content.ServiceConnection
import android.content.pm.ApplicationInfo
import android.os.IBinder
import org.autojs.autojs.annotation.ScriptInterface
import org.autojs.autojs.extension.ArrayExtensions.toHashCode
import org.autojs.autojs.rhino.TopLevelScope
import org.autojs.autojs.rhino.extension.IterableExtensions.toHashCode
import org.autojs.autojs.runtime.api.Plugins.PluginRuntime
import java.lang.reflect.Method

View File

@@ -18,9 +18,9 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.autojs.autojs.app.DialogUtils.showAdaptive
import org.autojs.autojs.extension.MaterialDialogExtensions.makeSettingsLaunchable
import org.autojs.autojs.extension.MaterialDialogExtensions.makeTextCopyable
import org.autojs.autojs.extension.MaterialDialogExtensions.setCopyableTextIfAbsent
import org.autojs.autojs.util.MaterialDialogUtils.makeSettingsLaunchable
import org.autojs.autojs.util.MaterialDialogUtils.makeTextCopyable
import org.autojs.autojs.util.MaterialDialogUtils.setCopyableTextIfAbsent
import org.autojs.autojs.runtime.api.augment.converter.core.Bytes
import org.autojs.autojs.theme.ThemeColorManager
import org.autojs.autojs.util.ColorUtils

View File

@@ -5,7 +5,7 @@ import androidx.lifecycle.LifecycleCoroutineScope
import com.afollestad.materialdialogs.DialogAction
import com.afollestad.materialdialogs.MaterialDialog
import kotlinx.coroutines.launch
import org.autojs.autojs.extension.MaterialDialogExtensions.widgetThemeColor
import org.autojs.autojs.util.MaterialDialogUtils.widgetThemeColor
import org.autojs.autojs6.R
object PluginInstallActions {

View File

@@ -10,7 +10,7 @@ import org.autojs.autojs.core.record.inputevent.InputEventRecorder;
import org.autojs.autojs.core.record.inputevent.InputEventToAutoFileRecorder;
import org.autojs.autojs.core.record.inputevent.InputEventToRootAutomatorRecorder;
import org.autojs.autojs.core.record.inputevent.TouchRecorder;
import org.autojs.autojs.extension.MaterialDialogExtensions;
import org.autojs.autojs.util.MaterialDialogUtils;
import org.autojs.autojs.ui.common.ScriptOperations;
import org.autojs.autojs.util.ClipboardUtils;
import org.autojs.autojs.util.ViewUtils;
@@ -183,7 +183,7 @@ public class GlobalActionRecorder implements Recorder.OnStateChangedListener {
.positiveText(R.string.dialog_button_confirm)
.positiveColorRes(R.color.dialog_button_attraction)
.canceledOnTouchOutside(false);
MaterialDialogExtensions.choiceWidgetThemeColor(builder);
MaterialDialogUtils.choiceWidgetThemeColor(builder);
DialogUtils.showAdaptive(builder.build());
}

View File

@@ -4,7 +4,7 @@ import android.view.View
import android.webkit.WebView
import org.autojs.autojs.core.ui.inflater.ResourceParser
import org.autojs.autojs.core.ui.inflater.util.Strings
import org.autojs.autojs.extension.StringExtensions.isUri
import org.autojs.autojs.util.StringUtils.isUri
import org.autojs.autojs.runtime.ScriptRuntime
open class WebViewAttributes(scriptRuntime: ScriptRuntime, resourceParser: ResourceParser, view: View) : ViewGroupAttributes(scriptRuntime, resourceParser, view) {

View File

@@ -7,10 +7,10 @@ import android.util.Log
import android.view.View
import org.autojs.autojs.core.ui.ViewExtras
import org.autojs.autojs.engine.module.AssetAndUrlModuleSourceProvider
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.pio.PFiles
import org.autojs.autojs.pio.UncheckedIOException
import org.autojs.autojs.project.ScriptConfig

View File

@@ -2,8 +2,8 @@ package org.autojs.autojs.execution
import android.os.Parcel
import android.os.Parcelable
import org.autojs.autojs.extension.ArrayExtensions.toHashCode
import org.autojs.autojs.project.ScriptConfig
import org.autojs.autojs.rhino.extension.IterableExtensions.toHashCode
/**
* Created by Stardust on Feb 1, 2017.

View File

@@ -1,93 +0,0 @@
package org.autojs.autojs.extension
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.util.RhinoUtils.UNDEFINED
import org.autojs.autojs.util.RhinoUtils.newNativeObject
import org.autojs.autojs.util.RhinoUtils.withRhinoContext
import org.mozilla.javascript.Context
import org.mozilla.javascript.NativeArray
import org.mozilla.javascript.NativeObject
import org.mozilla.javascript.Wrapper
object ArrayExtensions {
// @Hint by JetBrains AI Assistant on Oct 25, 2024.
// ! 31 is a prime number that acts as a mixer for hash code calculation.
// ! Multiplying by the prime number 31 helps to evenly distribute the hash values
// ! across different properties and reduce collisions.
// ! zh-CN (translated by Jetbrains AI Assistant on Oct 25, 2024):
// ! 31 是一个质数, 它的作用类似于混合器, 用于哈希码的计算.
// ! 乘以质数 31 可以帮助在不同属性值上更均匀地分散哈希值, 减少碰撞.
fun Iterable<Any?>.toHashCode(initial: Int = 0): Int = fold(initial) { acc, o ->
31 * acc + when (o) {
null -> 0
is Int -> o
is Long -> o.hashCode()
is Float -> o.hashCode()
is Double -> o.hashCode()
is Byte -> o.hashCode()
is Short -> o.hashCode()
is CharSequence -> o.hashCode()
is Array<*> -> o.contentHashCode()
is ByteArray -> o.contentHashCode()
is CharArray -> o.contentHashCode()
is ShortArray -> o.contentHashCode()
is IntArray -> o.contentHashCode()
is LongArray -> o.contentHashCode()
is FloatArray -> o.contentHashCode()
is DoubleArray -> o.contentHashCode()
is BooleanArray -> o.contentHashCode()
else -> o.hashCode()
}
}
fun <T> Array<T>.unshiftWith(thisObj: Any?): Array<Any?> {
return Array(this.size + 1) { if (it == 0) thisObj else this[it - 1] }
}
fun <T> Array<T>.symmetricDifference(other: Array<T>): Set<T> {
val a = this.asIterable() subtract other.asIterable().toSet()
val b = other.asIterable() subtract this.asIterable().toSet()
return a union b
}
fun Iterable<*>.toNativeArray(): NativeArray {
return withRhinoContext { cx ->
val standardObjects = cx.initStandardObjects()
cx.newArray(standardObjects, this.map { Context.javaToJS(it, standardObjects) }.toTypedArray()) as NativeArray
}
}
fun Array<*>.toNativeArray(): NativeArray {
return withRhinoContext { cx ->
val standardObjects = cx.initStandardObjects()
cx.newArray(standardObjects, this.toList().map { Context.javaToJS(it, standardObjects) }.toTypedArray()) as NativeArray
}
}
fun <K, V> Map<K, V>.toNativeObject(): NativeObject = newNativeObject().also { o ->
forEach { entry: Map.Entry<K, V> ->
val key = Context.toString(entry.key)
when (val value = entry.value) {
is String -> o.put(key, o, value)
is Number -> o.put(key, o, Context.toNumber(value))
is Boolean -> o.put(key, o, Context.toBoolean(value))
is Wrapper -> o.put(key, o, value.unwrap())
is Unit -> o.put(key, o, UNDEFINED)
is List<*> -> o.put(key, o, value.toNativeArray())
is Array<*> -> o.put(key, o, value.toNativeArray())
is Map<*, *> -> o.put(key, o, value.toNativeObject())
is Pair<*, *> -> o.put(key, o, newNativeObject().also { newObj ->
newObj.put(Context.toString(value.first), o, value.second)
})
else -> o.put(key, o, Context.javaToJS(value, o))
}
}
}
fun <T> Array<T>.jsArrayBrief(separator: String = ", ", appendPaddingSpace: Boolean = true) = when (appendPaddingSpace) {
true -> "[ ${this.joinToString(separator) { it.jsBrief() }} ]"
else -> "[${this.joinToString(separator) { it.jsBrief() }}]"
}
}

View File

@@ -1,78 +0,0 @@
package org.autojs.autojs.extension
import androidx.core.net.toUri
import java.io.File
import java.text.Normalizer
object StringExtensions {
val String.estimateVisualWidth: Int
get() {
var width = 0
var i = 0
while (i < length) {
// 取 code point (可能是两位 surrogates 拼成一个 code point)
val cp = codePointAt(i)
// 移动下标, 跳过组合过的 surrogate
i += Character.charCount(cp)
// 简易判断: 东亚全宽/Emoji 等
width += if (isLikelyFullwidth(cp)) 2 else 1
}
return width
}
fun String.toDoubleOrNaN() = this.toDoubleOrNull() ?: Double.NaN
fun String.padStart(length: Int, padStr: String) = when {
this.length >= length || padStr.isEmpty() -> this
else -> getPadding(length, padStr) + this
}
fun String.padEnd(length: Int, padStr: String) = when {
this.length >= length || padStr.isEmpty() -> this
else -> this + getPadding(length, padStr)
}
private fun String.getPadding(length: Int, padStr: String): String {
val repeatTimes = (length - this.length) / padStr.length
val remainderStr = padStr.take((length - this.length) % padStr.length)
return padStr.repeat(repeatTimes) + remainderStr
}
fun CharSequence.looseMatches(reference: CharSequence): Boolean {
return this.toString().normalizeForMatch() == reference.toString().normalizeForMatch()
}
private fun String.normalizeForMatch(): String {
return Normalizer.normalize(this, Normalizer.Form.NFD)
.trim()
.replace(Regex("\\p{M}"), "") // 移除组合符号, 如上标符号
.replace(Regex("[^\\p{L}\\p{N}@.|]+"), "") // 只保留 [字母/数字/特定符号]
.lowercase()
}
private fun isLikelyFullwidth(codePoint: Int) = when (codePoint) {
// CJK 中日韩统一表意文字
in 0x4E00..0x9FFF -> true
// 常见的 Emoji 起始, 又或者判断 Character.getType(cp)
in 0x1F300..0x1FAFF -> true
// East Asian Fullwidth, Wide 等范围, 可参考 EastAsianWidth.txt
else -> false
}
@JvmStatic
fun String.isUri(): Boolean {
if (isBlank()) return false
val uri = runCatching { this.toUri() }.getOrNull() ?: return false
uri.scheme?.lowercase() ?: return false
return true
}
@JvmStatic
fun String.toFile(): File {
val path = this
return File(path)
}
}

View File

@@ -1,76 +0,0 @@
package org.autojs.autojs.extension
import android.annotation.SuppressLint
import android.os.Build
import android.view.View
import android.widget.PopupMenu
import android.widget.TextView
import androidx.appcompat.widget.Toolbar
import org.autojs.autojs.util.ViewUtils.onceGlobalLayout
/**
* Created by SuperMonster003 on May 7, 2025.
*/
object ViewExtensions {
fun PopupMenu.setForceShowIconCompat() {
val popup = this
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
popup.setForceShowIcon(true)
} else {
runCatching {
@SuppressLint("DiscouragedPrivateApi")
val field = PopupMenu::class.java.getDeclaredField("mPopup")
field.isAccessible = true
// MenuPopupHelper
val helper = field.get(popup)
val method = helper.javaClass.getDeclaredMethod("setForceShowIcon", Boolean::class.javaPrimitiveType)
method.invoke(helper, true)
}
}
}
val Toolbar.titleView: TextView?
get() = this.findViewById(androidx.appcompat.R.id.action_bar_title)
?: runCatching {
Toolbar::class.java.getDeclaredField("mTitleTextView").apply { isAccessible = true }.get(this@titleView) as TextView?
}.getOrNull()
val Toolbar.subtitleView: TextView?
get() = this.findViewById(androidx.appcompat.R.id.action_bar_subtitle)
?: runCatching {
Toolbar::class.java.getDeclaredField("mSubtitleTextView").apply { isAccessible = true }.get(this@subtitleView) as TextView?
}.getOrNull()
@JvmStatic
fun Toolbar.setOnTitleViewClickListener(l: View.OnClickListener?) {
this.setOnTitleViewClickListener(l, withFallback = true)
}
@JvmStatic
fun Toolbar.setOnTitleViewClickListener(l: View.OnClickListener?, withFallback: Boolean) {
this.onceGlobalLayout {
this.titleView?.setOnClickListener(l) ?: run { if (withFallback) this.setOnClickListener(l) }
}
}
@JvmStatic
fun Toolbar.setOnSubtitleViewClickListener(l: View.OnClickListener?) {
this.onceGlobalLayout {
this.subtitleView?.setOnClickListener(l)
}
}
@JvmStatic
fun Toolbar.setOnTitleViewLongClickListener(l: View.OnLongClickListener?) {
this.setOnTitleViewLongClickListener(l, withFallback = true)
}
@JvmStatic
fun Toolbar.setOnTitleViewLongClickListener(l: View.OnLongClickListener?, withFallback: Boolean) {
this.onceGlobalLayout {
this.titleView?.setOnLongClickListener(l) ?: run { if (withFallback) this.setOnLongClickListener(l) }
}
}
}

View File

@@ -10,7 +10,7 @@ import android.os.Environment
import android.provider.Settings
import androidx.annotation.RequiresApi
import androidx.core.app.ActivityCompat
import org.autojs.autojs.extension.MaterialDialogExtensions.widgetThemeColor
import org.autojs.autojs.util.MaterialDialogUtils.widgetThemeColor
import org.autojs.autojs.permission.Base.getPermissionsToRequest
import org.autojs.autojs.ui.common.NotAskAgainDialog
import org.autojs.autojs.ui.main.MainActivity

View File

@@ -4,7 +4,7 @@ import android.content.Context
import android.os.Handler
import android.os.Looper
import ezy.assist.compat.SettingsCompat
import org.autojs.autojs.extension.MaterialDialogExtensions.widgetThemeColor
import org.autojs.autojs.util.MaterialDialogUtils.widgetThemeColor
import org.autojs.autojs.ui.common.NotAskAgainDialog
import org.autojs.autojs.ui.main.drawer.PermissionItemHelper
import org.autojs.autojs.util.IntentUtils

View File

@@ -6,6 +6,7 @@ import androidx.fragment.app.FragmentActivity
import org.autojs.autojs.core.pref.Pref
import org.autojs.autojs.runtime.api.Permissions
import org.autojs.autojs.ui.main.drawer.PermissionItemHelper
import org.autojs.autojs.util.ContextUtils.findActivity
import org.autojs.autojs.util.NotificationUtils
import org.autojs.autojs6.R
@@ -24,8 +25,8 @@ class PostNotificationsPermission(override val context: Context) : PermissionIte
override fun urge() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
when (val ctx = context) {
is FragmentActivity -> Permissions.getRequestMultiplePermissionsLauncher(ctx).let {
when (val activity = context.findActivity()) {
is FragmentActivity -> Permissions.getRequestMultiplePermissionsLauncher(activity).let {
NotificationUtils.requestPermission(it)
}
}

View File

@@ -1,13 +1,10 @@
package org.autojs.autojs.extension
package org.autojs.autojs.rhino
import org.autojs.autojs.app.GlobalAppContext
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
import org.autojs.autojs.util.RhinoUtils
import org.autojs.autojs.util.RhinoUtils.UNDEFINED
import org.autojs.autojs6.R.plurals as R_plurals
import org.autojs.autojs6.R.string as R_string
open class FlexibleArray {
open class ArgumentGuards {
companion object {
@@ -16,12 +13,12 @@ open class FlexibleArray {
fun <R> ensureArgumentsNotEmpty(args: Array<out Any?>, function: (arrayArgs: Array<Any?>) -> R): R {
if (args.isNotEmpty()) return unwrapAndInvokeAll(args, function)
throw WrappedIllegalArgumentException(context.getString(R_string.error_arguments_cannot_be_empty))
throw WrappedIllegalArgumentException(context.getString(org.autojs.autojs6.R.string.error_arguments_cannot_be_empty))
}
fun <R> ensureArgumentsIsEmpty(args: Array<out Any?>, function: () -> R): R {
if (args.isEmpty()) return function.invoke()
throw WrappedIllegalArgumentException(context.getString(R_string.error_arguments_must_be_empty))
throw WrappedIllegalArgumentException(context.getString(org.autojs.autojs6.R.string.error_arguments_must_be_empty))
}
fun <R> ensureArgumentsOnlyOne(args: Array<out Any?>, function: (singleArg: Any?) -> R): R {
@@ -30,8 +27,8 @@ open class FlexibleArray {
fun <R> ensureArgumentsOnlyOne(args: Array<out Any?>, preventUnwrapped: Boolean, function: (singleArg: Any?) -> R): R {
return when {
args.isEmpty() -> throw WrappedIllegalArgumentException(context.getString(R_string.error_arguments_cannot_be_empty))
args.size > 1 -> throw WrappedIllegalArgumentException(resources.getQuantityString(R_plurals.error_method_only_accepts_n_arguments, 1, 1))
args.isEmpty() -> throw WrappedIllegalArgumentException(context.getString(org.autojs.autojs6.R.string.error_arguments_cannot_be_empty))
args.size > 1 -> throw WrappedIllegalArgumentException(resources.getQuantityString(org.autojs.autojs6.R.plurals.error_method_only_accepts_n_arguments, 1, 1))
preventUnwrapped -> invokeFirst(args, function)
else -> unwrapAndInvokeFirst(args, function)
}
@@ -39,23 +36,23 @@ open class FlexibleArray {
fun <R> ensureArgumentsAtLeast(args: Array<out Any?>, n: Int, function: (arrayArgs: Array<Any?>) -> R): R {
if (args.size >= n) return unwrapAndInvokeAll(args, function)
throw WrappedIllegalArgumentException(resources.getQuantityString(R_plurals.error_method_only_accepts_no_less_than_n_arguments, n, n))
throw WrappedIllegalArgumentException(resources.getQuantityString(org.autojs.autojs6.R.plurals.error_method_only_accepts_no_less_than_n_arguments, n, n))
}
fun <R> ensureArgumentsAtMost(args: Array<out Any?>, n: Int, function: (arrayArgs: Array<Any?>) -> R): R {
if (args.size <= n) return unwrapAndInvokeAll(args, function)
throw WrappedIllegalArgumentException(resources.getQuantityString(R_plurals.error_method_only_accepts_no_more_than_n_arguments, n, n))
throw WrappedIllegalArgumentException(resources.getQuantityString(org.autojs.autojs6.R.plurals.error_method_only_accepts_no_more_than_n_arguments, n, n))
}
fun <R> ensureArgumentsLength(args: Array<out Any?>, n: Int, function: (arrayArgs: Array<Any?>) -> R): R {
if (args.size == n) return unwrapAndInvokeAll(args, function)
throw WrappedIllegalArgumentException(resources.getQuantityString(R_plurals.error_method_only_accepts_n_arguments, n, n))
throw WrappedIllegalArgumentException(resources.getQuantityString(org.autojs.autojs6.R.plurals.error_method_only_accepts_n_arguments, n, n))
}
fun <R> ensureArgumentsLengthInRange(args: Array<out Any?>, range: IntRange, function: (arrayArgs: Array<Any?>) -> R): R {
if (args.size in range) return unwrapAndInvokeAll(args, function)
val (min, max) = range.run { first to last }
throw WrappedIllegalArgumentException(context.getString(R_string.error_method_only_accepts_a_number_of_arguments_in_the_range_n_to_m, min, max))
throw WrappedIllegalArgumentException(context.getString(org.autojs.autojs6.R.string.error_method_only_accepts_a_number_of_arguments_in_the_range_n_to_m, min, max))
}
fun unwrap(o: Any?): Any? = RhinoUtils.unwrap(o)
@@ -65,7 +62,7 @@ open class FlexibleArray {
}
private fun <R> invokeFirst(args: Array<out Any?>, function: (arg: Any?) -> R): R {
return args[0].let { o -> function.invoke(if (o is Unit) UNDEFINED else o) }
return args[0].let { o -> function.invoke(if (o is Unit) RhinoUtils.UNDEFINED else o) }
}
private fun <R> unwrapAndInvokeFirst(args: Array<out Any?>, function: (arg: Any?) -> R): R {

View File

@@ -1,6 +1,6 @@
package org.autojs.autojs.rhino
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.util.RhinoUtils.NOT_CONSTRUCTABLE
import org.autojs.autojs.util.RhinoUtils.callFunction
import org.autojs.autojs.util.RhinoUtils.newBaseFunction

View File

@@ -1,7 +1,9 @@
package org.autojs.autojs.extension
package org.autojs.autojs.rhino.extension
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.extension.ArrayExtensions.toNativeObject
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.MapExtensions.toNativeObject
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.global.IsNullish
import org.autojs.autojs.runtime.api.augment.global.Species
@@ -15,7 +17,7 @@ import org.mozilla.javascript.ConsString
import org.mozilla.javascript.Context
import org.mozilla.javascript.NativeError
import org.mozilla.javascript.Scriptable
import org.mozilla.javascript.UniqueTag.NOT_FOUND
import org.mozilla.javascript.UniqueTag
import org.mozilla.javascript.Wrapper
import java.math.BigInteger
@@ -102,27 +104,27 @@ object AnyExtensions {
fun Any?.isJsNullish() = IsNullish.invoke(this)
fun Any?.isJsArray() = this != NOT_FOUND && this is Scriptable && "Array" == this.className
fun Any?.isJsArray() = this != UniqueTag.NOT_FOUND && this is Scriptable && "Array" == this.className
fun Any?.isJsBoolean() = this != NOT_FOUND && js_typeof(this) == "boolean"
fun Any?.isJsBoolean() = this != UniqueTag.NOT_FOUND && js_typeof(this) == "boolean"
fun Any?.isJsNumber() = this != NOT_FOUND && js_typeof(this) == "number"
fun Any?.isJsNumber() = this != UniqueTag.NOT_FOUND && js_typeof(this) == "number"
fun Any?.isJsString() = this != NOT_FOUND && js_typeof(this) == "string"
fun Any?.isJsString() = this != UniqueTag.NOT_FOUND && js_typeof(this) == "string"
fun Any?.isJsSymbol() = this != NOT_FOUND && js_typeof(this) == "symbol"
fun Any?.isJsSymbol() = this != UniqueTag.NOT_FOUND && js_typeof(this) == "symbol"
fun Any?.isJsUndefined() = this == NOT_FOUND || js_typeof(this) == "undefined"
fun Any?.isJsUndefined() = this == UniqueTag.NOT_FOUND || js_typeof(this) == "undefined"
fun Any?.isJsObject() = this != NOT_FOUND && js_typeof(this) == "object" && this != null
fun Any?.isJsObject() = this != UniqueTag.NOT_FOUND && js_typeof(this) == "object" && this != null
fun Any?.isJsNonNullObject() = this != null && this.isJsObject()
fun Any?.isJsBigInt() = this != NOT_FOUND && js_typeof(this) == "bigint"
fun Any?.isJsBigInt() = this != UniqueTag.NOT_FOUND && js_typeof(this) == "bigint"
fun Any?.isJsFunction() = this != NOT_FOUND && js_typeof(this) == "function"
fun Any?.isJsFunction() = this != UniqueTag.NOT_FOUND && js_typeof(this) == "function"
fun Any?.isJsXml() = this != NOT_FOUND && js_typeof(this) == "xml"
fun Any?.isJsXml() = this != UniqueTag.NOT_FOUND && js_typeof(this) == "xml"
fun Any?.isJsRegExp() = this.isJsObject() && Species.isRegExpRhino(this)
@@ -139,4 +141,4 @@ object AnyExtensions {
return scriptRuntime.files.nonNullPath(coerceString(this, "."))
}
}
}

View File

@@ -0,0 +1,22 @@
package org.autojs.autojs.rhino.extension
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.util.RhinoUtils.withRhinoContext
import org.mozilla.javascript.Context
import org.mozilla.javascript.NativeArray
object ArrayExtensions {
fun Array<*>.toNativeArray(): NativeArray {
return withRhinoContext { cx ->
val standardObjects = cx.initStandardObjects()
cx.newArray(standardObjects, this.toList().map { Context.javaToJS(it, standardObjects) }.toTypedArray()) as NativeArray
}
}
fun <T> Array<T>.jsArrayBrief(separator: String = ", ", appendPaddingSpace: Boolean = true) = when (appendPaddingSpace) {
true -> "[ ${this.joinToString(separator) { it.jsBrief() }} ]"
else -> "[${this.joinToString(separator) { it.jsBrief() }}]"
}
}

View File

@@ -0,0 +1,46 @@
package org.autojs.autojs.rhino.extension
import org.autojs.autojs.util.RhinoUtils
import org.mozilla.javascript.Context
import org.mozilla.javascript.NativeArray
object IterableExtensions {
fun Iterable<*>.toNativeArray(): NativeArray {
return RhinoUtils.withRhinoContext { cx ->
val standardObjects = cx.initStandardObjects()
cx.newArray(standardObjects, this.map { Context.javaToJS(it, standardObjects) }.toTypedArray()) as NativeArray
}
}
// @Hint by JetBrains AI Assistant on Oct 25, 2024.
// ! 31 is a prime number that acts as a mixer for hash code calculation.
// ! Multiplying by the prime number 31 helps to evenly distribute the hash values
// ! across different properties and reduce collisions.
// ! zh-CN (translated by Jetbrains AI Assistant on Oct 25, 2024):
// ! 31 是一个质数, 它的作用类似于混合器, 用于哈希码的计算.
// ! 乘以质数 31 可以帮助在不同属性值上更均匀地分散哈希值, 减少碰撞.
fun Iterable<Any?>.toHashCode(initial: Int = 0): Int = fold(initial) { acc, o ->
31 * acc + when (o) {
null -> 0
is Int -> o
is Long -> o.hashCode()
is Float -> o.hashCode()
is Double -> o.hashCode()
is Byte -> o.hashCode()
is Short -> o.hashCode()
is CharSequence -> o.hashCode()
is Array<*> -> o.contentHashCode()
is ByteArray -> o.contentHashCode()
is CharArray -> o.contentHashCode()
is ShortArray -> o.contentHashCode()
is IntArray -> o.contentHashCode()
is LongArray -> o.contentHashCode()
is FloatArray -> o.contentHashCode()
is DoubleArray -> o.contentHashCode()
is BooleanArray -> o.contentHashCode()
else -> o.hashCode()
}
}
}

View File

@@ -0,0 +1,34 @@
package org.autojs.autojs.rhino.extension
import org.autojs.autojs.rhino.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.util.RhinoUtils.UNDEFINED
import org.autojs.autojs.util.RhinoUtils.newNativeObject
import org.mozilla.javascript.Context
import org.mozilla.javascript.NativeObject
import org.mozilla.javascript.Wrapper
object MapExtensions {
fun <K, V> Map<K, V>.toNativeObject(): NativeObject = newNativeObject().also { o ->
forEach { entry: Map.Entry<K, V> ->
val key = Context.toString(entry.key)
when (val value = entry.value) {
is String -> o.put(key, o, value)
is Number -> o.put(key, o, Context.toNumber(value))
is Boolean -> o.put(key, o, Context.toBoolean(value))
is Wrapper -> o.put(key, o, value.unwrap())
is Unit -> o.put(key, o, UNDEFINED)
is List<*> -> o.put(key, o, value.toNativeArray())
is Array<*> -> o.put(key, o, value.toNativeArray())
is Map<*, *> -> o.put(key, o, value.toNativeObject())
is Pair<*, *> -> o.put(key, o, newNativeObject().also { newObj ->
newObj.put(Context.toString(value.first), o, value.second)
})
else -> o.put(key, o, Context.javaToJS(value, o))
}
}
}
}

View File

@@ -0,0 +1,25 @@
package org.autojs.autojs.rhino.extension
import org.mozilla.javascript.NativeArray
object NativeArrayExtensions {
@JvmStatic
fun NativeArray.jsBytesToByteArray(): ByteArray {
val size = this.size
val bytes = ByteArray(size)
for (i in 0 until size) {
val number = this[i]
if (number is Number) {
bytes[i] = number.toByte()
}
}
return bytes
}
@JvmStatic
fun NativeArray.jsBytesToString(): String {
return String(this.jsBytesToByteArray())
}
}

View File

@@ -1,6 +1,4 @@
package org.autojs.autojs.extension
import java.math.RoundingMode
package org.autojs.autojs.rhino.extension
object NumberExtensions {
@@ -17,13 +15,4 @@ object NumberExtensions {
else -> this.toString()
}
@JvmStatic
@JvmOverloads
fun Double.roundToString(scale: Int, stripTrailingZeros: Boolean = true): String {
return toBigDecimal()
.setScale(scale, RoundingMode.HALF_UP)
.let { if (stripTrailingZeros) it.stripTrailingZeros() else it }
.toPlainString()
}
}
}

View File

@@ -1,6 +1,6 @@
package org.autojs.autojs.extension
package org.autojs.autojs.rhino.extension
import org.autojs.autojs.util.RhinoUtils.undefined
import org.autojs.autojs.util.RhinoUtils
import org.mozilla.javascript.Scriptable
import org.mozilla.javascript.ScriptableObject
import org.mozilla.javascript.Wrapper
@@ -16,7 +16,7 @@ object ScriptableExtensions {
* Searches the prototype chain for a property named `key`.
*
* @param key A property name
* @return The value of a property with name `key` found in this object or any object in its prototype chain, or [Scriptable.NOT_FOUND] if not found
* @return The value of a property with name `key` found in this object or any object in its prototype chain, or [org.mozilla.javascript.Scriptable.NOT_FOUND] if not found
*/
fun Scriptable.getProp(key: String): Any? = ScriptableObject.getProperty(this, key).let {
if (it is Wrapper) it.unwrap() else it
@@ -53,7 +53,7 @@ object ScriptableExtensions {
* @param value The initial value of the property
* @param attributes The attributes of the JavaScript property
*/
fun Scriptable.defineProp(key: String, value: Any?, attributes: Int = ScriptableObject.EMPTY) = undefined { ScriptableObject.defineProperty(this, key, value, attributes) }
fun Scriptable.defineProp(key: String, value: Any?, attributes: Int = ScriptableObject.EMPTY) = RhinoUtils.undefined { ScriptableObject.defineProperty(this, key, value, attributes) }
/**
* Puts a named property in this object or in an object in its prototype chain.
@@ -66,7 +66,7 @@ object ScriptableExtensions {
* @param key A property key
* @param value Any JavaScript value accepted by [Scriptable.put]
*/
fun Scriptable.putProp(key: String, value: Any?) = undefined { ScriptableObject.putProperty(this, key, value) }
fun Scriptable.putProp(key: String, value: Any?) = RhinoUtils.undefined { ScriptableObject.putProperty(this, key, value) }
/**
* Removes the property from this object or its prototype chain.
@@ -79,4 +79,4 @@ object ScriptableExtensions {
*/
fun Scriptable.deleteProp(key: String): Boolean = ScriptableObject.deleteProperty(this, key)
}
}

View File

@@ -1,9 +1,9 @@
package org.autojs.autojs.extension
package org.autojs.autojs.rhino.extension
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.util.StringUtils.str
import org.autojs.autojs6.R.string as R_string
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.util.StringUtils
import org.autojs.autojs6.R
import org.mozilla.javascript.ScriptableObject
/**
@@ -13,13 +13,13 @@ object ScriptableObjectExtensions {
fun ScriptableObject.acquire(name: String): Any {
val propValue = this.prop(name)
require(!propValue.isJsNullish()) { str(R_string.error_required_property_is_nullish_or_does_not_exist, name) }
require(!propValue.isJsNullish()) { StringUtils.str(R.string.error_required_property_is_nullish_or_does_not_exist, name) }
return propValue!!
}
fun <R> ScriptableObject.acquire(name: String, transformer: (o: Any) -> R): R {
val result = transformer(acquire(name))
require(!result.isJsNullish()) { str(R_string.error_the_transformer_for_required_property_cannot_return_nullish, name) }
require(!result.isJsNullish()) { StringUtils.str(org.autojs.autojs6.R.string.error_the_transformer_for_required_property_cannot_return_nullish, name) }
return result!!
}
@@ -65,4 +65,4 @@ object ScriptableObjectExtensions {
return defaultValue
}
}
}

View File

@@ -1,7 +1,7 @@
package org.autojs.autojs.runtime
import android.os.SystemClock
import org.autojs.autojs.extension.NumberExtensions.jsString
import org.autojs.autojs.rhino.extension.NumberExtensions.jsString
import org.autojs.autojs.runtime.api.augment.console.Console
import java.util.concurrent.ConcurrentHashMap

View File

@@ -19,9 +19,9 @@ import org.autojs.autojs.core.image.capture.ScreenCaptureRequester
import org.autojs.autojs.core.looper.Loopers
import org.autojs.autojs.core.pref.Pref
import org.autojs.autojs.engine.ScriptEngineService
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.extension.ScriptableExtensions.deleteProp
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.deleteProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.lang.ThreadCompat
import org.autojs.autojs.pio.PFiles
import org.autojs.autojs.pio.UncheckedIOException

View File

@@ -5,7 +5,7 @@ import org.autojs.autojs.engine.JavaScriptEngine
import org.autojs.autojs.engine.ScriptEngine
import org.autojs.autojs.execution.ExecutionConfig
import org.autojs.autojs.execution.ScriptExecution
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.script.AutoFileSource
import org.autojs.autojs.script.JavaScriptFileSource

View File

@@ -34,7 +34,7 @@ import org.autojs.autojs.core.opencv.OpenCVHelper;
import org.autojs.autojs.core.pref.Language;
import org.autojs.autojs.core.pref.Pref;
import org.autojs.autojs.core.ui.inflater.util.Drawables;
import org.autojs.autojs.extension.AnyExtensions;
import org.autojs.autojs.rhino.extension.AnyExtensions;
import org.autojs.autojs.pio.UncheckedIOException;
import org.autojs.autojs.runtime.ScriptRuntime;
import org.autojs.autojs.runtime.api.ImageFeatureMatching.FeatureMatchingDescriptor;

View File

@@ -1,7 +1,7 @@
package org.autojs.autojs.runtime.api
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.util.RhinoUtils.callFunction
import org.autojs.autojs.util.RhinoUtils.coerceLongNumber

View File

@@ -5,11 +5,11 @@ import android.content.Context
import android.database.Cursor
import org.autojs.autojs.annotation.ScriptInterface
import org.autojs.autojs.core.database.Database
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.AnyExtensions.jsUnwrapped
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.extension.ArrayExtensions.toNativeObject
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.jsUnwrapped
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.MapExtensions.toNativeObject
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.util.RhinoUtils.coerceBoolean
import org.autojs.autojs.util.RhinoUtils.coerceString

View File

@@ -6,7 +6,7 @@ import android.view.View
import org.autojs.autojs.core.ui.inflater.DynamicLayoutInflater
import org.autojs.autojs.core.ui.inflater.ResourceParser
import org.autojs.autojs.core.ui.inflater.util.Drawables
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.ProxyObject
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.util.RhinoUtils.newNativeObject

View File

@@ -1,6 +1,6 @@
package org.autojs.autojs.runtime.api
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
object Util {

View File

@@ -2,12 +2,12 @@ package org.autojs.autojs.runtime.api.augment
import android.content.Context
import org.autojs.autojs.app.GlobalAppContext
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.ProxyObject
import org.autojs.autojs.rhino.ProxyObject.Companion.AUGMENTED_CUSTOM_TO_STRING_KEY
import org.autojs.autojs.rhino.ProxyObject.Companion.PROXY_GETTER_KEY
@@ -59,7 +59,7 @@ import org.mozilla.javascript.ScriptRuntime as RhinoScriptRuntime
*
* Created by SuperMonster003 on May 21, 2024.
*/
abstract class Augmentable(private val scriptRuntime: ScriptRuntime? = null) : FlexibleArray() {
abstract class Augmentable(private val scriptRuntime: ScriptRuntime? = null) : ArgumentGuards() {
private var mIsOriginalKeyName = false
@@ -549,7 +549,7 @@ abstract class Augmentable(private val scriptRuntime: ScriptRuntime? = null) : F
}?.call(message)
}.getOrNull()
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
// @Caution by SuperMonster003 on Oct 5, 2025.
// ! These constants are "bit flags", each value is a power of 2, with only one bit being 1 in binary.

View File

@@ -1,9 +1,9 @@
package org.autojs.autojs.runtime.api.augment
import org.autojs.autojs.extension.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.FlexibleArray.Companion.component2
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.ProxyObject
import org.autojs.autojs.rhino.ProxyObject.Companion.AUGMENTED_OBJECT_KEY
import org.autojs.autojs.runtime.ScriptRuntime

View File

@@ -12,15 +12,15 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.FlexibleArray.Companion.component2
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.extension.ScriptableExtensions.deleteProp
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.deleteProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.external.receiver.BaseBroadcastReceiver
import org.autojs.autojs.ipc.LayoutInspectEventBus
import org.autojs.autojs.runtime.ScriptRuntime
@@ -104,7 +104,7 @@ class App(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
::killDual.name to AS_GLOBAL,
)
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
private const val PROTOCOL_FILE = "file://"

View File

@@ -5,14 +5,14 @@ import android.content.pm.PackageManager
import android.provider.Settings
import android.provider.Settings.System
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
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.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.FlexibleArray.Companion.component2
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsString
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.ProxyObject
import org.autojs.autojs.rhino.ProxyObject.Companion.PROXY_GETTER_KEY
import org.autojs.autojs.runtime.ScriptRuntime
@@ -105,7 +105,7 @@ class Autojs(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRunti
})
}
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
@JvmStatic
@RhinoRuntimeFunctionInterface

View File

@@ -1,7 +1,7 @@
package org.autojs.autojs.runtime.api.augment.autojs
import org.autojs.autojs.annotation.RhinoSingletonFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.util.RhinoUtils.coerceBoolean
import org.autojs.autojs.util.RhinoUtils.coerceString

View File

@@ -9,12 +9,13 @@ import org.autojs.autojs.core.accessibility.AccessibilityTool
import org.autojs.autojs.core.accessibility.SimpleActionAutomator.Companion.AccessibilityEventCallback
import org.autojs.autojs.core.automator.AccessibilityEventWrapper
import org.autojs.autojs.core.automator.UiObject
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.FlexibleArray.Companion.component2
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.Invokable
@@ -111,7 +112,7 @@ class Auto(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime
return@ensureArgumentsAtMost UNDEFINED
}
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
val accessibilityTool by lazy { AccessibilityTool(globalContext) }

View File

@@ -11,13 +11,13 @@ import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.core.automator.UiObject
import org.autojs.autojs.core.automator.action.ActionTarget
import org.autojs.autojs.core.image.ImageWrapper
import org.autojs.autojs.extension.AnyExtensions.isJsArray
import org.autojs.autojs.extension.AnyExtensions.isJsFunction
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.isJsNumber
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsArray
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsFunction
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNumber
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.exception.ScriptException
@@ -76,7 +76,7 @@ class Automator(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
::splitScreen.name to AS_GLOBAL,
)
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
/**
* TypeScript Declarations:

View File

@@ -1,6 +1,6 @@
package org.autojs.autojs.runtime.api.augment.automator
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.util.RhinoUtils
import org.autojs.autojs.util.RhinoUtils.withRhinoContext

View File

@@ -2,10 +2,10 @@ package org.autojs.autojs.runtime.api.augment.barcode
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.core.image.ImageWrapper
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.WrappedBarcode
import org.autojs.autojs.runtime.api.augment.Augmentable

View File

@@ -2,7 +2,7 @@ package org.autojs.autojs.runtime.api.augment.barcode
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.core.image.ImageWrapper
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.WrappedBarcode
import org.autojs.autojs.runtime.api.augment.Augmentable

View File

@@ -2,7 +2,8 @@ package org.autojs.autojs.runtime.api.augment.base64
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoSingletonFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.NativeArrayExtensions.jsBytesToByteArray
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
import org.autojs.autojs.util.ArrayUtils
@@ -62,7 +63,7 @@ object Base64 : Augmentable() {
o.isJsNullish() -> throw WrappedIllegalArgumentException("Cannot convert o ($o) to byte[]")
o is String -> o.toByteArray(encoding)
o is ByteArray -> o
o is NativeArray -> ArrayUtils.jsBytesToByteArray(o)
o is NativeArray -> o.jsBytesToByteArray()
else -> toBytes(o.toString())
}

View File

@@ -3,9 +3,9 @@ package org.autojs.autojs.runtime.api.augment.canvas
import android.graphics.Bitmap
import org.autojs.autojs.core.graphics.ScriptCanvas
import org.autojs.autojs.core.image.ImageWrapper
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.FlexibleArray.Companion.component2
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.Constructable

View File

@@ -3,13 +3,13 @@ package org.autojs.autojs.runtime.api.augment.colors
import android.graphics.Color.BLACK
import org.autojs.autojs.annotation.RhinoFunctionObjectBody
import org.autojs.autojs.annotation.RhinoStandardFunctionInterface
import org.autojs.autojs.extension.ArrayExtensions.unshiftWith
import org.autojs.autojs.extension.FlexibleArray.Companion.ensureArgumentsIsEmpty
import org.autojs.autojs.extension.FlexibleArray.Companion.ensureArgumentsOnlyOne
import org.autojs.autojs.rhino.ArgumentGuards.Companion.ensureArgumentsIsEmpty
import org.autojs.autojs.rhino.ArgumentGuards.Companion.ensureArgumentsOnlyOne
import org.autojs.autojs.runtime.api.StringReadable
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.colors.Colors.parseRelativePercentage
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
import org.autojs.autojs.util.ArrayUtils.unshiftWith
import org.autojs.autojs.util.RhinoUtils
import org.autojs.autojs.util.RhinoUtils.NOT_CONSTRUCTABLE
import org.autojs.autojs.util.RhinoUtils.newBaseFunction

View File

@@ -12,16 +12,16 @@ import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoSingletonFunctionInterface
import org.autojs.autojs.core.image.ColorDetector
import org.autojs.autojs.core.image.ColorTable
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.AnyExtensions.jsSpecies
import org.autojs.autojs.extension.ArrayExtensions.jsArrayBrief
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.extension.ArrayExtensions.toNativeObject
import org.autojs.autojs.extension.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.FlexibleArray.Companion.component2
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.jsSpecies
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.extension.ArrayExtensions.jsArrayBrief
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.MapExtensions.toNativeObject
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.SimpleGetterProxy
import org.autojs.autojs.runtime.api.augment.jsox.Numberx

View File

@@ -7,14 +7,14 @@ import org.apache.log4j.LogManager
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.core.console.ConsoleImpl
import org.autojs.autojs.core.console.ConsoleImpl.Companion.DEFAULT_EXIT_ON_CLOSE_TIMEOUT
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.FlexibleArray.Companion.component2
import org.autojs.autojs.extension.ScriptableExtensions.hasProp
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.extension.ScriptableExtensions.hasProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.ProxyObject
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.AugmentableProxy
@@ -155,7 +155,7 @@ class Console(scriptRuntime: ScriptRuntime) : AugmentableProxy(scriptRuntime) {
}.prop(NativeError.STACK_TAG)
}
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
private const val FUNC_NAME_TRACE = "trace"

View File

@@ -2,7 +2,7 @@ package org.autojs.autojs.runtime.api.augment.continuation
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.project.ScriptConfig.Companion.FEATURE_CONTINUATION
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
@@ -28,7 +28,7 @@ class Continuation(private val scriptRuntime: ScriptRuntime) : Augmentable(scrip
// ::delay.name,
)
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
@JvmStatic
fun isEnabled(scriptRuntime: ScriptRuntime) = scriptRuntime.engines.myEngine().hasFeature(FEATURE_CONTINUATION)

View File

@@ -1,7 +1,7 @@
package org.autojs.autojs.runtime.api.augment.continuation
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.continuation.Continuation
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.util.RhinoUtils.UNDEFINED

View File

@@ -3,13 +3,13 @@
package org.autojs.autojs.runtime.api.augment.converter
import org.autojs.autojs.annotation.RhinoSingletonFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.isJsBoolean
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.isJsNumber
import org.autojs.autojs.extension.AnyExtensions.isJsObject
import org.autojs.autojs.extension.AnyExtensions.isJsString
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsBoolean
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNumber
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsObject
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsString
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.Invokable
import org.autojs.autojs.runtime.api.augment.converter.core.Bytes.AUTO

View File

@@ -2,9 +2,9 @@
package org.autojs.autojs.runtime.api.augment.converter.core
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.isJsNumber
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNumber
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.util.RhinoUtils.MAX_SAFE_INT_IEEE754_BD
import org.autojs.autojs.util.RhinoUtils.MIN_SAFE_INT_IEEE754_BD
import org.autojs.autojs.util.RhinoUtils.coerceBoolean

View File

@@ -4,11 +4,11 @@ import android.provider.Settings
import androidx.core.net.toUri
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.FlexibleArray.Companion.component2
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.ScreenMetrics
import org.autojs.autojs.runtime.api.augment.Augmentable
@@ -61,7 +61,7 @@ class Device(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
"density" to Supplier { ScreenMetrics.deviceScreenDensity },
)
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
const val KEY_POINTER_LOCATION = "pointer_location"

View File

@@ -13,19 +13,19 @@ import org.autojs.autojs.core.ui.dialog.JsDialog
import org.autojs.autojs.core.ui.dialog.JsDialogBuilder
import org.autojs.autojs.core.ui.nativeview.NativeView
import org.autojs.autojs.event.BackCompat.TAG_KEY_INSTALLED
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.isJsString
import org.autojs.autojs.extension.AnyExtensions.isJsXml
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.AnyExtensions.jsUnwrapped
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.extension.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.FlexibleArray.Companion.component2
import org.autojs.autojs.extension.FlexibleArray.Companion.component3
import org.autojs.autojs.extension.FlexibleArray.Companion.component4
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component3
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component4
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsString
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsXml
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.jsUnwrapped
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.colors.Colors
@@ -67,46 +67,30 @@ class Dialogs(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
companion object {
private const val CVT_DEFAULT = 0x0001
private const val CVT_DEFAULT_STRICT_BOOLEAN = 0x0002
private const val CVT_COLOR_INT = 0x0003
private enum class PropertyConverter {
COLOR_INT, BOOLEAN,
}
private val propertySetterMap = mapOf(
"title" to CVT_DEFAULT,
"titleColor" to CVT_COLOR_INT,
"buttonRippleColor" to CVT_COLOR_INT,
"icon" to CVT_DEFAULT,
"iconRes" to CVT_DEFAULT,
"content" to CVT_DEFAULT,
"contentColor" to CVT_COLOR_INT,
"contentColorRes" to CVT_DEFAULT,
"contentLineSpacing" to CVT_DEFAULT,
"items" to CVT_DEFAULT,
"itemsColor" to CVT_COLOR_INT,
"itemsColorRes" to CVT_DEFAULT,
"titleColor" to PropertyConverter.COLOR_INT,
"buttonRippleColor" to PropertyConverter.COLOR_INT,
"contentColor" to PropertyConverter.COLOR_INT,
"itemsColor" to PropertyConverter.COLOR_INT,
"positive" to "positiveText",
"positiveColor" to CVT_COLOR_INT,
"positiveColorRes" to CVT_DEFAULT,
"positiveColor" to PropertyConverter.COLOR_INT,
"neutral" to "neutralText",
"neutralColor" to CVT_COLOR_INT,
"neutralColorRes" to CVT_DEFAULT,
"neutralColor" to PropertyConverter.COLOR_INT,
"negative" to "negativeText",
"negativeColor" to CVT_COLOR_INT,
"negativeColorRes" to CVT_DEFAULT,
"linkColor" to CVT_COLOR_INT,
"linkColorRes" to CVT_DEFAULT,
"negativeColor" to PropertyConverter.COLOR_INT,
"linkColor" to PropertyConverter.COLOR_INT,
"bg" to "background",
"background" to "backgroundColor",
"bgColor" to "backgroundColor",
"backgroundColor" to CVT_COLOR_INT,
"backgroundColor" to PropertyConverter.COLOR_INT,
"bgColorRes" to "backgroundColorRes",
"backgroundColorRes" to CVT_DEFAULT,
"cancelable" to CVT_DEFAULT,
"canceledOnTouchOutside" to CVT_DEFAULT,
"autoDismiss" to CVT_DEFAULT,
"limitIconToDefaultSize" to CVT_DEFAULT_STRICT_BOOLEAN,
"alwaysCallSingleChoiceCallback" to CVT_DEFAULT_STRICT_BOOLEAN,
"alwaysCallMultiChoiceCallback" to CVT_DEFAULT_STRICT_BOOLEAN,
"limitIconToDefaultSize" to PropertyConverter.BOOLEAN,
"alwaysCallSingleChoiceCallback" to PropertyConverter.BOOLEAN,
"alwaysCallMultiChoiceCallback" to PropertyConverter.BOOLEAN,
)
private val presetLinkifyMasks = listOf("all", "emailAddresses", "mapAddresses", "phoneNumbers", "webUrls")
@@ -114,23 +98,27 @@ class Dialogs(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
private val presetAnimations = listOf("default", "activity", "dialog", "inputMethod", "toast", "translucent")
private val customJsPropertiesForBuild: Set<String> = setOf(
"preset",
"animation",
"background",
"checkBoxChecked",
"checkBoxPrompt",
"customView",
"dimAmount",
"inputHint",
"inputPrefill",
"items",
"progress",
"checkBoxPrompt",
"checkBoxChecked",
"customView",
"stubborn",
"theme",
"inputSingleLine",
"itemsSelectedIndex",
"itemsSelectedIndices",
"itemsSelectMode",
"keepScreenOn",
"linkify",
"onBackKey",
"onBackPressed",
"dimAmount",
"animation",
"keepScreenOn",
"inputSingleLine",
"preset",
"progress",
"stubborn",
"theme",
"wrapInScrollView",
)
@JvmStatic
@@ -480,16 +468,13 @@ class Dialogs(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
private fun applyDialogProperty(builder: JsDialogBuilder, name: String, value: Any?) {
when (val propertySetter = propertySetterMap[name]) {
CVT_DEFAULT -> invokeJavaMethod(builder, name, arrayOf(value))
CVT_DEFAULT_STRICT_BOOLEAN -> {
if (value == true) {
invokeJavaMethod(builder, name, emptyArray())
}
}
CVT_COLOR_INT -> {
PropertyConverter.COLOR_INT -> {
val colorInt = Colors.toIntRhino(value)
invokeJavaMethod(builder, name, arrayOf(colorInt))
}
PropertyConverter.BOOLEAN if coerceBoolean(value, false) -> {
invokeJavaMethod(builder, name, emptyArray())
}
is String -> when (propertySetter) {
in propertySetterMap -> {
applyDialogProperty(builder, propertySetter, value)

View File

@@ -5,12 +5,12 @@ import org.autojs.autojs.engine.JavaScriptEngine
import org.autojs.autojs.engine.ScriptEngine
import org.autojs.autojs.execution.ExecutionConfig
import org.autojs.autojs.execution.ScriptExecution
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.AnyExtensions.toRuntimePath
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.toRuntimePath
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.AsEmitter
import org.autojs.autojs.runtime.api.augment.Augmentable
@@ -58,7 +58,7 @@ class Engines(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRunt
}
}
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
@JvmStatic
fun emit(scriptRuntime: ScriptRuntime, eventName: String, vararg args: Any?) {

View File

@@ -3,12 +3,12 @@ package org.autojs.autojs.runtime.api.augment.events
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.core.eventloop.EventEmitter
import org.autojs.autojs.core.looper.MainThreadProxy
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.AnyExtensions.jsSpecies
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.extension.ScriptableExtensions.hasProp
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.jsSpecies
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.hasProp
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
@@ -31,7 +31,7 @@ class Events(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
::__asEmitter__.name to (READONLY or DONTENUM or PERMANENT),
)
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
@JvmStatic
@Suppress("FunctionName")

View File

@@ -1,8 +1,8 @@
package org.autojs.autojs.runtime.api.augment.files
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.pio.PFileInterface
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
@@ -22,7 +22,7 @@ class Files(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
::toFile.name,
)
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
@JvmStatic
@RhinoRuntimeFunctionInterface

View File

@@ -5,11 +5,11 @@ import android.view.ViewGroup
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
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsString
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.ProxyJavaObject
import org.autojs.autojs.rhino.ProxyObject.Companion.PROXY_GETTER_KEY
import org.autojs.autojs.rhino.ProxyObject.Companion.PROXY_OBJECT_KEY
@@ -45,7 +45,7 @@ class Floaty(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
::getClip.name,
)
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
@JvmStatic
@RhinoRuntimeFunctionInterface

View File

@@ -3,13 +3,13 @@
package org.autojs.autojs.runtime.api.augment.formatter
import org.autojs.autojs.annotation.RhinoSingletonFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.isJsBoolean
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.isJsNumber
import org.autojs.autojs.extension.AnyExtensions.isJsObject
import org.autojs.autojs.extension.AnyExtensions.isJsString
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsBoolean
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNumber
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsObject
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsString
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.Invokable
import org.autojs.autojs.runtime.api.augment.converter.core.Bytes.AUTO

View File

@@ -5,12 +5,12 @@ import io.github.g00fy2.versioncompare.Version
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.core.automator.UiObject
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.NumberExtensions.jsString
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.NumberExtensions.jsString
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.ScreenMetrics
import org.autojs.autojs.runtime.api.augment.Augmentable

View File

@@ -10,15 +10,15 @@ import okhttp3.Response
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.core.http.MutableOkHttp
import org.autojs.autojs.extension.AnyExtensions.isJsFunction
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.FlexibleArray.Companion.component2
import org.autojs.autojs.extension.FlexibleArray.Companion.component3
import org.autojs.autojs.extension.FlexibleArray.Companion.component4
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsFunction
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component3
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component4
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.Mime
import org.autojs.autojs.runtime.api.augment.Augmentable

View File

@@ -1,7 +1,7 @@
package org.autojs.autojs.runtime.api.augment.http
import org.autojs.autojs.annotation.RhinoStandardFunctionInterface
import org.autojs.autojs.extension.FlexibleArray.Companion.ensureArgumentsIsEmpty
import org.autojs.autojs.rhino.ArgumentGuards.Companion.ensureArgumentsIsEmpty
import org.autojs.autojs.runtime.api.StringReadable
import org.autojs.autojs.runtime.api.augment.converter.core.Bytes
import org.autojs.autojs.util.RhinoUtils

View File

@@ -4,10 +4,10 @@ import android.annotation.SuppressLint
import okhttp3.OkHttpClient
import okhttp3.Request
import org.autojs.autojs.core.http.MutableOkHttp
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.http.Http.Companion.DEFAULT_TIMEOUT
import org.autojs.autojs.runtime.api.augment.http.Http.Companion.KEY_CLIENT

View File

@@ -9,12 +9,12 @@ import okhttp3.RequestBody
import okhttp3.RequestBody.Companion.asRequestBody
import okhttp3.RequestBody.Companion.toRequestBody
import okio.BufferedSink
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.isJsNumber
import org.autojs.autojs.extension.AnyExtensions.isJsString
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.AnyExtensions.toRuntimePath
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNumber
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsString
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.toRuntimePath
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.pio.PFile
import org.autojs.autojs.pio.PFileInterface
import org.autojs.autojs.runtime.ScriptRuntime

View File

@@ -2,11 +2,11 @@ package org.autojs.autojs.runtime.api.augment.http
import okhttp3.ResponseBody
import org.autojs.autojs.annotation.RhinoStandardFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.toRuntimePath
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.FlexibleArray.Companion.component2
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.AnyExtensions.toRuntimePath
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.pio.PFile
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
@@ -83,7 +83,7 @@ class ResponseBodyNativeObject(
return lengthHint <= cacheThresholdBytes
}
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
@JvmStatic
@RhinoStandardFunctionInterface

View File

@@ -1,8 +1,8 @@
package org.autojs.autojs.runtime.api.augment.http
import okhttp3.Response
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.util.RhinoUtils.newNativeObject
import org.mozilla.javascript.NativeArray

View File

@@ -11,25 +11,25 @@ import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.core.image.ColorDetector
import org.autojs.autojs.core.image.ImageWrapper
import org.autojs.autojs.core.image.capture.ScreenCapturer
import org.autojs.autojs.extension.AnyExtensions.isJsArray
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.isJsNumber
import org.autojs.autojs.extension.AnyExtensions.isJsString
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.AnyExtensions.jsSpecies
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.extension.ArrayExtensions.toNativeObject
import org.autojs.autojs.extension.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.FlexibleArray.Companion.component2
import org.autojs.autojs.extension.FlexibleArray.Companion.component3
import org.autojs.autojs.extension.FlexibleArray.Companion.component4
import org.autojs.autojs.extension.FlexibleArray.Companion.component5
import org.autojs.autojs.extension.FlexibleArray.Companion.component6
import org.autojs.autojs.extension.FlexibleArray.Companion.component7
import org.autojs.autojs.extension.ScriptableExtensions.hasProp
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.extension.StringExtensions.isUri
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsArray
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNumber
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsString
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.jsSpecies
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component3
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component4
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component5
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component6
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component7
import org.autojs.autojs.rhino.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.MapExtensions.toNativeObject
import org.autojs.autojs.rhino.extension.ScriptableExtensions.hasProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.util.StringUtils.isUri
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.ImageFeatureMatching
import org.autojs.autojs.runtime.api.ImageSimilarity

View File

@@ -1,7 +1,7 @@
package org.autojs.autojs.runtime.api.augment.images
import org.autojs.autojs.core.image.TemplateMatching
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import kotlin.math.roundToInt
class MatchingResult(private val matchedList: List<TemplateMatching.Match>) {
@@ -14,12 +14,12 @@ class MatchingResult(private val matchedList: List<TemplateMatching.Match>) {
fun first() = matchedList.firstOrNull()
fun last() = matchedList.lastOrNull()
fun leftmost() = findMax(Companion.comparators["left"])
fun rightmost() = findMax(Companion.comparators["right"])
fun topmost() = findMax(Companion.comparators["top"])
fun bottommost() = findMax(Companion.comparators["bottom"])
fun best() = findMax(Companion.comparators["best"])
fun worst() = findMax(Companion.comparators["worst"])
fun leftmost() = findMax(comparators["left"])
fun rightmost() = findMax(comparators["right"])
fun topmost() = findMax(comparators["top"])
fun bottommost() = findMax(comparators["bottom"])
fun best() = findMax(comparators["best"])
fun worst() = findMax(comparators["worst"])
fun findMax(comparator: Comparator<TemplateMatching.Match>?): TemplateMatching.Match? {
return comparator?.let { matchedList.maxWithOrNull(it) }
@@ -33,7 +33,7 @@ class MatchingResult(private val matchedList: List<TemplateMatching.Match>) {
var comparator: ((TemplateMatching.Match, TemplateMatching.Match) -> Int)? = null
direction.split("-").forEach { s ->
val tmpComparator = Companion.comparators[s] ?: throw Exception("Unknown direction '$s' in '$direction'")
val tmpComparator = comparators[s] ?: throw Exception("Unknown direction '$s' in '$direction'")
comparator = when (comparator) {
null -> tmpComparator
else -> { l, r ->

View File

@@ -3,13 +3,15 @@ package org.autojs.autojs.runtime.api.augment.jsox
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.annotation.RhinoRuntimeFunctionWithThisObjInterface
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.extension.ArrayExtensions.unshiftWith
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.util.Util.ensureArrayTypeRhino
import org.autojs.autojs.util.ArrayUtils.unshiftWith
import org.autojs.autojs.util.RhinoUtils.coerceArray
import org.autojs.autojs.util.RhinoUtils.coerceFunction
import org.autojs.autojs.util.RhinoUtils.undefined
@@ -140,7 +142,7 @@ class Arrayx(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRunti
}
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
@JvmStatic
@RhinoRuntimeFunctionInterface

View File

@@ -1,7 +1,7 @@
package org.autojs.autojs.runtime.api.augment.jsox
import org.autojs.autojs.AutoJs
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.Augmentable.Companion.refineAttributes

View File

@@ -2,8 +2,8 @@ package org.autojs.autojs.runtime.api.augment.jsox
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.jsSpecies
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.rhino.extension.AnyExtensions.jsSpecies
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.Invokable
@@ -26,7 +26,7 @@ class Jsox(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime
override fun invoke(vararg args: Any?): Undefined = extendRhinoWithRuntime(scriptRuntime, *args)
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
private val presetModules = listOf("Mathx", "Numberx", "Arrayx")

View File

@@ -2,10 +2,10 @@ package org.autojs.autojs.runtime.api.augment.jsox
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoSingletonFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.isJsArray
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsArray
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
@@ -65,7 +65,7 @@ class Mathx(private val scriptRuntime: ScriptRuntime) : Augmentable(), JsBuildIn
extendBuildInObjectInternal(scriptRuntime, this, "Math")
}
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
@Deprecated("Deprecated in Java", ReplaceWith("randomInt"))
@JvmStatic

View File

@@ -3,21 +3,24 @@ package org.autojs.autojs.runtime.api.augment.jsox
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.annotation.RhinoRuntimeFunctionWithThisObjInterface
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.extension.ArrayExtensions.unshiftWith
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.NumberExtensions.jsString
import org.autojs.autojs.extension.StringExtensions.padEnd
import org.autojs.autojs.extension.StringExtensions.padStart
import org.autojs.autojs.extension.StringExtensions.toDoubleOrNaN
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component3
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.NumberExtensions.jsString
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
import org.autojs.autojs.runtime.exception.ShouldNeverHappenException
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
import org.autojs.autojs.util.ArrayUtils.unshiftWith
import org.autojs.autojs.util.RhinoUtils
import org.autojs.autojs.util.RhinoUtils.toFunctionName
import org.autojs.autojs.util.StringUtils.padEnd
import org.autojs.autojs.util.StringUtils.padStart
import org.autojs.autojs.util.StringUtils.toDoubleOrNaN
import org.mozilla.javascript.Context
import org.mozilla.javascript.NativeArray
import org.mozilla.javascript.Scriptable
@@ -107,7 +110,7 @@ class Numberx(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRunt
}
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
const val DEFAULT_PADDING_STRING = "0"

View File

@@ -2,11 +2,11 @@ package org.autojs.autojs.runtime.api.augment.mediainfo
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoStandardFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.FlexibleArray.Companion.ensureArgumentsIsEmpty
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.extension.ScriptableExtensions.getProp
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.ArgumentGuards.Companion.ensureArgumentsIsEmpty
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.getProp
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.StringReadable
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException

View File

@@ -7,10 +7,10 @@ import android.app.NotificationManager
import android.os.Build
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.console.Console

View File

@@ -6,10 +6,10 @@ import androidx.core.app.NotificationCompat.BigTextStyle
import androidx.core.app.NotificationCompat.Builder
import androidx.core.app.NotificationManagerCompat
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.AppUtils
import org.autojs.autojs.runtime.api.augment.Augmentable

View File

@@ -2,17 +2,17 @@ package org.autojs.autojs.runtime.api.augment.ocr
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.core.image.ImageWrapper
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.AnyExtensions.jsSpecies
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.extension.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.FlexibleArray.Companion.component2
import org.autojs.autojs.extension.FlexibleArray.Companion.component3
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component3
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsString
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.jsSpecies
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.OcrResult
import org.autojs.autojs.runtime.api.augment.Augmentable

View File

@@ -6,7 +6,7 @@ import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.apkbuilder.ApkBuilder
import org.autojs.autojs.core.image.ImageWrapper
import org.autojs.autojs.core.plugin.ocr.PaddleOcrPluginHost
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.OcrResult
import org.autojs.autojs.runtime.api.augment.Augmentable

View File

@@ -4,7 +4,7 @@ import com.zqc.opencc.android.lib.ChineseConverter
import com.zqc.opencc.android.lib.ConversionType
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoSingletonFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.Invokable
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException

View File

@@ -4,9 +4,12 @@ import com.huaban.analysis.jieba.CharsDictionaryDatabase
import com.huaban.analysis.jieba.JiebaSegmenter
import com.huaban.analysis.jieba.PhrasesDictionaryDatabase
import org.autojs.autojs.annotation.RhinoSingletonFunctionInterface
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component3
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.Invokable
import org.autojs.autojs.runtime.api.augment.pinyin.PinyinCore.DefaultOptions

View File

@@ -1,8 +1,8 @@
package org.autojs.autojs.runtime.api.augment.pinyin
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsUnwrapped
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsUnwrapped
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.util.RhinoUtils.coerceBoolean
import org.autojs.autojs.util.RhinoUtils.coerceString
import org.autojs.autojs.util.RhinoUtils.newNativeObject

View File

@@ -14,7 +14,7 @@ import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType.WITH_U_AND_COLON
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType.WITH_U_UNICODE
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType.WITH_V
import org.autojs.autojs.annotation.RhinoSingletonFunctionInterface
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.Invokable
import org.autojs.autojs.util.RhinoUtils.coerceString

View File

@@ -1,7 +1,7 @@
package org.autojs.autojs.runtime.api.augment.plugins
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.Invokable
@@ -23,7 +23,7 @@ class Plugins(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRunt
load(scriptRuntime, arrayOf(o))
}
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
@JvmStatic
@RhinoRuntimeFunctionInterface

View File

@@ -4,12 +4,12 @@ package org.autojs.autojs.runtime.api.augment.s13n
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoSingletonFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.isJsObject
import org.autojs.autojs.extension.AnyExtensions.isJsString
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsObject
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsString
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.colors.Colors
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException

View File

@@ -3,11 +3,11 @@ package org.autojs.autojs.runtime.api.augment.selector
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.defineProp
import org.autojs.autojs.extension.ScriptableExtensions.hasProp
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsUnwrapped
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.hasProp
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.Invokable
@@ -142,7 +142,7 @@ class Selector(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRun
}
@Suppress("SameParameterValue")
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
private val scopeAugmentMethodBlacklist = listOf(
UiSelector::plus.name,

View File

@@ -3,9 +3,9 @@ package org.autojs.autojs.runtime.api.augment.shell
import android.util.Log
import android.view.KeyEvent
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.AbstractShell
import org.autojs.autojs.runtime.api.augment.Augmentable
@@ -58,7 +58,7 @@ class Shell(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntim
override fun invoke(vararg args: Any?): AbstractShell.Result = execCommand(scriptRuntime, args)
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
private val TAG = Shell::class.java.simpleName

View File

@@ -1,7 +1,7 @@
package org.autojs.autojs.runtime.api.augment.shizuku
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.rhino.extension.ScriptableExtensions.defineProp
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.AbstractShell
import org.autojs.autojs.runtime.api.WrappedShizuku

View File

@@ -3,11 +3,11 @@ package org.autojs.autojs.runtime.api.augment.sqlite
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.core.database.Database
import org.autojs.autojs.core.database.Database.DatabaseCallback
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.AnyExtensions.jsSanitize
import org.autojs.autojs.extension.AnyExtensions.jsTryToJava
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.jsSanitize
import org.autojs.autojs.rhino.extension.AnyExtensions.jsTryToJava
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.SQLite.Companion.DEFAULT_READ_ONLY
import org.autojs.autojs.runtime.api.SQLite.Companion.DEFAULT_VERSION

View File

@@ -2,9 +2,9 @@ package org.autojs.autojs.runtime.api.augment.storages
import org.autojs.autojs.annotation.RhinoStandardFunctionInterface
import org.autojs.autojs.core.storage.LocalStorage
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.runtime.api.StringReadable
import org.autojs.autojs.util.RhinoUtils
import org.autojs.autojs.util.RhinoUtils.UNDEFINED
@@ -45,7 +45,7 @@ class StorageNativeObject(@JvmField val name: String) : NativeObject(), StringRe
override fun toStringReadable() = "Storage { name: $name, size: ${storage.size()} }"
@Suppress("UNUSED_PARAMETER")
internal object Getter : FlexibleArray() {
internal object Getter : ArgumentGuards() {
private val className = StorageNativeObject::class.java.simpleName

View File

@@ -4,8 +4,8 @@ import android.content.Context.MODE_PRIVATE
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoSingletonFunctionInterface
import org.autojs.autojs.core.storage.LocalStorage
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
import org.mozilla.javascript.Context

View File

@@ -1,9 +1,9 @@
package org.autojs.autojs.runtime.api.augment.sysprops
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.ArrayExtensions.toNativeObject
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.MapExtensions.toNativeObject
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.Invokable

View File

@@ -3,15 +3,15 @@ package org.autojs.autojs.runtime.api.augment.tasks
import org.autojs.autojs.annotation.RhinoFunctionBody
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.execution.ExecutionConfig
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.AnyExtensions.toRuntimePath
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.ScriptableExtensions.prop
import org.autojs.autojs.extension.ScriptableObjectExtensions.acquire
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.extension.AnyExtensions.toRuntimePath
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.extension.ScriptableExtensions.prop
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.acquire
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.external.receiver.DynamicBroadcastReceivers
import org.autojs.autojs.rhino.extension.IterableExtensions.toNativeArray
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.api.augment.threads.Threads
@@ -61,7 +61,7 @@ class Tasks(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
::daysToTimeFlag.name,
)
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
private val daysOfWeekFlatList: List<String> = listOf(
"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday",

View File

@@ -2,9 +2,9 @@ package org.autojs.autojs.runtime.api.augment.threads
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.core.looper.TimerThread
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.rhino.extension.AnyExtensions.jsBrief
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.extension.ScriptableObjectExtensions.inquire
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.runtime.api.augment.Augmentable
import org.autojs.autojs.runtime.exception.ScriptInterruptedException
@@ -35,7 +35,7 @@ class Threads(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
::sync.name,
)
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
@JvmStatic
@RhinoRuntimeFunctionInterface

View File

@@ -1,10 +1,10 @@
package org.autojs.autojs.runtime.api.augment.threads
import org.autojs.autojs.annotation.RhinoStandardFunctionInterface
import org.autojs.autojs.extension.FlexibleArray
import org.autojs.autojs.extension.FlexibleArray.Companion.component1
import org.autojs.autojs.extension.FlexibleArray.Companion.component2
import org.autojs.autojs.extension.FlexibleArray.Companion.component3
import org.autojs.autojs.rhino.ArgumentGuards
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component1
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component2
import org.autojs.autojs.rhino.ArgumentGuards.Companion.component3
import org.autojs.autojs.util.RhinoUtils
import org.autojs.autojs.util.RhinoUtils.UNDEFINED
import org.autojs.autojs.util.RhinoUtils.coerceLongNumber
@@ -75,7 +75,7 @@ class VolatileDisposeNativeObject : NativeObject() {
RuntimeException(e)
}
companion object : FlexibleArray() {
companion object : ArgumentGuards() {
@JvmStatic
@RhinoStandardFunctionInterface

View File

@@ -1,6 +1,6 @@
package org.autojs.autojs.runtime.api.augment.timers
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.rhino.extension.AnyExtensions.isJsNullish
import org.autojs.autojs.runtime.ScriptRuntime
import org.autojs.autojs.util.RhinoUtils
import org.mozilla.javascript.BaseFunction

Some files were not shown because too many files have changed in this diff Show More