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