fix: mode 'auto' not working

This commit is contained in:
hyb1996
2017-08-13 13:22:10 +08:00
parent 8c50bfdcaf
commit 7b4629aa1d
3 changed files with 23 additions and 15 deletions

View File

@@ -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) {

View File

@@ -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;

View File

@@ -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);