Rename and refactor autojs to support future developing of other script language
This commit is contained in:
@@ -55,11 +55,11 @@ android {
|
||||
}
|
||||
dexcount {
|
||||
format = "list"
|
||||
includeClasses = false
|
||||
includeClasses = true
|
||||
includeFieldCount = true
|
||||
includeTotalMethodCount = false
|
||||
orderByMethodCount = false
|
||||
verbose = false
|
||||
includeTotalMethodCount = true
|
||||
orderByMethodCount = true
|
||||
verbose = true
|
||||
maxTreeDepth = Integer.MAX_VALUE
|
||||
teamCityIntegration = false
|
||||
enableForInstantRun = false
|
||||
|
||||
@@ -7,14 +7,18 @@ import android.support.annotation.Nullable;
|
||||
import com.stardust.autojs.ScriptEngineService;
|
||||
import com.stardust.autojs.ScriptEngineServiceBuilder;
|
||||
import com.stardust.autojs.engine.NodeJsJavaScriptEngineManager;
|
||||
import com.stardust.autojs.engine.ScriptEngineManager;
|
||||
import com.stardust.autojs.runtime.*;
|
||||
import com.stardust.automator.AccessibilityEventCommandHost;
|
||||
import com.stardust.automator.simple_action.SimpleActionPerformHost;
|
||||
import com.stardust.pio.PFile;
|
||||
import com.stardust.pio.UncheckedIOException;
|
||||
import com.stardust.scriptdroid.App;
|
||||
import com.stardust.scriptdroid.Pref;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.script.StorageScriptProvider;
|
||||
import com.stardust.scriptdroid.ui.console.StardustConsole;
|
||||
import com.stardust.util.AssetsCache;
|
||||
import com.stardust.util.Supplier;
|
||||
import com.stardust.util.UiHandler;
|
||||
import com.stardust.view.accessibility.AccessibilityInfoProvider;
|
||||
@@ -25,6 +29,8 @@ import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
||||
import com.stardust.scriptdroid.ui.console.JraskaConsole;
|
||||
import com.stardust.view.accessibility.AccessibilityServiceUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/4/2.
|
||||
@@ -33,6 +39,7 @@ import com.stardust.view.accessibility.AccessibilityServiceUtils;
|
||||
public class AutoJs implements AccessibilityBridge {
|
||||
|
||||
private static AutoJs instance;
|
||||
private static final String INIT_SCRIPT_PATH = "js/autojs_init.js";
|
||||
|
||||
public static AutoJs getInstance() {
|
||||
return instance;
|
||||
@@ -54,8 +61,7 @@ public class AutoJs implements AccessibilityBridge {
|
||||
private AutoJs(final Context context) {
|
||||
mUiHandler = new UiHandler(context);
|
||||
mAccessibilityInfoProvider = new AccessibilityInfoProvider(context.getPackageManager());
|
||||
NodeJsJavaScriptEngineManager manager = new NodeJsJavaScriptEngineManager(context);
|
||||
manager.setRequirePath(StorageScriptProvider.DEFAULT_DIRECTORY_PATH);
|
||||
ScriptEngineManager manager = createScriptEngineManager(context);
|
||||
mScriptEngineService = new ScriptEngineServiceBuilder()
|
||||
.uiHandler(mUiHandler)
|
||||
.globalConsole(new JraskaConsole())
|
||||
@@ -72,6 +78,17 @@ public class AutoJs implements AccessibilityBridge {
|
||||
mScriptEngineService.registerGlobalScriptExecutionListener(new ScriptExecutionGlobalListener());
|
||||
}
|
||||
|
||||
private NodeJsJavaScriptEngineManager createScriptEngineManager(Context context) {
|
||||
NodeJsJavaScriptEngineManager manager = new NodeJsJavaScriptEngineManager(context);
|
||||
manager.setRequirePath(StorageScriptProvider.DEFAULT_DIRECTORY_PATH);
|
||||
try {
|
||||
manager.setInitScript(PFile.read(context.getAssets().open(INIT_SCRIPT_PATH)));
|
||||
} catch (IOException e) {
|
||||
throw new UncheckedIOException(e);
|
||||
}
|
||||
return manager;
|
||||
}
|
||||
|
||||
private void addAccessibilityServiceDelegates() {
|
||||
AccessibilityWatchDogService.addDelegate(100, mAccessibilityInfoProvider);
|
||||
AccessibilityWatchDogService.addDelegate(300, mAccessibilityActionRecorder);
|
||||
|
||||
@@ -6,10 +6,9 @@ import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
||||
import com.stardust.scriptdroid.script.PathChecker;
|
||||
import com.stardust.autojs.script.FileScriptSource;
|
||||
import com.stardust.autojs.script.ScriptSourceWithInit;
|
||||
import com.stardust.autojs.script.SequenceScriptSource;
|
||||
import com.stardust.autojs.script.ScriptSource;
|
||||
import com.stardust.autojs.script.StringScriptSource;
|
||||
import com.stardust.scriptdroid.external.CommonUtils;
|
||||
@@ -41,7 +40,8 @@ public class RunIntentActivity extends Activity {
|
||||
if (path == null && script != null) {
|
||||
source = new StringScriptSource(script);
|
||||
} else if (path != null && new PathChecker(this).checkAndToastError(path)) {
|
||||
source = new ScriptSourceWithInit(new StringScriptSource(script), new FileScriptSource(path));
|
||||
ScriptSource fileScriptSource = new FileScriptSource(path);
|
||||
source = new SequenceScriptSource(fileScriptSource.getName(), new StringScriptSource(script), fileScriptSource);
|
||||
}
|
||||
if (source != null) {
|
||||
Scripts.run(source);
|
||||
|
||||
@@ -10,7 +10,7 @@ import com.stardust.autojs.execution.SimpleScriptExecutionListener;
|
||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
||||
import com.stardust.autojs.script.FileScriptSource;
|
||||
import com.stardust.autojs.script.ScriptSource;
|
||||
import com.stardust.autojs.script.ScriptSourceWithInit;
|
||||
import com.stardust.autojs.script.SequenceScriptSource;
|
||||
import com.stardust.autojs.script.StringScriptSource;
|
||||
import com.stardust.scriptdroid.App;
|
||||
import com.stardust.scriptdroid.BuildConfig;
|
||||
@@ -52,8 +52,6 @@ public class Scripts {
|
||||
}
|
||||
|
||||
};
|
||||
private static final String INIT_SCRIPT_PATH = "js/autojs_init.js";
|
||||
private static ScriptSource initScriptSource;
|
||||
|
||||
|
||||
public static void openByOtherApps(String path) {
|
||||
@@ -87,27 +85,16 @@ public class Scripts {
|
||||
}
|
||||
|
||||
public static ScriptExecution run(ScriptSource source) {
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(wrappedWithInitSource(source));
|
||||
}
|
||||
|
||||
private static ScriptSource wrappedWithInitSource(ScriptSource source) {
|
||||
return new ScriptSourceWithInit(getInitScriptSource(), source);
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(source);
|
||||
}
|
||||
|
||||
public static ScriptExecution runWithBroadcastSender(ScriptSource scriptSource) {
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(wrappedWithInitSource(scriptSource), BROADCAST_SENDER_SCRIPT_EXECUTION_LISTENER);
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(scriptSource, BROADCAST_SENDER_SCRIPT_EXECUTION_LISTENER);
|
||||
}
|
||||
|
||||
public static ScriptExecution run(Context context, Sample file) {
|
||||
ScriptSource source = new StringScriptSource(file.name, AssetsCache.get(context.getAssets(), file.path));
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(wrappedWithInitSource(source));
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(source);
|
||||
}
|
||||
|
||||
private static ScriptSource getInitScriptSource() {
|
||||
if(initScriptSource == null || BuildConfig.DEBUG){
|
||||
String initScript = AssetsCache.get(App.getApp().getAssets(), INIT_SCRIPT_PATH);
|
||||
initScriptSource = new StringScriptSource(initScript);
|
||||
}
|
||||
return initScriptSource;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,8 @@ import com.stardust.autojs.ScriptEngineService;
|
||||
import com.stardust.autojs.execution.ScriptExecution;
|
||||
import com.stardust.autojs.execution.ScriptExecutionListener;
|
||||
import com.stardust.autojs.execution.SimpleScriptExecutionListener;
|
||||
import com.stardust.autojs.engine.JavaScriptEngine;
|
||||
import com.stardust.autojs.engine.JavaScriptEngineManager;
|
||||
import com.stardust.autojs.engine.ScriptEngine;
|
||||
import com.stardust.autojs.engine.AbstractScriptEngineManager;
|
||||
import com.stardust.autojs.script.ScriptSource;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
||||
@@ -29,7 +29,7 @@ import java.util.List;
|
||||
* Created by Stardust on 2017/3/24.
|
||||
*/
|
||||
|
||||
public class TaskListRecyclerView extends ThemeColorRecyclerView implements JavaScriptEngineManager.EngineLifecycleCallback {
|
||||
public class TaskListRecyclerView extends ThemeColorRecyclerView implements AbstractScriptEngineManager.EngineLifecycleCallback {
|
||||
|
||||
|
||||
private final OnClickListener mOnItemClickListenerProxy = new OnClickListener() {
|
||||
@@ -52,7 +52,7 @@ public class TaskListRecyclerView extends ThemeColorRecyclerView implements Java
|
||||
};
|
||||
|
||||
|
||||
private final List<JavaScriptEngine> mScriptEngines = new ArrayList<>();
|
||||
private final List<ScriptEngine> mScriptEngines = new ArrayList<>();
|
||||
private Adapter mAdapter;
|
||||
private final ScriptEngineService mScriptEngineService = AutoJs.getInstance().getScriptEngineService();
|
||||
private ScriptExecutionListener mScriptExecutionListener = new SimpleScriptExecutionListener() {
|
||||
@@ -129,7 +129,7 @@ public class TaskListRecyclerView extends ThemeColorRecyclerView implements Java
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEngineCreate(final JavaScriptEngine engine) {
|
||||
public void onEngineCreate(final ScriptEngine engine) {
|
||||
synchronized (mScriptEngines) {
|
||||
post(new Runnable() {
|
||||
@Override
|
||||
@@ -142,7 +142,7 @@ public class TaskListRecyclerView extends ThemeColorRecyclerView implements Java
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEngineRemove(final JavaScriptEngine engine) {
|
||||
public void onEngineRemove(final ScriptEngine engine) {
|
||||
post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
Reference in New Issue
Block a user