add script running repleatedly support, change min sdk version to 17
This commit is contained in:
@@ -111,4 +111,12 @@ public class Scripts {
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(source, BROADCAST_SENDER_SCRIPT_EXECUTION_LISTENER,
|
||||
new ExecutionConfig().requirePath(StorageScriptProvider.DEFAULT_DIRECTORY_PATH));
|
||||
}
|
||||
|
||||
public static ScriptExecution runRepeatedly(ScriptFile scriptFile, int loopTimes, long delay, long interval) {
|
||||
ScriptSource source = new FileScriptSource(scriptFile);
|
||||
String directoryPath = scriptFile.getParent();
|
||||
return AutoJs.getInstance().getScriptEngineService().execute(source, new ExecutionConfig()
|
||||
.requirePath(directoryPath, StorageScriptProvider.DEFAULT_DIRECTORY_PATH)
|
||||
.loop(delay, loopTimes, interval));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.stardust.scriptdroid.ui.common;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.design.widget.TextInputEditText;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
|
||||
import com.afollestad.materialdialogs.DialogAction;
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.script.ScriptFile;
|
||||
import com.stardust.scriptdroid.script.Scripts;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/7/8.
|
||||
*/
|
||||
|
||||
public class ScriptLoopDialog {
|
||||
|
||||
private ScriptFile mScriptFile;
|
||||
private MaterialDialog mDialog;
|
||||
|
||||
@BindView(R.id.loop_times)
|
||||
TextInputEditText mLoopTimes;
|
||||
|
||||
@BindView(R.id.loop_interval)
|
||||
TextInputEditText mLoopInterval;
|
||||
|
||||
@BindView(R.id.loop_delay)
|
||||
TextInputEditText mLoopDelay;
|
||||
|
||||
|
||||
public ScriptLoopDialog(Context context, ScriptFile file) {
|
||||
mScriptFile = file;
|
||||
View view = View.inflate(context, R.layout.dialog_script_loop, null);
|
||||
mDialog = new MaterialDialog.Builder(context)
|
||||
.title(R.string.text_run_repeatedly)
|
||||
.customView(view, false)
|
||||
.positiveText(R.string.ok)
|
||||
.onPositive(new MaterialDialog.SingleButtonCallback() {
|
||||
@Override
|
||||
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
|
||||
startScriptRunningLoop();
|
||||
}
|
||||
})
|
||||
.build();
|
||||
ButterKnife.bind(this, view);
|
||||
}
|
||||
|
||||
private void startScriptRunningLoop() {
|
||||
int loopTimes = Integer.parseInt(mLoopTimes.getText().toString());
|
||||
float loopInterval = Float.parseFloat(mLoopInterval.getText().toString());
|
||||
float loopDelay = Float.parseFloat(mLoopDelay.getText().toString());
|
||||
Scripts.runRepeatedly(mScriptFile, loopTimes, (long) (1000L * loopDelay), (long) (loopInterval * 1000L));
|
||||
}
|
||||
|
||||
public ScriptLoopDialog windowType(int windowType) {
|
||||
Window window = mDialog.getWindow();
|
||||
if (window != null) {
|
||||
window.setType(windowType);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public void show() {
|
||||
mDialog.show();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -20,6 +20,7 @@ import com.stardust.pio.PFile;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.script.Scripts;
|
||||
import com.stardust.scriptdroid.script.StorageScriptProvider;
|
||||
import com.stardust.scriptdroid.ui.common.ScriptLoopDialog;
|
||||
import com.stardust.scriptdroid.ui.edit.EditActivity;
|
||||
import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder;
|
||||
import com.stardust.util.UnderuseExecutors;
|
||||
@@ -106,6 +107,7 @@ public class MyScriptListFragment extends Fragment {
|
||||
|
||||
private void initDialogs() {
|
||||
mScriptFileOperationDialog = new OperationDialogBuilder(getContext())
|
||||
.item(R.id.loop, R.drawable.ic_loop_white_24dp, R.string.text_run_repeatedly)
|
||||
.item(R.id.rename, R.drawable.ic_ali_rename, R.string.text_rename)
|
||||
.item(R.id.open_by_other_apps, R.drawable.ic_ali_open, R.string.text_open_by_other_apps)
|
||||
.item(R.id.create_shortcut, R.drawable.ic_ali_shortcut, R.string.text_send_shortcut)
|
||||
@@ -228,6 +230,14 @@ public class MyScriptListFragment extends Fragment {
|
||||
});
|
||||
}
|
||||
|
||||
@Optional
|
||||
@OnClick(R.id.loop)
|
||||
void runScriptRepeatedly() {
|
||||
dismissDialogs();
|
||||
new ScriptLoopDialog(getActivity(), mSelectedScriptFile)
|
||||
.show();
|
||||
}
|
||||
|
||||
@Optional
|
||||
@OnClick(R.id.rename)
|
||||
void renameScriptFile() {
|
||||
|
||||
Reference in New Issue
Block a user