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,9 +123,12 @@ 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) {
int mode = ((JavaScriptSource) source).getExecutionMode();
if ((mode & JavaScriptSource.EXECUTION_MODE_UI) != 0) {
return ScriptExecuteActivity.execute(mContext, mScriptEngineManager, task); return ScriptExecuteActivity.execute(mContext, mScriptEngineManager, task);
} else { }
}
RunnableScriptExecution r = new RunnableScriptExecution(mScriptEngineManager, task); RunnableScriptExecution r = new RunnableScriptExecution(mScriptEngineManager, task);
if (task.getConfig().runInNewThread) { if (task.getConfig().runInNewThread) {
new ThreadCompat(r).start(); new ThreadCompat(r).start();
@@ -134,12 +137,6 @@ public class ScriptEngineService {
} }
return r; return r;
} }
}
private boolean isUiMode(JavaScriptSource source) {
int mode = source.getExecutionMode();
return (mode & JavaScriptSource.EXECUTION_MODE_UI) != 0;
}
public ScriptExecution execute(ScriptSource source, ScriptExecutionListener listener, ExecutionConfig config) { public ScriptExecution execute(ScriptSource source, ScriptExecutionListener listener, ExecutionConfig config) {
return execute(new ScriptExecutionTask(source, listener, config)); return execute(new ScriptExecutionTask(source, listener, config));

View File

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

View File

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