add sublime text plugin support
This commit is contained in:
1 parent
4f25582ce5
commit
b12e26b797
51 files changed
+490
-100
No files matched your search
+2
-2
@@ -9,8 +9,8 @@ android {
|
|||||||
applicationId "com.stardust.scriptdroid"
|
applicationId "com.stardust.scriptdroid"
|
||||||
minSdkVersion 19
|
minSdkVersion 19
|
||||||
targetSdkVersion 23
|
targetSdkVersion 23
|
||||||
versionCode 126
|
versionCode 128
|
||||||
versionName "2.0.10 Beta"
|
versionName "2.0.10c Beta"
|
||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
ndk {
|
ndk {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.stardust.scriptdroid">
|
package="com.stardust.scriptdroid">
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||||
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
|
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
|
||||||
|
|||||||
@@ -74,7 +74,6 @@ public class App extends MultiDexApplication {
|
|||||||
AutoJs.initInstance(this);
|
AutoJs.initInstance(this);
|
||||||
JsBeautifierFactory.initJsBeautify(this, "js/jsbeautify.js");
|
JsBeautifierFactory.initJsBeautify(this, "js/jsbeautify.js");
|
||||||
initVolumeChangeObserver();
|
initVolumeChangeObserver();
|
||||||
startService(new Intent(this, AccessibilityWatchDogService.class));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initVolumeChangeObserver() {
|
private void initVolumeChangeObserver() {
|
||||||
|
|||||||
@@ -20,13 +20,12 @@ import com.stardust.scriptdroid.App;
|
|||||||
import com.stardust.scriptdroid.Pref;
|
import com.stardust.scriptdroid.Pref;
|
||||||
import com.stardust.scriptdroid.R;
|
import com.stardust.scriptdroid.R;
|
||||||
import com.stardust.scriptdroid.autojs.api.Shell;
|
import com.stardust.scriptdroid.autojs.api.Shell;
|
||||||
import com.stardust.scriptdroid.script.StorageScriptProvider;
|
|
||||||
import com.stardust.scriptdroid.ui.console.StardustConsole;
|
import com.stardust.scriptdroid.ui.console.StardustConsole;
|
||||||
import com.stardust.util.Supplier;
|
import com.stardust.util.Supplier;
|
||||||
import com.stardust.util.UiHandler;
|
import com.stardust.util.UiHandler;
|
||||||
import com.stardust.view.accessibility.AccessibilityInfoProvider;
|
import com.stardust.view.accessibility.AccessibilityInfoProvider;
|
||||||
import com.stardust.scriptdroid.layout_inspector.LayoutInspector;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.LayoutInspector;
|
||||||
import com.stardust.scriptdroid.record.accessibility.AccessibilityActionRecorder;
|
import com.stardust.scriptdroid.external.floating_window.menu.record.accessibility.AccessibilityActionRecorder;
|
||||||
import com.stardust.scriptdroid.service.AccessibilityWatchDogService;
|
import com.stardust.scriptdroid.service.AccessibilityWatchDogService;
|
||||||
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
||||||
import com.stardust.scriptdroid.ui.console.JraskaConsole;
|
import com.stardust.scriptdroid.ui.console.JraskaConsole;
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import android.view.WindowManager;
|
|||||||
|
|
||||||
import com.afollestad.materialdialogs.DialogAction;
|
import com.afollestad.materialdialogs.DialogAction;
|
||||||
import com.afollestad.materialdialogs.MaterialDialog;
|
import com.afollestad.materialdialogs.MaterialDialog;
|
||||||
|
import com.stardust.autojs.runtime.api.internal.VolatileBox;
|
||||||
import com.stardust.util.UiHandler;
|
import com.stardust.util.UiHandler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -2,15 +2,13 @@ package com.stardust.scriptdroid.autojs.api;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.ContextWrapper;
|
import android.content.ContextWrapper;
|
||||||
import android.content.DialogInterface;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.ContextThemeWrapper;
|
import android.view.ContextThemeWrapper;
|
||||||
|
|
||||||
import com.afollestad.materialdialogs.MaterialDialog;
|
import com.afollestad.materialdialogs.MaterialDialog;
|
||||||
import com.stardust.autojs.runtime.ScriptInterface;
|
import com.stardust.autojs.runtime.ScriptInterface;
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
|
||||||
import com.stardust.autojs.runtime.api.AppUtils;
|
import com.stardust.autojs.runtime.api.AppUtils;
|
||||||
import com.stardust.scriptdroid.App;
|
import com.stardust.autojs.runtime.api.internal.VolatileBox;
|
||||||
import com.stardust.scriptdroid.R;
|
import com.stardust.scriptdroid.R;
|
||||||
import com.stardust.util.ArrayUtils;
|
import com.stardust.util.ArrayUtils;
|
||||||
import com.stardust.util.UiHandler;
|
import com.stardust.util.UiHandler;
|
||||||
|
|||||||
Vendored
-6
@@ -6,18 +6,12 @@ import android.graphics.Canvas;
|
|||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.PixelFormat;
|
import android.graphics.PixelFormat;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.support.annotation.IntDef;
|
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
|
|
||||||
import com.stardust.enhancedfloaty.FloatyService;
|
import com.stardust.enhancedfloaty.FloatyService;
|
||||||
import com.stardust.enhancedfloaty.FloatyWindow;
|
import com.stardust.enhancedfloaty.FloatyWindow;
|
||||||
import com.stardust.scriptdroid.App;
|
|
||||||
import com.stardust.scriptdroid.autojs.api.VolatileBox;
|
|
||||||
|
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.concurrent.Future;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/5/9.
|
* Created by Stardust on 2017/5/9.
|
||||||
|
|||||||
Vendored
-1
@@ -20,7 +20,6 @@ import com.stardust.scriptdroid.autojs.AutoJs;
|
|||||||
import com.stardust.scriptdroid.external.floating_window.FloatingWindowManger;
|
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.FloatingLayoutBoundsView;
|
||||||
import com.stardust.scriptdroid.external.floating_window.menu.view.FloatingLayoutHierarchyView;
|
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.scriptdroid.tool.AccessibilityServiceTool;
|
||||||
import com.stardust.theme.ThemeColorManagerCompat;
|
import com.stardust.theme.ThemeColorManagerCompat;
|
||||||
import com.stardust.util.MessageEvent;
|
import com.stardust.util.MessageEvent;
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ import com.stardust.scriptdroid.App;
|
|||||||
import com.stardust.scriptdroid.R;
|
import com.stardust.scriptdroid.R;
|
||||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
import com.stardust.scriptdroid.autojs.AutoJs;
|
||||||
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
||||||
import com.stardust.scriptdroid.layout_inspector.LayoutInspector;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.LayoutInspector;
|
||||||
import com.stardust.util.ClipboardUtil;
|
import com.stardust.util.ClipboardUtil;
|
||||||
import com.stardust.scriptdroid.ui.main.MainActivity;
|
import com.stardust.scriptdroid.ui.main.MainActivity;
|
||||||
import com.stardust.util.MessageEvent;
|
import com.stardust.util.MessageEvent;
|
||||||
|
|||||||
+4
-6
@@ -15,17 +15,15 @@ import com.stardust.scriptdroid.R;
|
|||||||
import com.stardust.scriptdroid.accessibility.AccessibilityEventHelper;
|
import com.stardust.scriptdroid.accessibility.AccessibilityEventHelper;
|
||||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
import com.stardust.scriptdroid.autojs.AutoJs;
|
||||||
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
||||||
import com.stardust.scriptdroid.record.Recorder;
|
import com.stardust.scriptdroid.external.floating_window.menu.record.Recorder;
|
||||||
import com.stardust.scriptdroid.record.accessibility.AccessibilityActionRecorder;
|
import com.stardust.scriptdroid.external.floating_window.menu.record.accessibility.AccessibilityActionRecorder;
|
||||||
import com.stardust.scriptdroid.record.inputevent.InputEventConverter;
|
import com.stardust.scriptdroid.external.floating_window.menu.record.inputevent.KeyObserver;
|
||||||
import com.stardust.scriptdroid.record.inputevent.KeyObserver;
|
import com.stardust.scriptdroid.external.floating_window.menu.record.inputevent.TouchRecorder;
|
||||||
import com.stardust.scriptdroid.record.inputevent.TouchRecorder;
|
|
||||||
import com.stardust.scriptdroid.ui.main.MainActivity;
|
import com.stardust.scriptdroid.ui.main.MainActivity;
|
||||||
import com.stardust.util.MessageEvent;
|
import com.stardust.util.MessageEvent;
|
||||||
import com.stardust.view.ViewBinder;
|
import com.stardust.view.ViewBinder;
|
||||||
import com.stardust.view.ViewBinding;
|
import com.stardust.view.ViewBinding;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
|
|
||||||
import io.mattcarroll.hover.Navigator;
|
import io.mattcarroll.hover.Navigator;
|
||||||
|
|||||||
+1
-6
@@ -1,17 +1,12 @@
|
|||||||
package com.stardust.scriptdroid.layout_inspector;
|
package com.stardust.scriptdroid.external.floating_window.menu.layout_inspector;
|
||||||
|
|
||||||
import android.accessibilityservice.AccessibilityService;
|
import android.accessibilityservice.AccessibilityService;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.accessibility.AccessibilityEvent;
|
|
||||||
import android.view.accessibility.AccessibilityNodeInfo;
|
import android.view.accessibility.AccessibilityNodeInfo;
|
||||||
|
|
||||||
import com.stardust.scriptdroid.service.AccessibilityWatchDogService;
|
import com.stardust.scriptdroid.service.AccessibilityWatchDogService;
|
||||||
import com.stardust.util.UnderuseExecutors;
|
import com.stardust.util.UnderuseExecutors;
|
||||||
import com.stardust.view.accessibility.AccessibilityDelegate;
|
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/3/10.
|
* Created by Stardust on 2017/3/10.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.layout_inspector;
|
package com.stardust.scriptdroid.external.floating_window.menu.layout_inspector;
|
||||||
|
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.support.annotation.Keep;
|
import android.support.annotation.Keep;
|
||||||
+2
-4
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.layout_inspector.view;
|
package com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
@@ -12,12 +12,10 @@ import android.util.AttributeSet;
|
|||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import com.stardust.scriptdroid.layout_inspector.NodeInfo;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
|
||||||
import com.stardust.util.ViewUtil;
|
import com.stardust.util.ViewUtil;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.layout_inspector.view;
|
package com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
@@ -14,7 +14,7 @@ import android.widget.ListView;
|
|||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.stardust.scriptdroid.R;
|
import com.stardust.scriptdroid.R;
|
||||||
import com.stardust.scriptdroid.layout_inspector.NodeInfo;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
|
||||||
import com.stardust.util.ViewUtil;
|
import com.stardust.util.ViewUtil;
|
||||||
import com.stardust.widget.LevelBeamView;
|
import com.stardust.widget.LevelBeamView;
|
||||||
|
|
||||||
+2
-4
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.layout_inspector.view;
|
package com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
@@ -13,9 +13,7 @@ import android.widget.FrameLayout;
|
|||||||
import android.widget.ViewSwitcher;
|
import android.widget.ViewSwitcher;
|
||||||
|
|
||||||
import com.stardust.scriptdroid.R;
|
import com.stardust.scriptdroid.R;
|
||||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
|
||||||
import com.stardust.scriptdroid.layout_inspector.LayoutInspector;
|
|
||||||
import com.stardust.scriptdroid.layout_inspector.NodeInfo;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/3/10.
|
* Created by Stardust on 2017/3/10.
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.layout_inspector.view;
|
package com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
@@ -10,7 +10,7 @@ import android.widget.TextView;
|
|||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.stardust.scriptdroid.R;
|
import com.stardust.scriptdroid.R;
|
||||||
import com.stardust.scriptdroid.layout_inspector.NodeInfo;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
|
||||||
import com.stardust.util.ClipboardUtil;
|
import com.stardust.util.ClipboardUtil;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
package com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view;
|
||||||
|
|
||||||
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Stardust on 2017/3/10.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public interface OnNodeInfoSelectListener {
|
||||||
|
void onNodeSelect(NodeInfo info);
|
||||||
|
|
||||||
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.record;
|
package com.stardust.scriptdroid.external.floating_window.menu.record;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
+2
-3
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.record.accessibility;
|
package com.stardust.scriptdroid.external.floating_window.menu.record.accessibility;
|
||||||
|
|
||||||
import android.accessibilityservice.AccessibilityService;
|
import android.accessibilityservice.AccessibilityService;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
@@ -8,9 +8,8 @@ import android.view.accessibility.AccessibilityNodeInfo;
|
|||||||
|
|
||||||
import com.stardust.automator.UiObject;
|
import com.stardust.automator.UiObject;
|
||||||
import com.stardust.automator.simple_action.FilterAction;
|
import com.stardust.automator.simple_action.FilterAction;
|
||||||
import com.stardust.scriptdroid.layout_inspector.NodeInfo;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
|
||||||
import com.stardust.util.SparseArrayEntries;
|
import com.stardust.util.SparseArrayEntries;
|
||||||
import com.stardust.view.accessibility.AccessibilityNodeInfoAllocator;
|
|
||||||
import com.stardust.view.accessibility.AccessibilityNodeInfoHelper;
|
import com.stardust.view.accessibility.AccessibilityNodeInfoHelper;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
+2
-2
@@ -1,9 +1,9 @@
|
|||||||
package com.stardust.scriptdroid.record.accessibility;
|
package com.stardust.scriptdroid.external.floating_window.menu.record.accessibility;
|
||||||
|
|
||||||
import android.accessibilityservice.AccessibilityService;
|
import android.accessibilityservice.AccessibilityService;
|
||||||
import android.view.accessibility.AccessibilityEvent;
|
import android.view.accessibility.AccessibilityEvent;
|
||||||
|
|
||||||
import com.stardust.scriptdroid.record.Recorder;
|
import com.stardust.scriptdroid.external.floating_window.menu.record.Recorder;
|
||||||
import com.stardust.view.accessibility.AccessibilityDelegate;
|
import com.stardust.view.accessibility.AccessibilityDelegate;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.record.inputevent;
|
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/3/7.
|
* Created by Stardust on 2017/3/7.
|
||||||
+2
-5
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.record.inputevent;
|
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
@@ -7,12 +7,9 @@ import android.widget.Toast;
|
|||||||
import com.flurry.android.FlurryAgent;
|
import com.flurry.android.FlurryAgent;
|
||||||
import com.stardust.scriptdroid.App;
|
import com.stardust.scriptdroid.App;
|
||||||
import com.stardust.scriptdroid.R;
|
import com.stardust.scriptdroid.R;
|
||||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
import com.stardust.scriptdroid.external.floating_window.menu.record.Recorder;
|
||||||
import com.stardust.scriptdroid.record.Recorder;
|
|
||||||
import com.stardust.util.MapEntries;
|
import com.stardust.util.MapEntries;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
|
||||||
|
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
package com.stardust.scriptdroid.record.inputevent;
|
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
|
||||||
|
|
||||||
import com.stardust.scriptdroid.autojs.api.Shell;
|
import com.stardust.scriptdroid.autojs.api.Shell;
|
||||||
import com.stardust.scriptdroid.record.Recorder;
|
import com.stardust.scriptdroid.external.floating_window.menu.record.Recorder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/3/6.
|
* Created by Stardust on 2017/3/6.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.record.inputevent;
|
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.record.inputevent;
|
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.record.inputevent;
|
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.record.inputevent;
|
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.record.inputevent;
|
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/3/16.
|
* Created by Stardust on 2017/3/16.
|
||||||
+4
-4
@@ -7,10 +7,10 @@ import android.view.WindowManager;
|
|||||||
import com.afollestad.materialdialogs.MaterialDialog;
|
import com.afollestad.materialdialogs.MaterialDialog;
|
||||||
import com.afollestad.materialdialogs.Theme;
|
import com.afollestad.materialdialogs.Theme;
|
||||||
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
||||||
import com.stardust.scriptdroid.layout_inspector.NodeInfo;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
|
||||||
import com.stardust.scriptdroid.layout_inspector.view.LayoutBoundsView;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.LayoutBoundsView;
|
||||||
import com.stardust.scriptdroid.layout_inspector.view.NodeInfoView;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.NodeInfoView;
|
||||||
import com.stardust.scriptdroid.layout_inspector.view.OnNodeInfoSelectListener;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.OnNodeInfoSelectListener;
|
||||||
import com.stardust.util.MessageEvent;
|
import com.stardust.util.MessageEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+4
-4
@@ -7,10 +7,10 @@ import android.view.WindowManager;
|
|||||||
import com.afollestad.materialdialogs.MaterialDialog;
|
import com.afollestad.materialdialogs.MaterialDialog;
|
||||||
import com.afollestad.materialdialogs.Theme;
|
import com.afollestad.materialdialogs.Theme;
|
||||||
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
||||||
import com.stardust.scriptdroid.layout_inspector.NodeInfo;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
|
||||||
import com.stardust.scriptdroid.layout_inspector.view.LayoutHierarchyView;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.LayoutHierarchyView;
|
||||||
import com.stardust.scriptdroid.layout_inspector.view.NodeInfoView;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.NodeInfoView;
|
||||||
import com.stardust.scriptdroid.layout_inspector.view.OnNodeInfoSelectListener;
|
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.OnNodeInfoSelectListener;
|
||||||
import com.stardust.util.MessageEvent;
|
import com.stardust.util.MessageEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
-4
@@ -40,8 +40,4 @@ public class ImportIntentActivity extends BaseActivity {
|
|||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startMainActivity() {
|
|
||||||
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
+5
-1
@@ -44,7 +44,11 @@ public class RunIntentActivity extends Activity {
|
|||||||
source = new StringScriptSource(script);
|
source = new StringScriptSource(script);
|
||||||
} else if (path != null && new PathChecker(this).checkAndToastError(path)) {
|
} else if (path != null && new PathChecker(this).checkAndToastError(path)) {
|
||||||
ScriptSource fileScriptSource = new FileScriptSource(path);
|
ScriptSource fileScriptSource = new FileScriptSource(path);
|
||||||
source = new SequenceScriptSource(fileScriptSource.getName(), new StringScriptSource(script), fileScriptSource);
|
if (script != null) {
|
||||||
|
source = new SequenceScriptSource(fileScriptSource.getName(), new StringScriptSource(script), fileScriptSource);
|
||||||
|
} else {
|
||||||
|
source = fileScriptSource;
|
||||||
|
}
|
||||||
directoryPath = new File(path).getParent();
|
directoryPath = new File(path).getParent();
|
||||||
}
|
}
|
||||||
if (source != null) {
|
if (source != null) {
|
||||||
|
|||||||
-12
@@ -1,12 +0,0 @@
|
|||||||
package com.stardust.scriptdroid.layout_inspector.view;
|
|
||||||
|
|
||||||
import com.stardust.scriptdroid.layout_inspector.NodeInfo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Stardust on 2017/3/10.
|
|
||||||
*/
|
|
||||||
|
|
||||||
public interface OnNodeInfoSelectListener {
|
|
||||||
void onNodeSelect(NodeInfo info);
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.stardust.scriptdroid.sublime_plugin_client;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Stardust on 2017/5/11.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public interface Handler {
|
||||||
|
|
||||||
|
boolean handle(JsonObject data);
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.stardust.scriptdroid.sublime_plugin_client;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Stardust on 2017/5/11.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class Router implements Handler {
|
||||||
|
|
||||||
|
private Map<String, Handler> mHandlerMap = new HashMap<>();
|
||||||
|
private String mKey;
|
||||||
|
|
||||||
|
public Router(String key) {
|
||||||
|
mKey = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Router handler(String value, Handler handler) {
|
||||||
|
mHandlerMap.put(value, handler);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean handle(JsonObject data) {
|
||||||
|
Handler handler = mHandlerMap.get(data.get(mKey).getAsString());
|
||||||
|
return handler != null && handler.handle(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+102
@@ -0,0 +1,102 @@
|
|||||||
|
package com.stardust.scriptdroid.sublime_plugin_client;
|
||||||
|
|
||||||
|
import com.google.gson.JsonElement;
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
import com.google.gson.JsonParser;
|
||||||
|
import com.stardust.util.UiHandler;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.net.Socket;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Stardust on 2017/5/10.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class SublimePluginClient {
|
||||||
|
|
||||||
|
|
||||||
|
private Socket mSocket;
|
||||||
|
private Handler mResponseHandler;
|
||||||
|
private String host;
|
||||||
|
private int port;
|
||||||
|
private OutputStream mOutputStream;
|
||||||
|
private UiHandler mUiHandler;
|
||||||
|
|
||||||
|
public SublimePluginClient(UiHandler handler, String host, int port) {
|
||||||
|
this.host = host;
|
||||||
|
this.port = port;
|
||||||
|
mUiHandler = handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResponseHandler(Handler handler) {
|
||||||
|
mResponseHandler = handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void listen() {
|
||||||
|
if (mSocket != null) {
|
||||||
|
throw new IllegalStateException("Socket listening ");
|
||||||
|
}
|
||||||
|
new Thread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
mSocket = new Socket(host, port);
|
||||||
|
mSocket.setTcpNoDelay(true);
|
||||||
|
mUiHandler.toast("Connected");
|
||||||
|
mOutputStream = mSocket.getOutputStream();
|
||||||
|
startReadLoop(mSocket.getInputStream());
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
tryClose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void tryClose() {
|
||||||
|
try {
|
||||||
|
close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void send(JsonObject object) throws IOException {
|
||||||
|
if (mSocket == null) {
|
||||||
|
throw new IllegalStateException("Socket is not listening ");
|
||||||
|
}
|
||||||
|
mOutputStream.write(object.toString().getBytes());
|
||||||
|
mOutputStream.write("\n".getBytes());
|
||||||
|
mOutputStream.flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void close() throws IOException {
|
||||||
|
if (mSocket != null) {
|
||||||
|
mSocket.close();
|
||||||
|
mSocket = null;
|
||||||
|
mOutputStream = null;
|
||||||
|
mUiHandler.toast("Disconnected");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void startReadLoop(InputStream stream) throws IOException {
|
||||||
|
byte[] buffer = new byte[8192];
|
||||||
|
while (!Thread.currentThread().isInterrupted()) {
|
||||||
|
int len = stream.read(buffer);
|
||||||
|
if (len <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (mResponseHandler != null) {
|
||||||
|
String str = new String(buffer, 0, len);
|
||||||
|
JsonElement jsonElement = new JsonParser().parse(str);
|
||||||
|
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||||
|
mResponseHandler.handle(jsonObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+54
@@ -0,0 +1,54 @@
|
|||||||
|
package com.stardust.scriptdroid.sublime_plugin_client;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
import com.stardust.scriptdroid.autojs.AutoJs;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Stardust on 2017/5/11.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class SublimePluginClientManager {
|
||||||
|
|
||||||
|
private static SublimePluginClient client;
|
||||||
|
|
||||||
|
public static boolean isConnected() {
|
||||||
|
return client != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void disconnectIfNeeded() {
|
||||||
|
if (!isConnected())
|
||||||
|
return;
|
||||||
|
disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void disconnect() {
|
||||||
|
try {
|
||||||
|
client.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
client = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void connect(String host) {
|
||||||
|
client = new SublimePluginClient(AutoJs.getInstance().getUiHandler(), host, 1209);
|
||||||
|
client.setResponseHandler(new SublimeResponseHandler());
|
||||||
|
client.listen();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void log(String log) {
|
||||||
|
if (!isConnected())
|
||||||
|
return;
|
||||||
|
JsonObject object = new JsonObject();
|
||||||
|
object.addProperty("type", "log");
|
||||||
|
object.addProperty("log", log);
|
||||||
|
try {
|
||||||
|
client.send(object);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+85
@@ -0,0 +1,85 @@
|
|||||||
|
package com.stardust.scriptdroid.sublime_plugin_client;
|
||||||
|
|
||||||
|
import android.text.TextUtils;
|
||||||
|
import android.util.SparseArray;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
import com.stardust.autojs.engine.ScriptEngine;
|
||||||
|
import com.stardust.autojs.execution.ScriptExecution;
|
||||||
|
import com.stardust.autojs.script.StringScriptSource;
|
||||||
|
import com.stardust.pio.PFile;
|
||||||
|
import com.stardust.scriptdroid.autojs.AutoJs;
|
||||||
|
import com.stardust.scriptdroid.script.Scripts;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Stardust on 2017/5/11.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class SublimeResponseHandler implements Handler {
|
||||||
|
|
||||||
|
|
||||||
|
private Router mRouter = new Router("type")
|
||||||
|
.handler("command", new Router("command")
|
||||||
|
.handler("run", new Handler() {
|
||||||
|
@Override
|
||||||
|
public boolean handle(JsonObject data) {
|
||||||
|
String script = data.get("script").getAsString();
|
||||||
|
String name = data.get("name").getAsString();
|
||||||
|
int viewId = data.get("view_id").getAsInt();
|
||||||
|
runScript(viewId, name, script);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.handler("stop", new Handler() {
|
||||||
|
@Override
|
||||||
|
public boolean handle(JsonObject data) {
|
||||||
|
int viewId = data.get("view_id").getAsInt();
|
||||||
|
stopScript(viewId);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.handler("rerun", new Handler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean handle(JsonObject data) {
|
||||||
|
int viewId = data.get("view_id").getAsInt();
|
||||||
|
String script = data.get("script").getAsString();
|
||||||
|
String name = data.get("name").getAsString();
|
||||||
|
stopScript(viewId);
|
||||||
|
runScript(viewId, name, script);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.handler("stopAll", new Handler() {
|
||||||
|
@Override
|
||||||
|
public boolean handle(JsonObject data) {
|
||||||
|
AutoJs.getInstance().getScriptEngineService().stopAllAndToast();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
|
||||||
|
private SparseArray<ScriptExecution> mScriptExecutions = new SparseArray<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean handle(JsonObject data) {
|
||||||
|
return mRouter.handle(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void runScript(int viewId, String name, String script) {
|
||||||
|
if (TextUtils.isEmpty(name)) {
|
||||||
|
name = "[" + viewId + "]";
|
||||||
|
} else {
|
||||||
|
name = PFile.getNameWithoutExtension(name);
|
||||||
|
}
|
||||||
|
mScriptExecutions.put(viewId, Scripts.run(new StringScriptSource("<remote>:" + name, script)));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void stopScript(int viewId) {
|
||||||
|
ScriptExecution execution = mScriptExecutions.get(viewId);
|
||||||
|
if (execution != null) {
|
||||||
|
execution.getEngine().forceStop();
|
||||||
|
mScriptExecutions.delete(viewId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,9 +7,12 @@ package com.stardust.scriptdroid.tool;
|
|||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.WindowManager;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.stardust.scriptdroid.App;
|
import com.stardust.scriptdroid.App;
|
||||||
import com.stardust.scriptdroid.R;
|
import com.stardust.scriptdroid.R;
|
||||||
|
import com.stardust.util.IntentUtil;
|
||||||
|
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
@@ -26,6 +29,11 @@ public class CrashHandler implements UncaughtExceptionHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void uncaughtException(Thread thread, Throwable ex) {
|
public void uncaughtException(Thread thread, Throwable ex) {
|
||||||
|
if (causedByBadWindowToken(ex)) {
|
||||||
|
Toast.makeText(App.getApp(), R.string.text_no_floating_window_permission, Toast.LENGTH_SHORT).show();
|
||||||
|
IntentUtil.goToAppDetailSettings(App.getApp());
|
||||||
|
return;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
Log.e(TAG, "Uncaught Exception", ex);
|
Log.e(TAG, "Uncaught Exception", ex);
|
||||||
if (crashTooManyTimes())
|
if (crashTooManyTimes())
|
||||||
@@ -38,6 +46,16 @@ public class CrashHandler implements UncaughtExceptionHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean causedByBadWindowToken(Throwable e) {
|
||||||
|
while (e != null) {
|
||||||
|
if (e instanceof WindowManager.BadTokenException) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
e = e.getCause();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private void startErrorReportActivity(String msg, String detail) {
|
private void startErrorReportActivity(String msg, String detail) {
|
||||||
Intent intent = new Intent(App.getApp(), this.mErrorReportClass);
|
Intent intent = new Intent(App.getApp(), this.mErrorReportClass);
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package com.stardust.scriptdroid.tool;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.net.wifi.WifiInfo;
|
||||||
|
import android.net.wifi.WifiManager;
|
||||||
|
import android.text.format.Formatter;
|
||||||
|
|
||||||
|
import java.net.InetAddress;
|
||||||
|
|
||||||
|
import static android.content.Context.WIFI_SERVICE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Stardust on 2017/5/11.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class WifiTool {
|
||||||
|
|
||||||
|
public static String getWifiAddress(Context context) {
|
||||||
|
WifiManager wifiMgr = (WifiManager) context.getApplicationContext().getSystemService(WIFI_SERVICE);
|
||||||
|
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
|
||||||
|
int ip = wifiInfo.getIpAddress();
|
||||||
|
return Formatter.formatIpAddress(ip);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,6 +10,7 @@ import android.util.SparseArray;
|
|||||||
import com.jraska.console.Console;
|
import com.jraska.console.Console;
|
||||||
import com.stardust.autojs.runtime.api.AbstractConsole;
|
import com.stardust.autojs.runtime.api.AbstractConsole;
|
||||||
import com.stardust.scriptdroid.App;
|
import com.stardust.scriptdroid.App;
|
||||||
|
import com.stardust.scriptdroid.sublime_plugin_client.SublimePluginClientManager;
|
||||||
import com.stardust.util.SparseArrayEntries;
|
import com.stardust.util.SparseArrayEntries;
|
||||||
import com.stardust.util.TextUtils;
|
import com.stardust.util.TextUtils;
|
||||||
|
|
||||||
@@ -48,12 +49,14 @@ public class JraskaConsole extends AbstractConsole {
|
|||||||
public void println(int level, CharSequence charSequence) {
|
public void println(int level, CharSequence charSequence) {
|
||||||
Console.write(getLevelSpannable(level, getTag(level)));
|
Console.write(getLevelSpannable(level, getTag(level)));
|
||||||
Console.writeLine(getLevelSpannable(level, charSequence));
|
Console.writeLine(getLevelSpannable(level, charSequence));
|
||||||
|
SublimePluginClientManager.log(getTag(level) + charSequence.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(int level, CharSequence data) {
|
public void write(int level, CharSequence data) {
|
||||||
Console.write(getLevelSpannable(level, getTag(level)));
|
Console.write(getLevelSpannable(level, getTag(level)));
|
||||||
Console.write(getLevelSpannable(level, data));
|
Console.write(getLevelSpannable(level, data));
|
||||||
|
SublimePluginClientManager.log(getTag(level) + data.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private CharSequence getTag(int level) {
|
private CharSequence getTag(int level) {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import android.support.v4.view.ViewPager;
|
|||||||
import android.support.v4.widget.DrawerLayout;
|
import android.support.v4.widget.DrawerLayout;
|
||||||
import android.support.v7.app.ActionBarDrawerToggle;
|
import android.support.v7.app.ActionBarDrawerToggle;
|
||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.widget.Toolbar;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
@@ -24,6 +25,7 @@ import android.widget.Toast;
|
|||||||
|
|
||||||
import com.afollestad.materialdialogs.DialogAction;
|
import com.afollestad.materialdialogs.DialogAction;
|
||||||
import com.afollestad.materialdialogs.MaterialDialog;
|
import com.afollestad.materialdialogs.MaterialDialog;
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
import com.stardust.app.FragmentPagerAdapterBuilder;
|
import com.stardust.app.FragmentPagerAdapterBuilder;
|
||||||
import com.stardust.app.NotAskAgainDialog;
|
import com.stardust.app.NotAskAgainDialog;
|
||||||
import com.stardust.app.OnActivityResultDelegate;
|
import com.stardust.app.OnActivityResultDelegate;
|
||||||
@@ -36,6 +38,8 @@ import com.stardust.scriptdroid.script.ScriptFile;
|
|||||||
import com.stardust.scriptdroid.script.StorageScriptProvider;
|
import com.stardust.scriptdroid.script.StorageScriptProvider;
|
||||||
import com.stardust.scriptdroid.script.sample.Sample;
|
import com.stardust.scriptdroid.script.sample.Sample;
|
||||||
import com.stardust.scriptdroid.service.AccessibilityWatchDogService;
|
import com.stardust.scriptdroid.service.AccessibilityWatchDogService;
|
||||||
|
import com.stardust.scriptdroid.sublime_plugin_client.SublimePluginClient;
|
||||||
|
import com.stardust.scriptdroid.sublime_plugin_client.SublimeResponseHandler;
|
||||||
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
||||||
import com.stardust.scriptdroid.tool.DrawableSaver;
|
import com.stardust.scriptdroid.tool.DrawableSaver;
|
||||||
import com.stardust.scriptdroid.ui.BaseActivity;
|
import com.stardust.scriptdroid.ui.BaseActivity;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.stardust.scriptdroid.ui.main;
|
|||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.design.widget.Snackbar;
|
import android.support.design.widget.Snackbar;
|
||||||
import android.support.v4.app.FragmentActivity;
|
import android.support.v4.app.FragmentActivity;
|
||||||
@@ -10,13 +11,16 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import com.afollestad.materialdialogs.MaterialDialog;
|
||||||
import com.stardust.app.Fragment;
|
import com.stardust.app.Fragment;
|
||||||
import com.stardust.scriptdroid.R;
|
import com.stardust.scriptdroid.R;
|
||||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
import com.stardust.scriptdroid.autojs.AutoJs;
|
||||||
import com.stardust.scriptdroid.external.floating_window.FloatingWindowManger;
|
import com.stardust.scriptdroid.external.floating_window.FloatingWindowManger;
|
||||||
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
|
||||||
import com.stardust.scriptdroid.service.AccessibilityWatchDogService;
|
import com.stardust.scriptdroid.service.AccessibilityWatchDogService;
|
||||||
|
import com.stardust.scriptdroid.sublime_plugin_client.SublimePluginClientManager;
|
||||||
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
||||||
|
import com.stardust.scriptdroid.tool.WifiTool;
|
||||||
import com.stardust.scriptdroid.ui.console.LogActivity;
|
import com.stardust.scriptdroid.ui.console.LogActivity;
|
||||||
import com.stardust.scriptdroid.ui.help.HelpCatalogueActivity;
|
import com.stardust.scriptdroid.ui.help.HelpCatalogueActivity;
|
||||||
import com.stardust.util.UnderuseExecutors;
|
import com.stardust.util.UnderuseExecutors;
|
||||||
@@ -42,6 +46,7 @@ public class SlideMenuFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private SwitchCompat mAccessibilityServiceSwitch, mFloatingWindowSwitch;
|
private SwitchCompat mAccessibilityServiceSwitch, mFloatingWindowSwitch;
|
||||||
|
private SwitchCompat mDebugSwith;
|
||||||
private Executor mExecutor = UnderuseExecutors.getExecutor();
|
private Executor mExecutor = UnderuseExecutors.getExecutor();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -94,6 +99,7 @@ public class SlideMenuFragment extends Fragment {
|
|||||||
private void setUpSwitchCompat() {
|
private void setUpSwitchCompat() {
|
||||||
mAccessibilityServiceSwitch = $(R.id.sw_auto_operate_service);
|
mAccessibilityServiceSwitch = $(R.id.sw_auto_operate_service);
|
||||||
mFloatingWindowSwitch = $(R.id.sw_floating_window);
|
mFloatingWindowSwitch = $(R.id.sw_floating_window);
|
||||||
|
mDebugSwith = $(R.id.sw_debug);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -135,6 +141,27 @@ public class SlideMenuFragment extends Fragment {
|
|||||||
mFloatingWindowSwitch.toggle();
|
mFloatingWindowSwitch.toggle();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ViewBinding.Click(R.id.debug)
|
||||||
|
private void toggleDebugSwitch() {
|
||||||
|
mDebugSwith.toggle();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ViewBinding.Check(R.id.sw_debug)
|
||||||
|
private void setDebugEnabled(boolean enabled) {
|
||||||
|
if (enabled && !SublimePluginClientManager.isConnected()) {
|
||||||
|
new MaterialDialog.Builder(getActivity())
|
||||||
|
.title("服务器地址")
|
||||||
|
.input("", WifiTool.getWifiAddress(getActivity()), new MaterialDialog.InputCallback() {
|
||||||
|
@Override
|
||||||
|
public void onInput(@NonNull MaterialDialog dialog, CharSequence input) {
|
||||||
|
SublimePluginClientManager.connect(input.toString());
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.show();
|
||||||
|
} else if (!enabled) {
|
||||||
|
SublimePluginClientManager.disconnectIfNeeded();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ViewBinding.Click(R.id.stop_all_running_scripts)
|
@ViewBinding.Click(R.id.stop_all_running_scripts)
|
||||||
private void stopAllRunningScripts() {
|
private void stopAllRunningScripts() {
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
@@ -19,13 +19,13 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<com.stardust.scriptdroid.layout_inspector.view.NodeInfoView
|
<com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.NodeInfoView
|
||||||
android:id="@+id/node_info"
|
android:id="@+id/node_info"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="#ffffff"/>
|
android:background="#ffffff"/>
|
||||||
|
|
||||||
<com.stardust.scriptdroid.layout_inspector.view.LayoutHierarchyView
|
<com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.LayoutHierarchyView
|
||||||
android:id="@+id/bounds_view"
|
android:id="@+id/bounds_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|||||||
@@ -116,6 +116,39 @@
|
|||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/debug"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="52dp"
|
||||||
|
android:background="?selectableItemBackground"
|
||||||
|
android:gravity="center_vertical">
|
||||||
|
|
||||||
|
<com.stardust.theme.widget.ThemeColorImageViewCompat
|
||||||
|
android:id="@+id/icon_debug"
|
||||||
|
android:layout_width="20dp"
|
||||||
|
android:layout_height="20dp"
|
||||||
|
android:layout_alignParentLeft="true"
|
||||||
|
android:layout_margin="16dp"
|
||||||
|
android:src="@drawable/ic_debug"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_toRightOf="@id/icon_debug"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/debug"
|
||||||
|
android:textColor="@android:color/primary_text_light"/>
|
||||||
|
|
||||||
|
<com.stardust.theme.widget.ThemeColorSwitch
|
||||||
|
android:id="@+id/sw_debug"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_marginRight="16dp"/>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/stop_all_running_scripts"
|
android:id="@+id/stop_all_running_scripts"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|||||||
@@ -178,6 +178,7 @@
|
|||||||
<string name="text_again_and_again">又双</string>
|
<string name="text_again_and_again">又双</string>
|
||||||
<string name="text_again_and_again_again">又双叒</string>
|
<string name="text_again_and_again_again">又双叒</string>
|
||||||
<string name="text_again_and_again_again_again">又双叒叕</string>
|
<string name="text_again_and_again_again_again">又双叒叕</string>
|
||||||
|
<string name="debug">连接调试服务器</string>
|
||||||
|
|
||||||
<string-array name="record_control_keys">
|
<string-array name="record_control_keys">
|
||||||
<item>无</item>
|
<item>无</item>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.stardust.autojs.runtime;
|
|||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
import android.os.Looper;
|
||||||
|
|
||||||
import com.stardust.autojs.R;
|
import com.stardust.autojs.R;
|
||||||
import com.stardust.autojs.engine.ScriptEngine;
|
import com.stardust.autojs.engine.ScriptEngine;
|
||||||
@@ -10,6 +11,7 @@ import com.stardust.autojs.runtime.api.AbstractShell;
|
|||||||
import com.stardust.autojs.runtime.api.AppUtils;
|
import com.stardust.autojs.runtime.api.AppUtils;
|
||||||
import com.stardust.autojs.runtime.api.Console;
|
import com.stardust.autojs.runtime.api.Console;
|
||||||
import com.stardust.autojs.runtime.api.UiSelector;
|
import com.stardust.autojs.runtime.api.UiSelector;
|
||||||
|
import com.stardust.autojs.runtime.api.internal.VolatileBox;
|
||||||
import com.stardust.pio.UncheckedIOException;
|
import com.stardust.pio.UncheckedIOException;
|
||||||
import com.stardust.util.ClipboardUtil;
|
import com.stardust.util.ClipboardUtil;
|
||||||
import com.stardust.autojs.runtime.api.ProcessShell;
|
import com.stardust.autojs.runtime.api.ProcessShell;
|
||||||
@@ -117,6 +119,20 @@ public class ScriptRuntime extends AbstractScriptRuntime {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getClip() {
|
||||||
|
if (Looper.myLooper() == Looper.getMainLooper()) {
|
||||||
|
return ClipboardUtil.getClipOrEmpty(mUiHandler.getContext()).toString();
|
||||||
|
}
|
||||||
|
final VolatileBox<String> clip = new VolatileBox<>("");
|
||||||
|
mUiHandler.post(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
clip.setAndNotify(ClipboardUtil.getClipOrEmpty(mUiHandler.getContext()).toString());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return clip.blockedGet();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AbstractShell getRootShell() {
|
public AbstractShell getRootShell() {
|
||||||
ensureRootShell();
|
ensureRootShell();
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
package com.stardust.autojs.runtime;
|
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.api.AbstractShell;
|
|
||||||
import com.stardust.autojs.runtime.api.AppUtils;
|
|
||||||
import com.stardust.autojs.runtime.api.Console;
|
|
||||||
import com.stardust.util.Supplier;
|
|
||||||
import com.stardust.util.UiHandler;
|
|
||||||
|
|
||||||
public class ScriptRuntimeBuilder {
|
|
||||||
|
|
||||||
}
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.scriptdroid.autojs.api;
|
package com.stardust.autojs.runtime.api.internal;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
||||||
|
|
||||||
@@ -3,6 +3,7 @@ package com.stardust.util;
|
|||||||
import android.content.ClipData;
|
import android.content.ClipData;
|
||||||
import android.content.ClipboardManager;
|
import android.content.ClipboardManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -15,4 +16,17 @@ public class ClipboardUtil {
|
|||||||
public static void setClip(Context context, CharSequence text) {
|
public static void setClip(Context context, CharSequence text) {
|
||||||
((ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("", text));
|
((ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("", text));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static CharSequence getClip(Context context) {
|
||||||
|
return ((ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE)).getPrimaryClip().getItemAt(0).getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
public static CharSequence getClipOrEmpty(Context context) {
|
||||||
|
CharSequence clip = getClip(context);
|
||||||
|
if (clip == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return clip;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user