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:
@@ -10,10 +10,10 @@ public class CommonUtils {
|
||||
|
||||
public static final String EXTRA_KEY_PATH = "path";
|
||||
|
||||
public static final String EXTRA_KEY_PREPARE_SCRIPT = "script";
|
||||
public static final String EXTRA_KEY_PRE_EXECUTE_SCRIPT = "script";
|
||||
|
||||
public static boolean isTaskerBundleValid(Bundle bundle) {
|
||||
return bundle.containsKey(CommonUtils.EXTRA_KEY_PATH);
|
||||
return bundle.containsKey(CommonUtils.EXTRA_KEY_PATH) || bundle.containsKey(EXTRA_KEY_PRE_EXECUTE_SCRIPT);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ public class HoverMenuService extends Service {
|
||||
|
||||
private static void setIsRunning(boolean isRunning) {
|
||||
sIsRunning = isRunning;
|
||||
EventBus.getDefault().post(new ServiceStateChangedEvent(sIsRunning));
|
||||
eventBus.post(new ServiceStateChangedEvent(sIsRunning));
|
||||
}
|
||||
|
||||
public static void postEvent(MessageEvent event) {
|
||||
@@ -96,7 +96,7 @@ public class HoverMenuService extends Service {
|
||||
private HoverMenu.OnExitListener mWindowHoverMenuMenuExitListener = new HoverMenu.OnExitListener() {
|
||||
@Override
|
||||
public void onExitByUserRequest() {
|
||||
EventBus.getDefault().post(new MessageEvent(MESSAGE_MENU_EXIT));
|
||||
eventBus.post(new MessageEvent(MESSAGE_MENU_EXIT));
|
||||
savePreferredLocation();
|
||||
mWindowHoverMenu.hide();
|
||||
stopSelf();
|
||||
@@ -106,7 +106,7 @@ public class HoverMenuService extends Service {
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
EventBus.getDefault().register(this);
|
||||
eventBus.register(this);
|
||||
mPrefs = getSharedPreferences(PREF_FILE, Context.MODE_PRIVATE);
|
||||
tryInitViews();
|
||||
}
|
||||
@@ -141,14 +141,14 @@ public class HoverMenuService extends Service {
|
||||
mWindowHoverMenu.setHoverMenuTransitionListener(new SimpleHoverMenuTransitionListener() {
|
||||
@Override
|
||||
public void onExpanding() {
|
||||
EventBus.getDefault().post(new MessageEvent(MESSAGE_MENU_EXPANDING));
|
||||
eventBus.post(new MessageEvent(MESSAGE_MENU_EXPANDING));
|
||||
captureCurrentWindow();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCollapsing() {
|
||||
AutoJs.getInstance().getLayoutInspector().clearCapture();
|
||||
EventBus.getDefault().post(new MessageEvent(MESSAGE_MENU_COLLAPSING));
|
||||
eventBus.post(new MessageEvent(MESSAGE_MENU_COLLAPSING));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -182,8 +182,8 @@ public class HoverMenuService extends Service {
|
||||
public void onDestroy() {
|
||||
if (mWindowHoverMenu != null)
|
||||
mWindowHoverMenu.hide();
|
||||
if (EventBus.getDefault().isRegistered(this))
|
||||
EventBus.getDefault().unregister(this);
|
||||
if (eventBus.isRegistered(this))
|
||||
eventBus.unregister(this);
|
||||
setIsRunning(false);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.stardust.scriptdroid.external.floating_window.content;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.widget.SwitchCompat;
|
||||
import android.view.View;
|
||||
@@ -9,6 +8,7 @@ import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.stardust.app.VolumeChangeObserver;
|
||||
import com.stardust.scriptdroid.App;
|
||||
import com.stardust.scriptdroid.Pref;
|
||||
import com.stardust.scriptdroid.R;
|
||||
@@ -19,7 +19,6 @@ import com.stardust.scriptdroid.record.Recorder;
|
||||
import com.stardust.scriptdroid.record.accessibility.AccessibilityActionRecorder;
|
||||
import com.stardust.scriptdroid.record.inputevent.InputEventConverter;
|
||||
import com.stardust.scriptdroid.record.inputevent.TouchRecorder;
|
||||
import com.stardust.scriptdroid.service.VolumeChangeObverseService;
|
||||
import com.stardust.scriptdroid.ui.main.MainActivity;
|
||||
import com.stardust.util.MessageEvent;
|
||||
import com.stardust.view.ViewBinder;
|
||||
@@ -58,7 +57,7 @@ public class RecordNavigatorContent implements NavigatorContent, Recorder.OnStat
|
||||
private Recorder mRecorder;
|
||||
private Context mContext;
|
||||
|
||||
private VolumeChangeObverseService.OnVolumeChangeListener mOnVolumeChangeListener = new VolumeChangeObverseService.OnVolumeChangeListener() {
|
||||
private VolumeChangeObserver.OnVolumeChangeListener mOnVolumeChangeListener = new VolumeChangeObserver.OnVolumeChangeListener() {
|
||||
@Override
|
||||
public void onVolumeChange() {
|
||||
if (Pref.isRecordVolumeControlEnable()) {
|
||||
@@ -76,8 +75,7 @@ public class RecordNavigatorContent implements NavigatorContent, Recorder.OnStat
|
||||
mView = View.inflate(context, R.layout.floating_window_record, null);
|
||||
ViewBinder.bind(this);
|
||||
EventBus.getDefault().register(this);
|
||||
App.getApp().startService(new Intent(App.getApp(), VolumeChangeObverseService.class));
|
||||
VolumeChangeObverseService.addOnVolumeChangeListener(mOnVolumeChangeListener);
|
||||
App.getApp().getVolumeChangeObserver().addOnVolumeChangeListener(mOnVolumeChangeListener);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@@ -163,7 +161,7 @@ public class RecordNavigatorContent implements NavigatorContent, Recorder.OnStat
|
||||
pauseRecord();
|
||||
} else if (event.message.equals(HoverMenuService.MESSAGE_MENU_EXIT)) {
|
||||
EventBus.getDefault().unregister(this);
|
||||
VolumeChangeObverseService.removeOnVolumeChangeListener(mOnVolumeChangeListener);
|
||||
App.getApp().getVolumeChangeObserver().removeOnVolumeChangeListener(mOnVolumeChangeListener);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@ import com.stardust.autojs.script.FileScriptSource;
|
||||
import com.stardust.autojs.script.MultiScriptSource;
|
||||
import com.stardust.autojs.script.ScriptSource;
|
||||
import com.stardust.autojs.script.StringScriptSource;
|
||||
import com.stardust.scriptdroid.App;
|
||||
import com.stardust.scriptdroid.external.CommonUtils;
|
||||
import com.stardust.scriptdroid.R;
|
||||
|
||||
@@ -36,7 +35,7 @@ public class RunIntentActivity extends Activity {
|
||||
|
||||
private void handleIntent(Intent intent) {
|
||||
String path = getPath(intent);
|
||||
String script = intent.getStringExtra(CommonUtils.EXTRA_KEY_PREPARE_SCRIPT);
|
||||
String script = intent.getStringExtra(CommonUtils.EXTRA_KEY_PRE_EXECUTE_SCRIPT);
|
||||
ScriptSource source = null;
|
||||
if (path == null && script != null) {
|
||||
source = new StringScriptSource(script);
|
||||
|
||||
@@ -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