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