Change the way of action pefrom(no longer wait for event), add loading jar file support, fix simple action memory leak
This commit is contained in:
@@ -1,16 +1,13 @@
|
||||
package com.stardust.scriptdroid.external.tasker;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.util.Log;
|
||||
|
||||
import com.stardust.scriptdroid.App;
|
||||
import com.stardust.scriptdroid.external.CommonUtils;
|
||||
import com.stardust.scriptdroid.external.open.RunIntentActivity;
|
||||
import com.stardust.scriptdroid.external.shortcut.ShortcutActivity;
|
||||
import com.twofortyfouram.locale.sdk.client.receiver.AbstractPluginSettingReceiver;
|
||||
|
||||
/**
|
||||
@@ -36,6 +33,6 @@ public class FireSettingReceiver extends AbstractPluginSettingReceiver {
|
||||
context.startActivity(new Intent(App.getApp(), RunIntentActivity.class)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.putExtra(CommonUtils.EXTRA_KEY_PATH, bundle.getString(CommonUtils.EXTRA_KEY_PATH))
|
||||
.putExtra(CommonUtils.EXTRA_KEY_PREPARE_SCRIPT, bundle.getString(CommonUtils.EXTRA_KEY_PREPARE_SCRIPT)));
|
||||
.putExtra(CommonUtils.EXTRA_KEY_PRE_EXECUTE_SCRIPT, bundle.getString(CommonUtils.EXTRA_KEY_PRE_EXECUTE_SCRIPT)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +1,50 @@
|
||||
package com.stardust.scriptdroid.external.tasker;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.util.Log;
|
||||
import android.text.TextUtils;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.stardust.scriptdroid.scripts.ScriptFile;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.external.CommonUtils;
|
||||
import com.stardust.scriptdroid.scripts.ScriptFile;
|
||||
import com.stardust.scriptdroid.scripts.StorageScriptProvider;
|
||||
import com.stardust.scriptdroid.ui.BaseActivity;
|
||||
import com.stardust.scriptdroid.ui.main.script_list.ScriptAndFolderListRecyclerView;
|
||||
import com.stardust.scriptdroid.ui.main.script_list.ScriptListWithProgressBarView;
|
||||
import com.twofortyfouram.locale.sdk.client.ui.activity.AbstractPluginActivity;
|
||||
import com.stardust.view.ViewBinder;
|
||||
import com.stardust.view.ViewBinding;
|
||||
import com.twofortyfouram.locale.sdk.client.ui.activity.AbstractAppCompatPluginActivity;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/3/27.
|
||||
*/
|
||||
|
||||
public class TaskPrefEditActivity extends AbstractPluginActivity {
|
||||
public class TaskPrefEditActivity extends AbstractAppCompatPluginActivity {
|
||||
|
||||
private String mSelectedScriptFilePath;
|
||||
private String mPreExecuteScript;
|
||||
private StorageScriptProvider mStorageScriptProvider;
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_tasker_edit);
|
||||
BaseActivity.setToolbarAsBack(this, R.id.toolbar, getString(R.string.text_please_choose_a_script));
|
||||
initScriptListRecyclerView();
|
||||
ViewBinder.bind(this);
|
||||
}
|
||||
|
||||
private void initScriptListRecyclerView() {
|
||||
ScriptListWithProgressBarView scriptListWithProgressBarView = (ScriptListWithProgressBarView) findViewById(R.id.script_list);
|
||||
scriptListWithProgressBarView.setScriptFileOperationEnabled(false);
|
||||
scriptListWithProgressBarView.setOnItemClickListener(new ScriptAndFolderListRecyclerView.OnScriptFileClickListener() {
|
||||
mStorageScriptProvider = StorageScriptProvider.getExternalStorageProvider();
|
||||
ScriptListWithProgressBarView scriptList = (ScriptListWithProgressBarView) findViewById(R.id.script_list);
|
||||
scriptList.setScriptFileOperationEnabled(false);
|
||||
scriptList.setStorageScriptProvider(mStorageScriptProvider);
|
||||
scriptList.setCurrentDirectory(StorageScriptProvider.DEFAULT_DIRECTORY);
|
||||
scriptList.setOnItemClickListener(new ScriptAndFolderListRecyclerView.OnScriptFileClickListener() {
|
||||
@Override
|
||||
public void onClick(ScriptFile file) {
|
||||
mSelectedScriptFilePath = file.getPath();
|
||||
@@ -41,6 +54,31 @@ public class TaskPrefEditActivity extends AbstractPluginActivity {
|
||||
}
|
||||
|
||||
|
||||
@ViewBinding.Click(R.id.edit_script)
|
||||
private void editPreExecuteScript() {
|
||||
TaskerScriptEditActivity.edit(this, getString(R.string.text_pre_execute_script), getString(R.string.summary_pre_execute_script), mPreExecuteScript == null ? "" : mPreExecuteScript);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == R.id.action_refresh) {
|
||||
mStorageScriptProvider.refreshAll();
|
||||
} else if (item.getItemId() == R.id.action_clear_file_selection) {
|
||||
mSelectedScriptFilePath = null;
|
||||
} else {
|
||||
mPreExecuteScript = null;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.tasker_script_edit_menu, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isBundleValid(@NonNull Bundle bundle) {
|
||||
return CommonUtils.isTaskerBundleValid(bundle);
|
||||
@@ -49,6 +87,7 @@ public class TaskPrefEditActivity extends AbstractPluginActivity {
|
||||
@Override
|
||||
public void onPostCreateWithPreviousResult(@NonNull Bundle bundle, @NonNull String s) {
|
||||
mSelectedScriptFilePath = bundle.getString(CommonUtils.EXTRA_KEY_PATH);
|
||||
mPreExecuteScript = bundle.getString(CommonUtils.EXTRA_KEY_PRE_EXECUTE_SCRIPT);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -56,12 +95,27 @@ public class TaskPrefEditActivity extends AbstractPluginActivity {
|
||||
public Bundle getResultBundle() {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(CommonUtils.EXTRA_KEY_PATH, mSelectedScriptFilePath);
|
||||
bundle.putString(CommonUtils.EXTRA_KEY_PRE_EXECUTE_SCRIPT, mPreExecuteScript);
|
||||
return bundle;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public String getResultBlurb(@NonNull Bundle bundle) {
|
||||
return bundle.getString(CommonUtils.EXTRA_KEY_PATH, getString(R.string.text_path_is_empty));
|
||||
String blurb = bundle.getString(CommonUtils.EXTRA_KEY_PATH);
|
||||
if (TextUtils.isEmpty(blurb)) {
|
||||
blurb = bundle.getString(CommonUtils.EXTRA_KEY_PRE_EXECUTE_SCRIPT);
|
||||
}
|
||||
if (TextUtils.isEmpty(blurb)) {
|
||||
blurb = getString(R.string.text_path_is_empty);
|
||||
}
|
||||
return blurb;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (resultCode == RESULT_OK) {
|
||||
mPreExecuteScript = data.getStringExtra(TaskerScriptEditActivity.EXTRA_CONTENT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
107
app/src/main/java/com/stardust/scriptdroid/external/tasker/TaskerScriptEditActivity.java
vendored
Normal file
107
app/src/main/java/com/stardust/scriptdroid/external/tasker/TaskerScriptEditActivity.java
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
package com.stardust.scriptdroid.external.tasker;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.jecelyin.editor.v2.common.Command;
|
||||
import com.jecelyin.editor.v2.ui.EditorDelegate;
|
||||
import com.jecelyin.editor.v2.view.EditorView;
|
||||
import com.jecelyin.editor.v2.view.menu.MenuDef;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.ui.BaseActivity;
|
||||
import com.stardust.scriptdroid.ui.edit.EditActivity;
|
||||
import com.stardust.scriptdroid.ui.edit.completion.InputMethodEnhanceBar;
|
||||
import com.stardust.scriptdroid.ui.edit.editor920.Editor920Activity;
|
||||
import com.stardust.scriptdroid.ui.edit.editor920.Editor920Utils;
|
||||
import com.stardust.view.ViewBinder;
|
||||
import com.stardust.view.ViewBinding;
|
||||
import com.stardust.widget.ToolbarMenuItem;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/4/5.
|
||||
*/
|
||||
|
||||
public class TaskerScriptEditActivity extends Editor920Activity {
|
||||
|
||||
public static final int REQUEST_CODE = "Love you. Can we go back?".hashCode() >> 16;
|
||||
public static final String EXTRA_CONTENT = "Still Love Eating 17.4.5";
|
||||
|
||||
public static void edit(Activity activity, String title, String summary, String content) {
|
||||
activity.startActivityForResult(new Intent(activity, TaskerScriptEditActivity.class)
|
||||
.putExtra(EXTRA_CONTENT, content)
|
||||
.putExtra("summary", summary)
|
||||
.putExtra("title", title), REQUEST_CODE);
|
||||
}
|
||||
|
||||
private EditorDelegate mEditorDelegate;
|
||||
private String mTitle, mSummary;
|
||||
private ToolbarMenuItem mRedo, mUndo;
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
handleIntent(getIntent());
|
||||
setUpUI();
|
||||
BaseActivity.setToolbarAsBack(this, R.id.toolbar, mTitle);
|
||||
setUpEditor();
|
||||
ViewBinder.bind(this);
|
||||
}
|
||||
|
||||
private void setUpUI() {
|
||||
setTheme(R.style.EditorTheme);
|
||||
setContentView(R.layout.activity_tasker_script_edit);
|
||||
((TextView) findViewById(R.id.summary)).setText(mSummary);
|
||||
mRedo = (ToolbarMenuItem) findViewById(R.id.redo);
|
||||
mUndo = (ToolbarMenuItem) findViewById(R.id.undo);
|
||||
}
|
||||
|
||||
private void handleIntent(Intent intent) {
|
||||
mTitle = intent.getStringExtra("title");
|
||||
mSummary = intent.getStringExtra("summary");
|
||||
String content = intent.getStringExtra(EXTRA_CONTENT);
|
||||
mEditorDelegate = new EditorDelegate(0, mTitle, content);
|
||||
}
|
||||
|
||||
private void setUpEditor() {
|
||||
final EditorView editorView = (EditorView) findViewById(R.id.editor);
|
||||
mEditorDelegate.setEditorView(editorView);
|
||||
Editor920Utils.setLang(mEditorDelegate, "JavaScript");
|
||||
editorView.getEditText().setHorizontallyScrolling(true);
|
||||
setUpInputMethodEnhanceBar(editorView);
|
||||
}
|
||||
|
||||
private void setUpInputMethodEnhanceBar(final EditorView editorView) {
|
||||
InputMethodEnhanceBar inputMethodEnhanceBar = (InputMethodEnhanceBar) findViewById(R.id.input_method_enhance_bar);
|
||||
inputMethodEnhanceBar.setEditTextBridge(new EditActivity.InputMethodEnhanceBarBridge(this, editorView.getEditText()));
|
||||
}
|
||||
|
||||
@ViewBinding.Click(R.id.undo)
|
||||
private void undo() {
|
||||
Command command = new Command(Command.CommandEnum.UNDO);
|
||||
mEditorDelegate.doCommand(command);
|
||||
}
|
||||
|
||||
@ViewBinding.Click(R.id.redo)
|
||||
private void redo() {
|
||||
Command command = new Command(Command.CommandEnum.REDO);
|
||||
mEditorDelegate.doCommand(command);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finish() {
|
||||
setResult(RESULT_OK, new Intent().putExtra(EXTRA_CONTENT, mEditorDelegate.getText()));
|
||||
super.finish();
|
||||
}
|
||||
|
||||
public void setMenuStatus(int menuResId, int status) {
|
||||
boolean disabled = status == MenuDef.STATUS_DISABLED;
|
||||
if (menuResId == com.jecelyin.editor.v2.R.id.m_redo) {
|
||||
mRedo.setEnabled(!disabled);
|
||||
} else if (menuResId == com.jecelyin.editor.v2.R.id.m_undo) {
|
||||
mUndo.setEnabled(!disabled);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user