diff --git a/autojs/src/main/AndroidManifest.xml b/autojs/src/main/AndroidManifest.xml
index 2475da504..fa2e72b4b 100644
--- a/autojs/src/main/AndroidManifest.xml
+++ b/autojs/src/main/AndroidManifest.xml
@@ -11,6 +11,8 @@
+
+
diff --git a/autojs/src/main/assets/modules/__images__.js b/autojs/src/main/assets/modules/__images__.js
index d2a2e3db7..be6de96ad 100644
--- a/autojs/src/main/assets/modules/__images__.js
+++ b/autojs/src/main/assets/modules/__images__.js
@@ -13,7 +13,7 @@ module.exports = function (runtime, scope) {
if (Array.isArray(list)) {
this.matches = list;
} else {
- this.matches = runtime.bridges.bridges.toArray(list);
+ this.matches = runtime.bridges.toArray(list);
}
this.__defineGetter__("points", () => {
if (typeof (this.__points__) == 'undefined') {
diff --git a/autojs/src/main/java/com/stardust/autojs/AutoJs.java b/autojs/src/main/java/com/stardust/autojs/AutoJs.java
index 5d9592418..0dca35c7f 100644
--- a/autojs/src/main/java/com/stardust/autojs/AutoJs.java
+++ b/autojs/src/main/java/com/stardust/autojs/AutoJs.java
@@ -22,7 +22,7 @@
import com.stardust.autojs.engine.LoopBasedJavaScriptEngine;
import com.stardust.autojs.engine.RootAutomatorEngine;
import com.stardust.autojs.engine.ScriptEngineManager;
-import com.stardust.autojs.rhino.InterruptibleAndroidContextFactory;
+import com.stardust.autojs.rhino.AndroidContextFactory;
import com.stardust.autojs.runtime.ScriptRuntime;
import com.stardust.autojs.runtime.accessibility.AccessibilityConfig;
import com.stardust.autojs.runtime.api.AppUtils;
@@ -133,7 +133,7 @@ protected void initScriptEngineManager() {
}
protected void initContextFactory() {
- ContextFactory.initGlobal(new InterruptibleAndroidContextFactory(new File(mContext.getCacheDir(), "classes")));
+ ContextFactory.initGlobal(new AndroidContextFactory(new File(mContext.getCacheDir(), "classes")));
}
protected ScriptRuntime createRuntime() {
diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/nativeview/NativeView.java b/autojs/src/main/java/com/stardust/autojs/core/ui/nativeview/NativeView.java
index acd822439..8a10bba31 100644
--- a/autojs/src/main/java/com/stardust/autojs/core/ui/nativeview/NativeView.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/nativeview/NativeView.java
@@ -1,17 +1,14 @@
package com.stardust.autojs.core.ui.nativeview;
-import android.graphics.PorterDuff;
import android.view.View;
-import android.widget.Button;
import com.stardust.autojs.core.ui.JsViewHelper;
import com.stardust.autojs.core.ui.ViewExtras;
import com.stardust.autojs.core.ui.attribute.ViewAttributes;
import com.stardust.autojs.rhino.NativeJavaObjectWithPrototype;
+import com.stardust.autojs.runtime.ScriptRuntime;
-import org.mozilla.javascript.NativeJavaObject;
import org.mozilla.javascript.NativeObject;
-import org.mozilla.javascript.ScriptRuntime;
import org.mozilla.javascript.Scriptable;
public class NativeView extends NativeJavaObjectWithPrototype {
@@ -45,7 +42,7 @@ public LongClickEvent(View view) {
private final View mView;
private final ViewPrototype mViewPrototype;
- public NativeView(Scriptable scope, View view, Class> staticType, com.stardust.autojs.runtime.ScriptRuntime runtime) {
+ public NativeView(Scriptable scope, View view, Class> staticType, ScriptRuntime runtime) {
super(scope, view, staticType);
mViewAttributes = ViewExtras.getViewAttributes(view, runtime.ui.getResourceParser());
mView = view;
diff --git a/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.kt b/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.kt
index 51dfa0a0e..5fcd7345d 100644
--- a/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.kt
+++ b/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.kt
@@ -7,18 +7,19 @@ import com.stardust.autojs.engine.module.AssetAndUrlModuleSourceProvider
import com.stardust.autojs.engine.module.ScopeRequire
import com.stardust.autojs.execution.ExecutionConfig
import com.stardust.autojs.project.ScriptConfig
+import com.stardust.autojs.rhino.AndroidContextFactory
import com.stardust.autojs.rhino.RhinoAndroidHelper
import com.stardust.autojs.rhino.TopLevelScope
import com.stardust.autojs.runtime.ScriptRuntime
import com.stardust.autojs.script.JavaScriptSource
-import com.stardust.automator.UiObjectCollection
import com.stardust.pio.UncheckedIOException
-import org.mozilla.javascript.*
+import org.mozilla.javascript.Context
+import org.mozilla.javascript.Script
+import org.mozilla.javascript.Scriptable
+import org.mozilla.javascript.ScriptableObject
import org.mozilla.javascript.commonjs.module.provider.SoftCachingModuleScriptProvider
import java.io.IOException
import java.io.InputStreamReader
-import java.io.Reader
-import java.util.*
import java.util.concurrent.ConcurrentHashMap
/**
@@ -28,29 +29,26 @@ import java.util.concurrent.ConcurrentHashMap
open class RhinoJavaScriptEngine(private val mAndroidContext: android.content.Context) :
JavaScriptEngine() {
- val context: Context
- private val mScriptable: TopLevelScope
+ val context: Context = enterContext()
+ private val mScriptable: TopLevelScope = createScope(this.context)
lateinit var thread: Thread
private set
- private val initScript: Script
- get() {
- return sInitScript ?: try {
- val reader = InputStreamReader(mAndroidContext.assets.open("init.js"))
- val script = context.compileReader(reader, SOURCE_NAME_INIT, 1, null)
- sInitScript = script
- script
- } catch (e: IOException) {
- throw UncheckedIOException(e)
- }
+ private val initScript: Script by lazy