Dying again
This commit is contained in:
@@ -6,6 +6,7 @@ import android.os.Build;
|
||||
import android.provider.Settings;
|
||||
|
||||
import com.stardust.scriptdroid.App;
|
||||
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
||||
import com.stardust.util.IntentUtil;
|
||||
|
||||
/**
|
||||
@@ -14,7 +15,7 @@ import com.stardust.util.IntentUtil;
|
||||
|
||||
public class FloatingWindowManger {
|
||||
|
||||
public static void showFloatingWindow() {
|
||||
public static void showHoverMenu() {
|
||||
if (!HoverMenuService.isServiceRunning()) {
|
||||
if (!hasFloatingWindowPermission()) {
|
||||
goToFloatingWindowPermissionSetting();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.stardust.scriptdroid.external.floating_window;
|
||||
package com.stardust.scriptdroid.external.floating_window.console;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.ContextWrapper;
|
||||
@@ -6,21 +6,28 @@ import android.support.annotation.Nullable;
|
||||
import android.view.ContextThemeWrapper;
|
||||
import android.view.View;
|
||||
|
||||
import com.stardust.enhancedfloaty.ResizableExpandableFloaty;
|
||||
import com.stardust.enhancedfloaty.ResizableExpandableFloatyService;
|
||||
import com.stardust.enhancedfloaty.ResizableFloaty;
|
||||
import com.stardust.enhancedfloaty.ResizableFloatyService;
|
||||
|
||||
import com.stardust.scriptdroid.R;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/4/20.
|
||||
*/
|
||||
|
||||
public class ConsoleFloaty extends ResizableFloaty {
|
||||
public class ConsoleFloaty extends ResizableExpandableFloaty {
|
||||
|
||||
private ContextWrapper mContextWrapper;
|
||||
private View mResizer, mMoveCursor;
|
||||
|
||||
public ConsoleFloaty() {
|
||||
setShouldRequestFocusWhenExpand(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View inflateCollapsedView(ResizableFloatyService service) {
|
||||
public View inflateCollapsedView(ResizableExpandableFloatyService service) {
|
||||
ensureContextWrapper(service);
|
||||
return View.inflate(mContextWrapper, R.layout.floating_window_collapse, null);
|
||||
}
|
||||
@@ -32,28 +39,27 @@ public class ConsoleFloaty extends ResizableFloaty {
|
||||
}
|
||||
|
||||
@Override
|
||||
public View inflateExpandedView(ResizableFloatyService service) {
|
||||
public View inflateExpandedView(ResizableExpandableFloatyService service) {
|
||||
ensureContextWrapper(service);
|
||||
View view = View.inflate(mContextWrapper, R.layout.floating_console_expand, null);
|
||||
setListeners(view, service);
|
||||
return view;
|
||||
}
|
||||
|
||||
private void setListeners(final View view, final ResizableFloatyService service) {
|
||||
private void setListeners(final View view, final ResizableExpandableFloatyService service) {
|
||||
view.findViewById(R.id.close).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
service.stopSelf();
|
||||
service.stopForeground(true);
|
||||
}
|
||||
});
|
||||
view.findViewById(R.id.move_or_resize).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if(mMoveCursor.getVisibility() == View.VISIBLE){
|
||||
if (mMoveCursor.getVisibility() == View.VISIBLE) {
|
||||
mMoveCursor.setVisibility(View.GONE);
|
||||
mResizer.setVisibility(View.GONE);
|
||||
}else {
|
||||
} else {
|
||||
mMoveCursor.setVisibility(View.VISIBLE);
|
||||
mResizer.setVisibility(View.VISIBLE);
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
package com.stardust.scriptdroid.external.floating_window;
|
||||
package com.stardust.scriptdroid.external.floating_window.console;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.stardust.enhancedfloaty.ResizableExpandableFloatyService;
|
||||
import com.stardust.enhancedfloaty.ResizableFloatyService;
|
||||
|
||||
/**
|
||||
@@ -11,6 +12,6 @@ import com.stardust.enhancedfloaty.ResizableFloatyService;
|
||||
public class FloatingConsole {
|
||||
|
||||
public static void startFloatingService(Context context) {
|
||||
ResizableFloatyService.startService(context, new ConsoleFloaty());
|
||||
ResizableExpandableFloatyService.startService(context, new ConsoleFloaty());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.stardust.scriptdroid.external.floating_window.console;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/4/30.
|
||||
*/
|
||||
|
||||
public class FloatingConsoleService {
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.stardust.scriptdroid.external.floating_window.console;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.util.AttributeSet;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.jraska.console.Console;
|
||||
import com.stardust.scriptdroid.R;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/4/30.
|
||||
*/
|
||||
|
||||
public class FloatingConsoleView extends Console {
|
||||
public FloatingConsoleView(Context context) {
|
||||
super(context);
|
||||
init();
|
||||
}
|
||||
|
||||
public FloatingConsoleView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
init();
|
||||
}
|
||||
|
||||
public FloatingConsoleView(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
init();
|
||||
}
|
||||
|
||||
public FloatingConsoleView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
init();
|
||||
}
|
||||
|
||||
private void init() {
|
||||
findViewById(R.id.console_scroll_view).setBackground(getBackground());
|
||||
((TextView) findViewById(R.id.console_text)).setTextIsSelectable(true);
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.stardust.scriptdroid.external.floating_window;
|
||||
package com.stardust.scriptdroid.external.floating_window.menu;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
@@ -16,9 +16,9 @@ import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.external.floating_window.content.MainMenuNavigatorContent;
|
||||
import com.stardust.scriptdroid.external.floating_window.content.RecordNavigatorContent;
|
||||
import com.stardust.scriptdroid.external.floating_window.content.ScriptListNavigatorContent;
|
||||
import com.stardust.scriptdroid.external.floating_window.menu.content.MainMenuNavigatorContent;
|
||||
import com.stardust.scriptdroid.external.floating_window.menu.content.RecordNavigatorContent;
|
||||
import com.stardust.scriptdroid.external.floating_window.menu.content.ScriptListNavigatorContent;
|
||||
import com.stardust.theme.ThemeColorManagerCompat;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.stardust.scriptdroid.external.floating_window;
|
||||
package com.stardust.scriptdroid.external.floating_window.menu;
|
||||
|
||||
|
||||
import android.app.Service;
|
||||
@@ -17,9 +17,9 @@ import com.stardust.hover.SimpleHoverMenuTransitionListener;
|
||||
import com.stardust.hover.WindowHoverMenu;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
||||
import com.stardust.scriptdroid.external.floating_window.view.FloatingLayoutBoundsView;
|
||||
import com.stardust.scriptdroid.external.floating_window.view.FloatingLayoutHierarchyView;
|
||||
import com.stardust.scriptdroid.layout_inspector.LayoutInspector;
|
||||
import com.stardust.scriptdroid.external.floating_window.FloatingWindowManger;
|
||||
import com.stardust.scriptdroid.external.floating_window.menu.view.FloatingLayoutBoundsView;
|
||||
import com.stardust.scriptdroid.external.floating_window.menu.view.FloatingLayoutHierarchyView;
|
||||
import com.stardust.scriptdroid.layout_inspector.NodeInfo;
|
||||
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
||||
import com.stardust.theme.ThemeColorManagerCompat;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.stardust.scriptdroid.external.floating_window.content;
|
||||
package com.stardust.scriptdroid.external.floating_window.menu.content;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
@@ -11,9 +11,7 @@ import android.widget.Toast;
|
||||
import com.stardust.scriptdroid.App;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
||||
import com.stardust.view.accessibility.AccessibilityInfoProvider;
|
||||
import com.stardust.scriptdroid.external.floating_window.HoverMenuService;
|
||||
import com.stardust.scriptdroid.layout_inspector.LayoutInspector;
|
||||
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
||||
import com.stardust.util.ClipboardUtil;
|
||||
import com.stardust.scriptdroid.ui.main.MainActivity;
|
||||
import com.stardust.util.MessageEvent;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.stardust.scriptdroid.external.floating_window.content;
|
||||
package com.stardust.scriptdroid.external.floating_window.menu.content;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.annotation.NonNull;
|
||||
@@ -14,7 +14,7 @@ import com.stardust.scriptdroid.Pref;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.accessibility.AccessibilityEventHelper;
|
||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
||||
import com.stardust.scriptdroid.external.floating_window.HoverMenuService;
|
||||
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
||||
import com.stardust.scriptdroid.record.Recorder;
|
||||
import com.stardust.scriptdroid.record.accessibility.AccessibilityActionRecorder;
|
||||
import com.stardust.scriptdroid.record.inputevent.InputEventConverter;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.stardust.scriptdroid.external.floating_window.content;
|
||||
package com.stardust.scriptdroid.external.floating_window.menu.content;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.annotation.NonNull;
|
||||
@@ -10,7 +10,7 @@ import android.view.ViewGroup;
|
||||
import com.stardust.autojs.script.FileScriptSource;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
||||
import com.stardust.scriptdroid.external.floating_window.HoverMenuService;
|
||||
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
||||
import com.stardust.scriptdroid.scripts.ScriptFile;
|
||||
import com.stardust.scriptdroid.scripts.StorageScriptProvider;
|
||||
import com.stardust.scriptdroid.ui.edit.EditActivity;
|
||||
@@ -1,21 +1,18 @@
|
||||
package com.stardust.scriptdroid.external.floating_window.view;
|
||||
package com.stardust.scriptdroid.external.floating_window.menu.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.afollestad.materialdialogs.Theme;
|
||||
import com.stardust.scriptdroid.external.floating_window.HoverMenuService;
|
||||
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
||||
import com.stardust.scriptdroid.layout_inspector.NodeInfo;
|
||||
import com.stardust.scriptdroid.layout_inspector.view.LayoutBoundsView;
|
||||
import com.stardust.scriptdroid.layout_inspector.view.NodeInfoView;
|
||||
import com.stardust.scriptdroid.layout_inspector.view.OnNodeInfoSelectListener;
|
||||
import com.stardust.util.MessageEvent;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/3/12.
|
||||
*/
|
||||
@@ -1,24 +1,18 @@
|
||||
package com.stardust.scriptdroid.external.floating_window.view;
|
||||
package com.stardust.scriptdroid.external.floating_window.menu.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.afollestad.materialdialogs.Theme;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.external.floating_window.HoverMenuService;
|
||||
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
||||
import com.stardust.scriptdroid.layout_inspector.NodeInfo;
|
||||
import com.stardust.scriptdroid.layout_inspector.view.LayoutHierarchyView;
|
||||
import com.stardust.scriptdroid.layout_inspector.view.NodeInfoView;
|
||||
import com.stardust.scriptdroid.layout_inspector.view.OnNodeInfoSelectListener;
|
||||
import com.stardust.util.MessageEvent;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/3/12.
|
||||
*/
|
||||
@@ -16,6 +16,8 @@ import com.stardust.scriptdroid.layout_inspector.NodeInfo;
|
||||
import com.stardust.util.ViewUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -99,33 +101,31 @@ public class LayoutBoundsView extends View {
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
if (event.getAction() == MotionEvent.ACTION_DOWN && mRootNode != null) {
|
||||
NodeInfo nodeInfo = findNodeAt(mRootNode, (int) event.getRawX(), (int) event.getRawY());
|
||||
onNodeInfoClick(nodeInfo);
|
||||
ArrayList<NodeInfo> list = new ArrayList<>();
|
||||
findNodeAt(mRootNode, (int) event.getRawX(), (int) event.getRawY(), list);
|
||||
showNodeInfoList(list);
|
||||
}
|
||||
return super.onTouchEvent(event);
|
||||
|
||||
}
|
||||
|
||||
private void showNodeInfoList(ArrayList<NodeInfo> list) {
|
||||
onNodeInfoClick(list.get(list.size() - 1));
|
||||
}
|
||||
|
||||
private void onNodeInfoClick(NodeInfo nodeInfo) {
|
||||
if (mOnNodeInfoSelectListener != null) {
|
||||
mOnNodeInfoSelectListener.onNodeSelect(nodeInfo);
|
||||
}
|
||||
}
|
||||
|
||||
private List<NodeInfo> findNodeAt(NodeInfo node, int x, int y) {
|
||||
List<NodeInfo> list = null;
|
||||
private void findNodeAt(NodeInfo node, int x, int y, List<NodeInfo> list) {
|
||||
for (NodeInfo child : node.getChildren()) {
|
||||
if (child != null && child.getBoundsInScreen().contains(x, y)) {
|
||||
if (list == null)
|
||||
list = findNodeAt(child, x, y);
|
||||
else
|
||||
list.addAll(findNodeAt(child, x, y));
|
||||
list.add(child);
|
||||
findNodeAt(child, x, y, list);
|
||||
}
|
||||
}
|
||||
if (list == null)
|
||||
list = new ArrayList<>();
|
||||
list.add(node);
|
||||
return list;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,8 +7,6 @@ import android.content.IntentFilter;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.design.widget.Snackbar;
|
||||
import android.support.v4.view.GravityCompat;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
import android.util.SparseArray;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
@@ -22,16 +20,11 @@ import com.jecelyin.editor.v2.core.widget.TextView;
|
||||
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.autojs.ScriptExecutionListener;
|
||||
import com.stardust.autojs.engine.JavaScriptEngine;
|
||||
import com.stardust.autojs.script.FileScriptSource;
|
||||
import com.stardust.autojs.script.JsBeautifier;
|
||||
import com.stardust.autojs.script.ScriptSource;
|
||||
import com.stardust.autojs.script.StringScriptSource;
|
||||
import com.stardust.scriptdroid.App;
|
||||
import com.stardust.scriptdroid.Pref;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
||||
import com.stardust.scriptdroid.external.floating_window.console.FloatingConsole;
|
||||
import com.stardust.scriptdroid.scripts.ScriptFile;
|
||||
import com.stardust.scriptdroid.tool.JsBeautifierFactory;
|
||||
import com.stardust.scriptdroid.tool.MaterialDialogFactory;
|
||||
|
||||
@@ -11,7 +11,7 @@ import android.view.ViewGroup;
|
||||
|
||||
import com.stardust.app.Fragment;
|
||||
import com.stardust.scriptdroid.external.floating_window.FloatingWindowManger;
|
||||
import com.stardust.scriptdroid.external.floating_window.HoverMenuService;
|
||||
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
||||
import com.stardust.view.ViewBinding;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.ui.console.ConsoleActivity;
|
||||
@@ -98,7 +98,7 @@ public class EditSideMenuFragment extends Fragment {
|
||||
@ViewBinding.Check(R.id.sw_floating_window)
|
||||
private void setFloatingWindowEnable(boolean enable) {
|
||||
if (enable && !FloatingWindowManger.isFloatingWindowShowing()) {
|
||||
FloatingWindowManger.showFloatingWindow();
|
||||
FloatingWindowManger.showHoverMenu();
|
||||
} else if (!enable && FloatingWindowManger.isFloatingWindowShowing()) {
|
||||
FloatingWindowManger.hideFloatingWindow();
|
||||
}
|
||||
|
||||
@@ -11,11 +11,10 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.stardust.app.Fragment;
|
||||
import com.stardust.scriptdroid.App;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
||||
import com.stardust.scriptdroid.external.floating_window.FloatingWindowManger;
|
||||
import com.stardust.scriptdroid.external.floating_window.HoverMenuService;
|
||||
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
||||
import com.stardust.scriptdroid.service.AccessibilityWatchDogService;
|
||||
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
||||
import com.stardust.scriptdroid.ui.console.ConsoleActivity;
|
||||
@@ -110,7 +109,7 @@ public class SlideMenuFragment extends Fragment {
|
||||
@ViewBinding.Check(R.id.sw_floating_window)
|
||||
private void setFloatingWindowEnable(boolean enable) {
|
||||
if (enable && !FloatingWindowManger.isFloatingWindowShowing()) {
|
||||
FloatingWindowManger.showFloatingWindow();
|
||||
FloatingWindowManger.showHoverMenu();
|
||||
} else if (!enable && FloatingWindowManger.isFloatingWindowShowing()) {
|
||||
FloatingWindowManger.hideFloatingWindow();
|
||||
}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
package com.stardust.scriptdroid.ui.main.operation;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.support.design.widget.Snackbar;
|
||||
|
||||
import com.squareup.haha.perflib.Main;
|
||||
import com.stardust.autojs.ScriptExecutionListener;
|
||||
import com.stardust.autojs.engine.JavaScriptEngine;
|
||||
import com.stardust.autojs.script.FileScriptSource;
|
||||
@@ -19,9 +18,7 @@ import com.stardust.scriptdroid.external.shortcut.ShortcutActivity;
|
||||
import com.stardust.scriptdroid.scripts.ScriptFile;
|
||||
import com.stardust.scriptdroid.scripts.sample.Sample;
|
||||
import com.stardust.scriptdroid.ui.edit.EditActivity;
|
||||
import com.stardust.scriptdroid.ui.main.MainActivity;
|
||||
|
||||
import java.io.IOException;
|
||||
import com.stardust.util.AssetsCache;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/1/23.
|
||||
@@ -77,6 +74,10 @@ public abstract class ScriptFileOperation {
|
||||
AutoJs.getInstance().getScriptEngineService().execute(new FileScriptSource(file));
|
||||
}
|
||||
|
||||
public static void run(Context context, Sample file) {
|
||||
AutoJs.getInstance().getScriptEngineService().execute(new StringScriptSource(file.name, AssetsCache.get(context.getAssets(), file.path)));
|
||||
}
|
||||
|
||||
public static void runOnEditView(ScriptSource scriptSource) {
|
||||
AutoJs.getInstance().getScriptEngineService().execute(scriptSource, SCRIPT_EXECUTION_LISTENER);
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.stardust.scriptdroid.scripts.sample.Sample;
|
||||
import com.stardust.scriptdroid.scripts.sample.SampleFileManager;
|
||||
import com.stardust.scriptdroid.ui.edit.ViewSampleActivity;
|
||||
import com.stardust.scriptdroid.ui.main.MainActivity;
|
||||
import com.stardust.scriptdroid.ui.main.operation.ScriptFileOperation;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@@ -53,11 +54,15 @@ public class SampleScriptListFragment extends Fragment {
|
||||
private void showMenuDialog(final Sample sample) {
|
||||
new MaterialDialog.Builder(getActivity())
|
||||
.title(sample.name)
|
||||
.items(getString(R.string.text_copy_to_my_scripts))
|
||||
.items(getString(R.string.text_run), getString(R.string.text_copy_to_my_scripts))
|
||||
.itemsCallback(new MaterialDialog.ListCallback() {
|
||||
@Override
|
||||
public void onSelection(MaterialDialog dialog, View itemView, int position, CharSequence text) {
|
||||
copySampleToMyScripts(sample);
|
||||
if (position == 0) {
|
||||
ScriptFileOperation.run(getActivity(), sample);
|
||||
} else {
|
||||
copySampleToMyScripts(sample);
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
@@ -66,13 +71,6 @@ public class SampleScriptListFragment extends Fragment {
|
||||
|
||||
private void copySampleToMyScripts(Sample sample) {
|
||||
MainActivity.importSample(getActivity(), sample);
|
||||
try {
|
||||
((MainActivity) getActivity()).getMyScriptListFragment().
|
||||
importFile(sample.name, getActivity().getAssets().open(sample.path));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
Snackbar.make(mSampleScriptListRecyclerView, R.string.text_import_fail, Snackbar.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
private void viewSample(Sample sample) {
|
||||
|
||||
@@ -28,6 +28,9 @@ import com.yqritc.recyclerviewflexibledivider.HorizontalDividerItemDecoration;
|
||||
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/3/27.
|
||||
*/
|
||||
@@ -131,6 +134,7 @@ public class ScriptAndFolderListRecyclerView extends RecyclerView {
|
||||
private StorageScriptProvider mStorageScriptProvider;
|
||||
private FileProcessListener mFileProcessListener;
|
||||
private boolean mScriptFileOperationEnabled = true;
|
||||
private Executor mFileListingExecutor = Executors.newSingleThreadExecutor();
|
||||
|
||||
public ScriptAndFolderListRecyclerView(Context context) {
|
||||
super(context);
|
||||
@@ -153,7 +157,7 @@ public class ScriptAndFolderListRecyclerView extends RecyclerView {
|
||||
if (mFileProcessListener != null) {
|
||||
mFileProcessListener.onFilesListing();
|
||||
}
|
||||
new Thread(new Runnable() {
|
||||
mFileListingExecutor.execute(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
final ScriptFile[] scriptFiles = mStorageScriptProvider.getDirectoryScriptFiles(directory);
|
||||
@@ -163,10 +167,11 @@ public class ScriptAndFolderListRecyclerView extends RecyclerView {
|
||||
mAdapter.setScripts(scriptFiles);
|
||||
if (mFileProcessListener != null)
|
||||
mFileProcessListener.onFileListed();
|
||||
smoothScrollToPosition(0);
|
||||
}
|
||||
});
|
||||
}
|
||||
}).start();
|
||||
});
|
||||
}
|
||||
|
||||
public void setCurrentDirectory(final ScriptFile directory) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.stardust.scriptdroid.ui.main.task;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.annotation.IntDef;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
@@ -75,19 +76,24 @@ public class TaskListRecyclerView extends ThemeColorRecyclerView implements Java
|
||||
setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
private void updateEngineList() {
|
||||
public void updateEngineList() {
|
||||
mScriptEngines.clear();
|
||||
mScriptEngines.addAll(ScriptEngineService.getInstance().getEngines());
|
||||
mAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onAttachedToWindow() {
|
||||
super.onAttachedToWindow();
|
||||
updateEngineList();
|
||||
mAdapter.notifyDataSetChanged();
|
||||
ScriptEngineService.getInstance().registerEngineLifecycleCallback(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onWindowVisibilityChanged(int visibility) {
|
||||
super.onWindowVisibilityChanged(visibility);
|
||||
updateEngineList();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.stardust.scriptdroid.ui.main.task;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@@ -56,6 +57,19 @@ public class TaskManagerFragment extends Fragment {
|
||||
}
|
||||
|
||||
});
|
||||
final SwipeRefreshLayout swipeRefreshLayout = $(R.id.swipe_refresh_layout);
|
||||
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
mTaskListRecyclerView.updateEngineList();
|
||||
mTaskListRecyclerView.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
swipeRefreshLayout.setRefreshing(false);
|
||||
}
|
||||
}, 800);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ViewBinding.Click(R.id.close_all)
|
||||
|
||||
Reference in New Issue
Block a user