add: LICENSE, ui mode

This commit is contained in:
hyb1996
2017-02-05 20:57:04 +08:00
parent 407066027e
commit 13142d14a7
52 changed files with 732 additions and 215 deletions

View File

@@ -1,10 +1,15 @@
package com.stardust.scriptdroid.droid;
import android.app.Activity;
import android.content.DialogInterface;
import com.afollestad.materialdialogs.MaterialDialog;
import com.stardust.scriptdroid.App;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.droid.runtime.DroidRuntime;
import com.stardust.scriptdroid.droid.script.DuktapeJavaScriptEngine;
import com.stardust.scriptdroid.droid.script.JavaScriptEngine;
import com.stardust.scriptdroid.droid.script.ScriptExecuteActivity;
import com.stardust.scriptdroid.file.FileUtils;
import java.io.File;
@@ -16,12 +21,14 @@ import java.io.FileNotFoundException;
public class Droid {
public static final String UI = "\"ui\";";
public interface OnRunFinishedListener {
void onRunFinished(Object result, Exception e);
}
private static final DroidRuntime RUNTIME = DroidRuntime.getRuntime();
private static final JavaScriptEngine JAVA_SCRIPT_ENGINE = new DuktapeJavaScriptEngine(RUNTIME);
public static final JavaScriptEngine JAVA_SCRIPT_ENGINE = new DuktapeJavaScriptEngine(RUNTIME);
private static final OnRunFinishedListener DEFAULT_LISTENER = new OnRunFinishedListener() {
@Override
public void onRunFinished(Object result, Exception e) {
@@ -33,7 +40,6 @@ public class Droid {
private static Droid instance = new Droid();
protected Droid() {
}
public static Droid getInstance() {
@@ -59,8 +65,13 @@ public class Droid {
}
public void runScript(final String script, OnRunFinishedListener listener, RunningConfig config) {
listener = listener == null ? DEFAULT_LISTENER : listener;
if (config.runInNewThread) {
new Thread(new RunScriptRunnable(script, listener, config)).start();
if (script.startsWith(UI)) {
ScriptExecuteActivity.runScript(script, listener, config);
} else {
new Thread(new RunScriptRunnable(script, listener, config)).start();
}
} else {
new RunScriptRunnable(script, listener, config).run();
}
@@ -72,11 +83,6 @@ public class Droid {
return JAVA_SCRIPT_ENGINE.stopAll();
}
public void ensureNotStopped() {
JAVA_SCRIPT_ENGINE.ensureNotStopped();
}
private void checkFile(File file) {
if (file == null) {
throw new NullPointerException("file = null");
@@ -95,8 +101,8 @@ public class Droid {
private final String mScript;
private OnRunFinishedListener mOnRunFinishedListener;
public RunScriptRunnable(String script, OnRunFinishedListener listener, RunningConfig config) {
mOnRunFinishedListener = listener == null ? DEFAULT_LISTENER : listener;
RunScriptRunnable(String script, OnRunFinishedListener listener, RunningConfig config) {
mOnRunFinishedListener = listener;
mScript = script;
}
@@ -108,5 +114,10 @@ public class Droid {
mOnRunFinishedListener.onRunFinished(null, e);
}
}
public RunScriptRunnable setActivity(Activity a) {
JAVA_SCRIPT_ENGINE.set("activity", Activity.class, a);
return this;
}
}
}