mirror of
https://github.com/TonyJiangWJ/Auto.js.git
synced 2026-06-21 21:01:43 +08:00
fix: files.cwd()
This commit is contained in:
parent
13aa6ed341
commit
130827cab5
@ -2,8 +2,8 @@
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/Auto.js.iml" filepath="$PROJECT_DIR$/Auto.js.iml" />
|
||||
<module fileurl="file://E:\YiBin\AndroidStudioProjects\NoRootScriptDroid\Auto.js.iml" filepath="E:\YiBin\AndroidStudioProjects\NoRootScriptDroid\Auto.js.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/NoRootScriptDroid.iml" filepath="$PROJECT_DIR$/NoRootScriptDroid.iml" />
|
||||
<module fileurl="file://C:\Users\Stardust\Documents\AndroidProjects\Auto.js\NoRootScriptDroid.iml" filepath="C:\Users\Stardust\Documents\AndroidProjects\Auto.js\NoRootScriptDroid.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/autojs/autojs.iml" filepath="$PROJECT_DIR$/autojs/autojs.iml" />
|
||||
|
||||
@ -49,9 +49,9 @@ public class ScriptIntents {
|
||||
} else {
|
||||
source = fileScriptSource;
|
||||
}
|
||||
config.path(new File(path).getParent(), StorageFileProvider.DEFAULT_DIRECTORY_PATH);
|
||||
config.executePath(new File(path).getParent());
|
||||
} else {
|
||||
config.path(StorageFileProvider.DEFAULT_DIRECTORY_PATH);
|
||||
config.executePath(StorageFileProvider.DEFAULT_DIRECTORY_PATH);
|
||||
}
|
||||
if (source == null) {
|
||||
return false;
|
||||
|
||||
@ -9,6 +9,7 @@ import com.stardust.autojs.execution.ScriptExecution;
|
||||
import com.stardust.autojs.execution.ScriptExecutionListener;
|
||||
import com.stardust.autojs.execution.SimpleScriptExecutionListener;
|
||||
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||
import com.stardust.autojs.script.JavaScriptFileSource;
|
||||
import com.stardust.autojs.script.ScriptSource;
|
||||
import com.stardust.scriptdroid.App;
|
||||
import com.stardust.scriptdroid.R;
|
||||
@ -91,35 +92,27 @@ public class Scripts {
|
||||
}
|
||||
|
||||
public static ScriptExecution run(ScriptFile file) {
|
||||
return run(file.toSource(), file.getParent());
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(new JavaScriptFileSource(file), new ExecutionConfig()
|
||||
.executePath(file.getParent()));
|
||||
}
|
||||
|
||||
public static ScriptExecution run(ScriptSource source, String directoryPath) {
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(source, new ExecutionConfig()
|
||||
.path(directoryPath, StorageFileProvider.DEFAULT_DIRECTORY_PATH));
|
||||
}
|
||||
|
||||
public static ScriptExecution run(ScriptSource source) {
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(source, new ExecutionConfig()
|
||||
.path(StorageFileProvider.DEFAULT_DIRECTORY_PATH));
|
||||
.executePath(StorageFileProvider.DEFAULT_DIRECTORY_PATH));
|
||||
}
|
||||
|
||||
public static ScriptExecution runWithBroadcastSender(ScriptSource scriptSource, String directoryPath) {
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(scriptSource, BROADCAST_SENDER_SCRIPT_EXECUTION_LISTENER,
|
||||
new ExecutionConfig().path(directoryPath, StorageFileProvider.DEFAULT_DIRECTORY_PATH));
|
||||
public static ScriptExecution runWithBroadcastSender(File file) {
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(new JavaScriptFileSource(file), BROADCAST_SENDER_SCRIPT_EXECUTION_LISTENER,
|
||||
new ExecutionConfig().executePath(file.getParent()));
|
||||
}
|
||||
|
||||
|
||||
public static ScriptExecution runWithBroadcastSender(ScriptSource source) {
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(source, BROADCAST_SENDER_SCRIPT_EXECUTION_LISTENER,
|
||||
new ExecutionConfig().path(StorageFileProvider.DEFAULT_DIRECTORY_PATH));
|
||||
}
|
||||
|
||||
public static ScriptExecution runRepeatedly(ScriptFile scriptFile, int loopTimes, long delay, long interval) {
|
||||
ScriptSource source = scriptFile.toSource();
|
||||
String directoryPath = scriptFile.getParent();
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(source, new ExecutionConfig()
|
||||
.path(directoryPath, StorageFileProvider.DEFAULT_DIRECTORY_PATH)
|
||||
.executePath(directoryPath)
|
||||
.loop(delay, loopTimes, interval));
|
||||
}
|
||||
|
||||
|
||||
@ -278,7 +278,7 @@ public class EditorView extends FrameLayout implements CodeCompletionBar.OnHintC
|
||||
|
||||
public void run() {
|
||||
Snackbar.make(this, R.string.text_start_running, Snackbar.LENGTH_SHORT).show();
|
||||
mScriptExecution = Scripts.runWithBroadcastSender(new JavaScriptFileSource(mName, mFile), mFile.getParent());
|
||||
mScriptExecution = Scripts.runWithBroadcastSender(mFile);
|
||||
setMenuItemStatus(R.id.run, false);
|
||||
}
|
||||
|
||||
|
||||
@ -25,6 +25,7 @@ import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.net.URI;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
@ -32,13 +33,13 @@ import java.util.Locale;
|
||||
* Created by Stardust on 2017/4/2.
|
||||
*/
|
||||
|
||||
public class RhinoJavaScriptEngine extends JavaScriptEngine {
|
||||
public class RhinoJavaScriptEngine extends JavaScriptEngine {
|
||||
|
||||
private static final String LOG_TAG = "RhinoJavaScriptEngine";
|
||||
|
||||
private static int contextCount = 0;
|
||||
private static StringScriptSource sInitScript;
|
||||
private String[] mRequirePath = new String[0];
|
||||
private List<String> mRequirePath = Collections.emptyList();
|
||||
|
||||
private Context mContext;
|
||||
private Scriptable mScriptable;
|
||||
@ -93,11 +94,12 @@ public class RhinoJavaScriptEngine extends JavaScriptEngine {
|
||||
return mThread;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public void init() {
|
||||
mThread = Thread.currentThread();
|
||||
ScriptableObject.putProperty(mScriptable, "__engine__", this);
|
||||
mRequirePath = (String[]) getTag(TAG_PATH);
|
||||
mRequirePath = (List<String>) getTag(TAG_ENV_PATH);
|
||||
initRequireBuilder(mContext, mScriptable);
|
||||
mContext.evaluateString(mScriptable, getInitScript().getScript(), "<init>", 1, null);
|
||||
}
|
||||
@ -118,8 +120,10 @@ public class RhinoJavaScriptEngine extends JavaScriptEngine {
|
||||
|
||||
void initRequireBuilder(Context context, Scriptable scope) {
|
||||
List<URI> list = new ArrayList<>();
|
||||
for (String path : mRequirePath) {
|
||||
list.add(new File(path).toURI());
|
||||
if (mRequirePath != null) {
|
||||
for (String path : mRequirePath) {
|
||||
list.add(new File(path).toURI());
|
||||
}
|
||||
}
|
||||
AssetAndUrlModuleSourceProvider provider = new AssetAndUrlModuleSourceProvider(mAndroidContext, list);
|
||||
new RequireBuilder()
|
||||
|
||||
@ -23,8 +23,9 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
public interface ScriptEngine<S extends ScriptSource> {
|
||||
|
||||
|
||||
String TAG_PATH = "execute_path";
|
||||
String TAG_ENV_PATH = "env_path";
|
||||
String TAG_SOURCE = "source";
|
||||
String TAG_EXECUTE_PATH = "execute_path";
|
||||
|
||||
void put(String name, Object value);
|
||||
|
||||
@ -87,7 +88,7 @@ public interface ScriptEngine<S extends ScriptSource> {
|
||||
}
|
||||
|
||||
public String cwd() {
|
||||
return (String) getTag(TAG_PATH);
|
||||
return (String) getTag(TAG_EXECUTE_PATH);
|
||||
}
|
||||
|
||||
public void setOnDestroyListener(OnDestroyListener onDestroyListener) {
|
||||
|
||||
@ -1,13 +1,18 @@
|
||||
package com.stardust.autojs.execution;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/2/1.
|
||||
*/
|
||||
public class ExecutionConfig implements Serializable {
|
||||
|
||||
private String[] mRequirePath = new String[0];
|
||||
private List<String> mRequirePath = Collections.emptyList();
|
||||
private String mExecutePath;
|
||||
private static final ExecutionConfig DEFAULT = new ExecutionConfig();
|
||||
public long delay = 0;
|
||||
public long interval = 0;
|
||||
@ -24,15 +29,27 @@ public class ExecutionConfig implements Serializable {
|
||||
return this;
|
||||
}
|
||||
|
||||
public ExecutionConfig path(String... requirePath) {
|
||||
mRequirePath = requirePath;
|
||||
public ExecutionConfig requirePath(String... requirePath) {
|
||||
mRequirePath = new ArrayList<>(Arrays.asList(requirePath));
|
||||
if (mExecutePath != null) {
|
||||
mRequirePath.add(mExecutePath);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public String[] getPath() {
|
||||
public ExecutionConfig executePath(String executePath) {
|
||||
mExecutePath = executePath;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<String> getRequirePath() {
|
||||
return mRequirePath;
|
||||
}
|
||||
|
||||
public String getExecutePath() {
|
||||
return mExecutePath;
|
||||
}
|
||||
|
||||
public ExecutionConfig loop(long delay, int loopTimes, long interval) {
|
||||
this.delay = delay;
|
||||
this.loopTimes = loopTimes;
|
||||
|
||||
@ -49,7 +49,8 @@ public class RunnableScriptExecution extends ScriptExecution.AbstractScriptExecu
|
||||
}
|
||||
|
||||
private void prepare(ScriptEngine engine) {
|
||||
engine.setTag(ScriptEngine.TAG_PATH, getConfig().getPath());
|
||||
engine.setTag(ScriptEngine.TAG_EXECUTE_PATH, getConfig().getExecutePath());
|
||||
engine.setTag(ScriptEngine.TAG_ENV_PATH, getConfig().getRequirePath());
|
||||
engine.init();
|
||||
}
|
||||
|
||||
|
||||
@ -86,7 +86,8 @@ public class ScriptExecuteActivity extends AppCompatActivity implements Thread.U
|
||||
|
||||
private void prepare() {
|
||||
mScriptEngine.put("activity", this);
|
||||
mScriptEngine.setTag(ScriptEngine.TAG_PATH, mScriptExecution.getConfig().getPath());
|
||||
mScriptEngine.setTag(ScriptEngine.TAG_ENV_PATH, mScriptExecution.getConfig().getRequirePath());
|
||||
mScriptEngine.setTag(ScriptEngine.TAG_EXECUTE_PATH, mScriptExecution.getConfig().getExecutePath());
|
||||
mScriptEngine.init();
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user