fix: mode 'auto' not working
This commit is contained in:
@@ -123,22 +123,19 @@ public class ScriptEngineService {
|
|||||||
task.setExecutionListener(mScriptExecutionObserver);
|
task.setExecutionListener(mScriptExecutionObserver);
|
||||||
}
|
}
|
||||||
ScriptSource source = task.getSource();
|
ScriptSource source = task.getSource();
|
||||||
if (source instanceof JavaScriptSource && isUiMode((JavaScriptSource) source)) {
|
if (source instanceof JavaScriptSource) {
|
||||||
return ScriptExecuteActivity.execute(mContext, mScriptEngineManager, task);
|
int mode = ((JavaScriptSource) source).getExecutionMode();
|
||||||
} else {
|
if ((mode & JavaScriptSource.EXECUTION_MODE_UI) != 0) {
|
||||||
RunnableScriptExecution r = new RunnableScriptExecution(mScriptEngineManager, task);
|
return ScriptExecuteActivity.execute(mContext, mScriptEngineManager, task);
|
||||||
if (task.getConfig().runInNewThread) {
|
|
||||||
new ThreadCompat(r).start();
|
|
||||||
} else {
|
|
||||||
r.run();
|
|
||||||
}
|
}
|
||||||
return r;
|
|
||||||
}
|
}
|
||||||
}
|
RunnableScriptExecution r = new RunnableScriptExecution(mScriptEngineManager, task);
|
||||||
|
if (task.getConfig().runInNewThread) {
|
||||||
private boolean isUiMode(JavaScriptSource source) {
|
new ThreadCompat(r).start();
|
||||||
int mode = source.getExecutionMode();
|
} else {
|
||||||
return (mode & JavaScriptSource.EXECUTION_MODE_UI) != 0;
|
r.run();
|
||||||
|
}
|
||||||
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ScriptExecution execute(ScriptSource source, ScriptExecutionListener listener, ExecutionConfig config) {
|
public ScriptExecution execute(ScriptSource source, ScriptExecutionListener listener, ExecutionConfig config) {
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.stardust.autojs.engine;
|
package com.stardust.autojs.engine;
|
||||||
|
|
||||||
|
import android.support.annotation.CallSuper;
|
||||||
|
|
||||||
import com.stardust.autojs.execution.ScriptExecution;
|
import com.stardust.autojs.execution.ScriptExecution;
|
||||||
import com.stardust.autojs.runtime.ScriptRuntime;
|
import com.stardust.autojs.runtime.ScriptRuntime;
|
||||||
import com.stardust.autojs.script.JavaScriptSource;
|
import com.stardust.autojs.script.JavaScriptSource;
|
||||||
@@ -11,6 +13,15 @@ import com.stardust.autojs.script.JavaScriptSource;
|
|||||||
public abstract class JavaScriptEngine extends ScriptEngine.AbstractScriptEngine<JavaScriptSource> {
|
public abstract class JavaScriptEngine extends ScriptEngine.AbstractScriptEngine<JavaScriptSource> {
|
||||||
private ScriptRuntime mRuntime;
|
private ScriptRuntime mRuntime;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object execute(JavaScriptSource scriptSource) {
|
||||||
|
if ((scriptSource.getExecutionMode() & JavaScriptSource.EXECUTION_MODE_AUTO) != 0) {
|
||||||
|
getRuntime().ensureAccessibilityServiceEnabled();
|
||||||
|
}
|
||||||
|
return doExecution(scriptSource);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract Object doExecution(JavaScriptSource scriptSource);
|
||||||
|
|
||||||
public ScriptRuntime getRuntime() {
|
public ScriptRuntime getRuntime() {
|
||||||
return mRuntime;
|
return mRuntime;
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public class RhinoJavaScriptEngine extends JavaScriptEngine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object execute(JavaScriptSource source) {
|
public Object doExecution(JavaScriptSource source) {
|
||||||
Reader reader = source.getNonNullScriptReader();
|
Reader reader = source.getNonNullScriptReader();
|
||||||
try {
|
try {
|
||||||
reader = preprocess(reader);
|
reader = preprocess(reader);
|
||||||
|
|||||||
Reference in New Issue
Block a user