fix hyb1996-guest/AutoJsIssueReport#1341 and replace JavaAdapter to ProxyObject in ui module to avoid compilation to class file

This commit is contained in:
hyb1996
2017-05-17 14:47:45 +08:00
parent c4ec951a10
commit b3fad201f7
70 changed files with 366 additions and 289 deletions

View File

@@ -9,8 +9,8 @@ android {
applicationId "com.stardust.scriptdroid"
minSdkVersion 19
targetSdkVersion 23
versionCode 130
versionName "2.0.11 Alpha"
versionCode 132
versionName "2.0.11 Alpha3"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
ndk {

View File

@@ -90,7 +90,7 @@
android:theme="@style/IssueReporterTheme"/>
<service android:name="com.stardust.scriptdroid.external.ScriptExecutionIntentService"/>
<service android:name="com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService"/>
<service android:name="com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService"/>
<activity android:name=".external.tasker.TaskPrefEditActivity"/>

View File

@@ -1,56 +0,0 @@
bg
w
h
margin
marginLeft
margin*
padding
padding*
layout_gravity="center"
gravity
weight
var ui = {
};
ui.layout = function(xml){
}
ui.layout(
<linear orientation="vertical" w="fill" h="300" bg="#ff0000" gravity="center" layout_gravity="center">
<text text="测试" size="18" color="#000000" id="adasd"/>
<button id="btn" text="按钮"/>
</linear>
);
vat text = ui.asadsad;
<relative>
</relative>
<horizon>
</horizon>
<vertical>
</vertical>
function ui(){
}
module.exports = ui;

View File

@@ -5,7 +5,7 @@ sleep(2000);
while(true){
if(currentPackage() == 'com.tencent.mobileqq'){
swipe(600, 700, 600, 1400, 400);
swipe(600, 900, 600, 1400, 400);
}
sleep(300);
}

View File

@@ -0,0 +1,33 @@
"auto";
setScreenMetrics(1080, 1920);
launchApp("QQ");
sleep(1500);
click(891, 1851);
sleep(1000);
//点击好友动态
click(192, 453);
sleep(1000);
//点击头像
click(155, 638);
sleep(1000);
//点击留言
click(747, 775);
sleep(1000);
while(true){
if(currentPackage() == 'com.tencent.mobileqq'){
//点击箭头图标
click(1029, 433);
sleep(300);
//点击删除
click(530, 820);
sleep(300);
//点击确定
click(331, 1122);
sleep(200);
}
sleep(200);
}

View File

@@ -0,0 +1,27 @@
"auto";
setScreenMetrics(1080, 1920);
launchApp("QQ");
sleep(1500);
//点击动态图标
Tap(891, 1851);
//点击好友动态
Tap(192, 453);
//点击头像
Tap(155, 638);
//点击留言
Tap(747, 775);
while(true){
if(currentPackage() == 'com.tencent.mobileqq'){
//点击箭头图标
Tap(1029, 433);
//点击删除
Tap(530, 820);
//点击确定
Tap(331, 1122);
}
sleep(200);
}

View File

@@ -1,20 +0,0 @@
SetScreenMetrics(1080, 1920);
launchApp("QQ");
//点击动态图标
Tap(891, 1851);
//点击好友动态
Tap(192, 453);
//点击头像
Tap(155, 638);
//点击留言
Tap(747, 775);
while(true){
//点击箭头图标
Tap(1029, 433);
//点击删除
Tap(530, 820);
//点击确定
Tap(331, 1122);
}

View File

@@ -1,20 +1,14 @@
package com.stardust.scriptdroid;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.annotation.Keep;
import android.support.multidex.MultiDexApplication;
import android.util.Log;
import android.widget.Toast;
import com.squareup.leakcanary.LeakCanary;
import com.stardust.app.SimpleActivityLifecycleCallbacks;
import com.stardust.app.VolumeChangeObserver;
import com.stardust.scriptdroid.autojs.AutoJs;
import com.stardust.scriptdroid.external.floating_window.OverlayPermissionChecker;
import com.stardust.scriptdroid.service.AccessibilityWatchDogService;
import com.stardust.scriptdroid.statics.ScriptStatics;
import com.stardust.scriptdroid.tool.CrashHandler;
import com.stardust.scriptdroid.tool.JsBeautifierFactory;
@@ -23,9 +17,6 @@ import com.stardust.theme.ThemeColor;
import com.stardust.theme.ThemeColorManager;
import com.stardust.util.ScreenMetrics;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;
import java.lang.ref.WeakReference;
/**

View File

@@ -18,6 +18,7 @@ public class Pref {
private static final SharedPreferences DISPOSABLE_BOOLEAN = App.getApp().getSharedPreferences("DISPOSABLE_BOOLEAN", Context.MODE_PRIVATE);
private static final String KEY_SERVER_ADDRESS = "Still love you...17.5.14";
private static final String KEY_SHOULD_SHOW_ANNUNCIATION = "Sing about all the things you forgot, things you are not";
private static SharedPreferences.OnSharedPreferenceChangeListener onSharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
@@ -124,4 +125,8 @@ public class Pref {
public static void saveServerAddress(String address) {
def().edit().putString(KEY_SERVER_ADDRESS, address).apply();
}
public static boolean shouldShowAnnunciation() {
return getDisposableBoolean(KEY_SHOULD_SHOW_ANNUNCIATION, true);
}
}

View File

@@ -24,8 +24,8 @@ import com.stardust.scriptdroid.ui.console.StardustConsole;
import com.stardust.util.Supplier;
import com.stardust.util.UiHandler;
import com.stardust.view.accessibility.AccessibilityInfoProvider;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.LayoutInspector;
import com.stardust.scriptdroid.external.floating_window.menu.record.accessibility.AccessibilityActionRecorder;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.LayoutInspector;
import com.stardust.scriptdroid.external.floatingwindow.menu.record.accessibility.AccessibilityActionRecorder;
import com.stardust.scriptdroid.service.AccessibilityWatchDogService;
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
import com.stardust.scriptdroid.ui.console.JraskaConsole;

View File

@@ -1,12 +0,0 @@
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);
}

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window;
package com.stardust.scriptdroid.external.floatingwindow;
import android.content.Context;
import android.content.Intent;
@@ -12,7 +12,7 @@ import android.widget.Toast;
import com.stardust.scriptdroid.App;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
import com.stardust.util.IntentUtil;
/**

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window;
package com.stardust.scriptdroid.external.floatingwindow;
import android.content.Context;
import android.content.Intent;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu;
package com.stardust.scriptdroid.external.floatingwindow.menu;
import android.content.Context;
import android.content.res.Resources;
@@ -18,9 +18,9 @@ import android.util.TypedValue;
import android.view.View;
import com.stardust.scriptdroid.R;
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.scriptdroid.external.floatingwindow.menu.content.MainMenuNavigatorContent;
import com.stardust.scriptdroid.external.floatingwindow.menu.content.RecordNavigatorContent;
import com.stardust.scriptdroid.external.floatingwindow.menu.content.ScriptListNavigatorContent;
import com.stardust.theme.ThemeColorManagerCompat;
import java.util.ArrayList;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu;
package com.stardust.scriptdroid.external.floatingwindow.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.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.external.floatingwindow.FloatingWindowManger;
import com.stardust.scriptdroid.external.floatingwindow.menu.view.FloatingLayoutBoundsView;
import com.stardust.scriptdroid.external.floatingwindow.menu.view.FloatingLayoutHierarchyView;
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
import com.stardust.theme.ThemeColorManagerCompat;
import com.stardust.util.MessageEvent;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.content;
package com.stardust.scriptdroid.external.floatingwindow.menu.content;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -11,8 +11,8 @@ import android.widget.Toast;
import com.stardust.scriptdroid.App;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.autojs.AutoJs;
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.LayoutInspector;
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.LayoutInspector;
import com.stardust.util.ClipboardUtil;
import com.stardust.scriptdroid.ui.main.MainActivity;
import com.stardust.util.MessageEvent;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.content;
package com.stardust.scriptdroid.external.floatingwindow.menu.content;
import android.content.Context;
import android.support.annotation.NonNull;
@@ -14,11 +14,11 @@ 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.menu.HoverMenuService;
import com.stardust.scriptdroid.external.floating_window.menu.record.Recorder;
import com.stardust.scriptdroid.external.floating_window.menu.record.accessibility.AccessibilityActionRecorder;
import com.stardust.scriptdroid.external.floating_window.menu.record.inputevent.KeyObserver;
import com.stardust.scriptdroid.external.floating_window.menu.record.inputevent.TouchRecorder;
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
import com.stardust.scriptdroid.external.floatingwindow.menu.record.Recorder;
import com.stardust.scriptdroid.external.floatingwindow.menu.record.accessibility.AccessibilityActionRecorder;
import com.stardust.scriptdroid.external.floatingwindow.menu.record.inputevent.KeyObserver;
import com.stardust.scriptdroid.external.floatingwindow.menu.record.inputevent.TouchRecorder;
import com.stardust.scriptdroid.ui.main.MainActivity;
import com.stardust.util.MessageEvent;
import com.stardust.view.ViewBinder;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.content;
package com.stardust.scriptdroid.external.floatingwindow.menu.content;
import android.content.Context;
import android.support.annotation.NonNull;
@@ -7,10 +7,8 @@ import android.view.LayoutInflater;
import android.view.View;
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.menu.HoverMenuService;
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
import com.stardust.scriptdroid.script.ScriptFile;
import com.stardust.scriptdroid.script.Scripts;
import com.stardust.scriptdroid.script.StorageScriptProvider;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.layout_inspector;
package com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector;
import android.accessibilityservice.AccessibilityService;
import android.view.accessibility.AccessibilityNodeInfo;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.layout_inspector;
package com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector;
import android.graphics.Rect;
import android.support.annotation.Keep;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view;
package com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.view;
import android.content.Context;
import android.graphics.Canvas;
@@ -12,7 +12,7 @@ import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.NodeInfo;
import com.stardust.util.ViewUtil;
import java.util.ArrayList;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view;
package com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.view;
import android.content.Context;
import android.graphics.Canvas;
@@ -14,7 +14,7 @@ import android.widget.ListView;
import android.widget.TextView;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.NodeInfo;
import com.stardust.util.ViewUtil;
import com.stardust.widget.LevelBeamView;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view;
package com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.view;
import android.content.Context;
import android.os.Build;
@@ -13,7 +13,7 @@ import android.widget.FrameLayout;
import android.widget.ViewSwitcher;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.NodeInfo;
/**
* Created by Stardust on 2017/3/10.

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view;
package com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.view;
import android.content.Context;
import android.graphics.Color;
@@ -10,7 +10,7 @@ import android.widget.TextView;
import android.widget.Toast;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.NodeInfo;
import com.stardust.util.ClipboardUtil;
import java.lang.reflect.Field;

View File

@@ -0,0 +1,12 @@
package com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.view;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.NodeInfo;
/**
* Created by Stardust on 2017/3/10.
*/
public interface OnNodeInfoSelectListener {
void onNodeSelect(NodeInfo info);
}

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.record;
package com.stardust.scriptdroid.external.floatingwindow.menu.record;
import java.util.Arrays;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.record.accessibility;
package com.stardust.scriptdroid.external.floatingwindow.menu.record.accessibility;
import android.accessibilityservice.AccessibilityService;
import android.os.Build;
@@ -8,7 +8,7 @@ import android.view.accessibility.AccessibilityNodeInfo;
import com.stardust.automator.UiObject;
import com.stardust.automator.simple_action.FilterAction;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.NodeInfo;
import com.stardust.util.SparseArrayEntries;
import com.stardust.view.accessibility.AccessibilityNodeInfoHelper;

View File

@@ -1,9 +1,9 @@
package com.stardust.scriptdroid.external.floating_window.menu.record.accessibility;
package com.stardust.scriptdroid.external.floatingwindow.menu.record.accessibility;
import android.accessibilityservice.AccessibilityService;
import android.view.accessibility.AccessibilityEvent;
import com.stardust.scriptdroid.external.floating_window.menu.record.Recorder;
import com.stardust.scriptdroid.external.floatingwindow.menu.record.Recorder;
import com.stardust.view.accessibility.AccessibilityDelegate;
import java.util.Arrays;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
package com.stardust.scriptdroid.external.floatingwindow.menu.record.inputevent;
/**
* Created by Stardust on 2017/3/7.

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
package com.stardust.scriptdroid.external.floatingwindow.menu.record.inputevent;
import android.support.annotation.NonNull;
import android.text.TextUtils;
@@ -7,7 +7,7 @@ import android.widget.Toast;
import com.flurry.android.FlurryAgent;
import com.stardust.scriptdroid.App;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.external.floating_window.menu.record.Recorder;
import com.stardust.scriptdroid.external.floatingwindow.menu.record.Recorder;
import com.stardust.util.MapEntries;
import java.util.regex.Matcher;

View File

@@ -1,7 +1,7 @@
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
package com.stardust.scriptdroid.external.floatingwindow.menu.record.inputevent;
import com.stardust.scriptdroid.autojs.api.Shell;
import com.stardust.scriptdroid.external.floating_window.menu.record.Recorder;
import com.stardust.scriptdroid.external.floatingwindow.menu.record.Recorder;
/**
* Created by Stardust on 2017/3/6.

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
package com.stardust.scriptdroid.external.floatingwindow.menu.record.inputevent;
import android.support.annotation.NonNull;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
package com.stardust.scriptdroid.external.floatingwindow.menu.record.inputevent;
import android.support.annotation.NonNull;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
package com.stardust.scriptdroid.external.floatingwindow.menu.record.inputevent;
import android.support.annotation.NonNull;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
package com.stardust.scriptdroid.external.floatingwindow.menu.record.inputevent;
import android.support.annotation.NonNull;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.record.inputevent;
package com.stardust.scriptdroid.external.floatingwindow.menu.record.inputevent;
/**
* Created by Stardust on 2017/3/16.

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.view;
package com.stardust.scriptdroid.external.floatingwindow.menu.view;
import android.content.Context;
import android.view.KeyEvent;
@@ -6,11 +6,11 @@ import android.view.WindowManager;
import com.afollestad.materialdialogs.MaterialDialog;
import com.afollestad.materialdialogs.Theme;
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.LayoutBoundsView;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.NodeInfoView;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.OnNodeInfoSelectListener;
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.NodeInfo;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.view.LayoutBoundsView;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.view.NodeInfoView;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.view.OnNodeInfoSelectListener;
import com.stardust.util.MessageEvent;
/**

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.external.floating_window.menu.view;
package com.stardust.scriptdroid.external.floatingwindow.menu.view;
import android.content.Context;
import android.view.KeyEvent;
@@ -6,11 +6,11 @@ import android.view.WindowManager;
import com.afollestad.materialdialogs.MaterialDialog;
import com.afollestad.materialdialogs.Theme;
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.NodeInfo;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.LayoutHierarchyView;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.NodeInfoView;
import com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.OnNodeInfoSelectListener;
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.NodeInfo;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.view.LayoutHierarchyView;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.view.NodeInfoView;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.view.OnNodeInfoSelectListener;
import com.stardust.util.MessageEvent;
/**

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.sublime_plugin_client;
package com.stardust.scriptdroid.sublime;
import com.google.gson.JsonObject;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.sublime_plugin_client;
package com.stardust.scriptdroid.sublime;
import com.google.gson.JsonObject;

View File

@@ -1,11 +1,8 @@
package com.stardust.scriptdroid.sublime_plugin_client;
import android.os.Looper;
package com.stardust.scriptdroid.sublime;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.stardust.util.UiHandler;
import org.greenrobot.eventbus.EventBus;

View File

@@ -1,7 +1,6 @@
package com.stardust.scriptdroid.sublime_plugin_client;
package com.stardust.scriptdroid.sublime;
import com.google.gson.JsonObject;
import com.stardust.scriptdroid.autojs.AutoJs;
import java.io.IOException;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.sublime_plugin_client;
package com.stardust.scriptdroid.sublime;
import android.text.TextUtils;
import android.util.SparseArray;
@@ -6,7 +6,6 @@ import android.util.SparseArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonNull;
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;

View File

@@ -10,7 +10,7 @@ import android.util.SparseArray;
import com.jraska.console.Console;
import com.stardust.autojs.runtime.api.AbstractConsole;
import com.stardust.scriptdroid.App;
import com.stardust.scriptdroid.sublime_plugin_client.SublimePluginService;
import com.stardust.scriptdroid.sublime.SublimePluginService;
import com.stardust.util.SparseArrayEntries;
import com.stardust.util.TextUtils;

View File

@@ -13,7 +13,7 @@ import com.stardust.enhancedfloaty.FloatyService;
import com.stardust.enhancedfloaty.ResizableExpandableFloatyWindow;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.autojs.AutoJs;
import com.stardust.scriptdroid.external.floating_window.FloatingWindowManger;
import com.stardust.scriptdroid.external.floatingwindow.FloatingWindowManger;
import com.stardust.util.UiHandler;
import java.util.ArrayList;

View File

@@ -10,8 +10,8 @@ import android.view.View;
import android.view.ViewGroup;
import com.stardust.app.Fragment;
import com.stardust.scriptdroid.external.floating_window.FloatingWindowManger;
import com.stardust.scriptdroid.external.floating_window.menu.HoverMenuService;
import com.stardust.scriptdroid.external.floatingwindow.FloatingWindowManger;
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
import com.stardust.view.ViewBinding;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.ui.console.LogActivity;

View File

@@ -7,7 +7,6 @@ import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
@@ -29,10 +28,12 @@ import com.stardust.app.FragmentPagerAdapterBuilder;
import com.stardust.app.NotAskAgainDialog;
import com.stardust.app.OnActivityResultDelegate;
import com.stardust.enhancedfloaty.FloatyService;
import com.stardust.pio.PFile;
import com.stardust.scriptdroid.BuildConfig;
import com.stardust.scriptdroid.Pref;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.autojs.AutoJs;
import com.stardust.scriptdroid.external.floating_window.FloatingWindowManger;
import com.stardust.scriptdroid.external.floatingwindow.FloatingWindowManger;
import com.stardust.scriptdroid.script.ScriptFile;
import com.stardust.scriptdroid.script.StorageScriptProvider;
import com.stardust.scriptdroid.script.sample.Sample;
@@ -52,6 +53,7 @@ import com.stardust.util.MessageEvent;
import com.stardust.view.ViewBinder;
import com.stardust.view.ViewBinding;
import com.stardust.view.accessibility.AccessibilityServiceUtils;
import com.stardust.widget.CommonMarkdownView;
import com.stardust.widget.SlidingUpPanel;
import org.greenrobot.eventbus.EventBus;
@@ -94,6 +96,20 @@ public class MainActivity extends BaseActivity {
mIntentToHandle = getIntent();
EventBus.getDefault().register(this);
mVersionGuard = new VersionGuard(this);
showAnnunciationIfNeeded();
}
private void showAnnunciationIfNeeded() {
if (!Pref.shouldShowAnnunciation()) {
return;
}
new CommonMarkdownView.DialogBuilder(this)
.padding(36, 0, 36, 0)
.markdown(PFile.read(getResources().openRawResource(R.raw.annunciation)))
.title(R.string.text_annunciation)
.positiveText(R.string.ok)
.canceledOnTouchOutside(false)
.show();
}

View File

@@ -18,11 +18,11 @@ import com.stardust.app.Fragment;
import com.stardust.scriptdroid.Pref;
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.menu.HoverMenuService;
import com.stardust.scriptdroid.external.floatingwindow.FloatingWindowManger;
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
import com.stardust.scriptdroid.service.AccessibilityWatchDogService;
import com.stardust.scriptdroid.sublime_plugin_client.SublimePluginClient;
import com.stardust.scriptdroid.sublime_plugin_client.SublimePluginService;
import com.stardust.scriptdroid.sublime.SublimePluginClient;
import com.stardust.scriptdroid.sublime.SublimePluginService;
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
import com.stardust.scriptdroid.tool.WifiTool;
import com.stardust.scriptdroid.ui.console.LogActivity;

View File

@@ -280,23 +280,17 @@ public class MyScriptListFragment extends Fragment {
@ViewBinding.Click(R.id.delete)
private void deleteScriptFile() {
dismissDialogs();
if (mSelectedScriptFile.isDirectory()) {
new MaterialDialog.Builder(getActivity())
.title(R.string.delete_confirm)
.positiveText(R.string.cancel)
.negativeText(R.string.ok)
.onNegative(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
doDeletingScriptFile();
}
})
.show();
} else {
doDeletingScriptFile();
}
new MaterialDialog.Builder(getActivity())
.title(R.string.delete_confirm)
.positiveText(R.string.cancel)
.negativeText(R.string.ok)
.onNegative(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
doDeletingScriptFile();
}
})
.show();
}
private void doDeletingScriptFile() {

View File

@@ -138,7 +138,7 @@ public class SettingsActivity extends BaseActivity {
}
}
})
.entry(getString(R.string.text_about), new Runnable() {
.entry(getString(R.string.text_about_me_and_repo), new Runnable() {
@Override
public void run() {
startActivity(new Intent(getActivity(), AboutActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));

View File

@@ -4,19 +4,22 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.RequiresApi;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;
import com.afollestad.materialdialogs.MaterialDialog;
import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder;
import org.commonmark.ext.heading.anchor.HeadingAnchorExtension;
import org.commonmark.node.Node;
import org.commonmark.parser.Parser;
import org.commonmark.renderer.html.HtmlRenderer;
import java.util.Collection;
import java.util.Collections;
/**
@@ -31,6 +34,7 @@ public class CommonMarkdownView extends WebView {
.build();
private String mMarkdownHtml;
private String mPadding = "16px";
public CommonMarkdownView(Context context) {
super(context);
@@ -47,11 +51,15 @@ public class CommonMarkdownView extends WebView {
init();
}
public void setPadding(String padding) {
mPadding = padding;
}
private void init() {
setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
loadUrl("javascript:document.body.style.margin=\"12%\"; void 0");
loadUrl("javascript:document.body.style.margin=\"" + mPadding + "\"; void 0");
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@@ -104,4 +112,30 @@ public class CommonMarkdownView extends WebView {
loadHtml(mMarkdownHtml);
}
}
public static class DialogBuilder extends ThemeColorMaterialDialogBuilder {
private CommonMarkdownView mMarkdownView;
private FrameLayout mContainer;
public DialogBuilder(@NonNull Context context) {
super(context);
mContainer = new FrameLayout(context);
mMarkdownView = new CommonMarkdownView(context);
mContainer.addView(mMarkdownView);
mContainer.setClipToPadding(true);
customView(mContainer, false);
}
public DialogBuilder padding(int l, int t, int r, int b) {
mContainer.setPadding(l, t, r, b);
return this;
}
public DialogBuilder markdown(String md) {
mMarkdownView.loadMarkdown(md);
return this;
}
}
}

View File

@@ -19,13 +19,13 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.NodeInfoView
<com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.view.NodeInfoView
android:id="@+id/node_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff"/>
<com.stardust.scriptdroid.external.floating_window.menu.layout_inspector.view.LayoutHierarchyView
<com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.view.LayoutHierarchyView
android:id="@+id/bounds_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@@ -0,0 +1,5 @@
**本软件为免费软件!**
如果你是从任何地方购买的~那么您很可能已经上当了Σ(っ°Д°;)っ并且这些非官方渠道的软件的安全性无法保证。
另外本软件是开源的,在一定程度上保证了软件本身的安全性,您可以在关于页面查看GitHub上的[项目](https://github.com/hyb1996/NoRootScriptDroid)(欢迎Star~)

View File

@@ -182,6 +182,8 @@
<string name="text_connected">已连接</string>
<string name="text_disconnected">已断开连接</string>
<string name="text_server_address">服务器地址</string>
<string name="text_annunciation">声明</string>
<string name="text_about_me_and_repo">关于项目与开发者</string>
<string-array name="record_control_keys">
<item>无</item>

View File

@@ -72,7 +72,7 @@
<Preference android:title="@string/text_issue_report"/>
<Preference android:title="@string/text_about"/>
<Preference android:title="@string/text_about_me_and_repo"/>
<Preference android:title="@string/text_licenses"/>
</com.stardust.theme.preference.ThemeColorPreferenceCategory>

View File

@@ -45,7 +45,7 @@ module.exports = function(__runtime__, scope){
function toStrokes(args){
var screenMetrics = __runtime__.getScreenMetrics();
var len = args.length;
var strokes = [];
var strokes = java.lang.reflect.Array.newInstance(android.accessibilityservice.GestureDescription.StrokeDescription, len);
for(var i = 0; i < len; i++){
var gesture = args[i];
var pointsIndex = 1;
@@ -63,7 +63,7 @@ module.exports = function(__runtime__, scope){
for(var j = pointsIndex + 1; j < gestureLen; j++){
path.lineTo(screenMetrics.scaleX(gesture[j][0]), screenMetrics.scaleY(gesture[j][1]));
}
strokes.push(new android.accessibilityservice.GestureDescription.StrokeDescription(path, start, delay));
strokes[i] = new android.accessibilityservice.GestureDescription.StrokeDescription(path, start, delay);
}
return strokes;
}

View File

@@ -1,15 +1,15 @@
module.exports = function(__runtime__, scope){
var ui = Object.create(__runtime__.ui);
ui.__id_cache__ = {};
var ui = {};
ui.__view_cache__ = {};
ui.layout = function(xml){
view = ui.inflate(activity, xml.toString());
var view = __runtime__.ui.layoutInflater.inflate(activity, xml.toString());
ui.setContentView(view);
}
ui.setContentView = function(view){
ui.view = view;
ui.__id_cache__ = {};
ui.__view_cache__ = {};
activity.setContentView(view);
}
@@ -28,7 +28,10 @@ module.exports = function(__runtime__, scope){
}
ui.nonUi = function(action){
ui.runOnNonUiThread(action);
if(!ui.__executor__){
ui.__executor__ = java.util.concurrent.Executors.newSingleThreadExecutor();
}
ui.__executor__.submit(action);
}
ui.postDelay = function(action, delay){
@@ -39,7 +42,7 @@ module.exports = function(__runtime__, scope){
if(typeof(color) == 'string'){
color = android.graphics.Color.parseColor(color);
}
if(Build.VERSION.SDK_INT >= 21){
if(android.os.Build.VERSION.SDK_INT >= 21){
activity.getWindow().setStatusBarColor(color);
}
}
@@ -48,6 +51,10 @@ module.exports = function(__runtime__, scope){
activity.finish();
}
ui.findViewByStringId = function(view, id){
return com.stardust.autojs.runtime.api.ui.JsViewHelper.findViewByStringId(view, id);
}
function decorate(view){
var view = Object.create(view);
view._id = function(id){
@@ -70,23 +77,25 @@ module.exports = function(__runtime__, scope){
return view;
}
return new JavaAdapter(org.mozilla.javascript.NativeObject, {
put: function(name, start, value) {
ui[name] = value;
},
get: function(name, start) {
if(!ui[name] && ui.view){
var cacheView = ui.__id_cache__[name];
if(cacheView){
return cacheView;
}
cacheView = ui.id(name);
if(cacheView){
ui.__id_cache__[name] = cacheView;
return cacheView;
}
}
return ui[name];
}
});
var proxy = __runtime__.ui;
proxy.__proxy__ = {
set: function(name, value){
ui[name] = value;
},
get: function(name) {
if(!ui[name] && ui.view){
var cacheView = ui.__view_cache__[name];
if(cacheView){
return cacheView;
}
cacheView = ui.id(name);
if(cacheView){
ui.__view_cache__[name] = cacheView;
return cacheView;
}
}
return ui[name];
}
};
return proxy;
}

View File

@@ -2,18 +2,14 @@ package com.stardust.autojs.engine;
import android.util.Log;
import com.stardust.autojs.engine.preprocess.MultiLinePreprocessor;
import com.stardust.autojs.engine.preprocess.Preprocessor;
import com.stardust.autojs.rhino_android.AndroidContextFactory;
import com.stardust.autojs.rhino_android.RhinoAndroidHelper;
import com.stardust.autojs.rhino.AndroidContextFactory;
import com.stardust.autojs.rhino.RhinoAndroidHelper;
import com.stardust.autojs.runtime.ScriptInterruptedException;
import com.stardust.autojs.script.ScriptSource;
import com.stardust.pio.UncheckedIOException;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.ContextFactory;
import org.mozilla.javascript.ErrorReporter;
import org.mozilla.javascript.EvaluatorException;
import org.mozilla.javascript.ImporterTopLevel;
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.ScriptableObject;

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.rhino_android;
package com.stardust.autojs.rhino;
import com.android.dx.command.dexer.Main;

View File

@@ -1,12 +1,10 @@
package com.stardust.autojs.rhino_android;
package com.stardust.autojs.rhino;
import com.stardust.autojs.runtime.ScriptInterruptedException;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.ContextFactory;
import org.mozilla.javascript.tools.shell.ShellContextFactory;
import org.mozilla.javascript.xml.XMLLib;
import java.io.File;

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.rhino_android;
package com.stardust.autojs.rhino;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.GeneratedClassLoader;

View File

@@ -0,0 +1,57 @@
package com.stardust.autojs.rhino;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.NativeFunction;
import org.mozilla.javascript.NativeObject;
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.UniqueTag;
/**
* Created by Stardust on 2017/5/17.
*/
public class ProxyObject extends NativeObject {
private NativeFunction mGetter;
private NativeFunction mSetter;
@Override
public void put(String name, Scriptable start, Object value) {
if (name.equals("__proxy__")) {
NativeObject proxy = (NativeObject) value;
Object getter = proxy.get("get", start);
if (getter instanceof NativeFunction) {
mGetter = (NativeFunction) getter;
}
Object setter = proxy.get("set", start);
if (setter instanceof NativeFunction) {
mSetter = (NativeFunction) setter;
}
} else if (mSetter != null) {
mSetter.call(Context.getCurrentContext(), start, start, new Object[]{name, value});
} else {
super.put(name, start, value);
}
}
public Object getWithoutProxy(String name, Scriptable start) {
return super.get(name, start);
}
@Override
public Object get(String name, Scriptable start) {
Object value = super.get(name, start);
if (value != null && value != UniqueTag.NOT_FOUND) {
return value;
}
if (mGetter != null) {
value = mGetter.call(Context.getCurrentContext(), start, start, new Object[]{name});
}
return value;
}
@Override
public Object getDefaultValue(Class<?> typeHint) {
return toString();
}
}

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.rhino_android;
package com.stardust.autojs.rhino;
import android.support.annotation.VisibleForTesting;

View File

@@ -1,14 +1,12 @@
package com.stardust.autojs.runtime;
import android.view.LayoutInflater;
import com.stardust.autojs.engine.ScriptEngine;
import com.stardust.autojs.runtime.api.AbstractShell;
import com.stardust.autojs.runtime.api.AppUtils;
import com.stardust.autojs.runtime.api.Console;
import com.stardust.autojs.runtime.api.UiSelector;
import com.stardust.autojs.runtime.api.ui.UI;
import com.stardust.autojs.runtime.simple_action.SimpleActionAutomator;
import com.stardust.autojs.runtime.simpleaction.SimpleActionAutomator;
import com.stardust.util.ScreenMetrics;
import com.stardust.view.accessibility.AccessibilityInfoProvider;

View File

@@ -5,8 +5,7 @@ import android.os.Looper;
import com.stardust.autojs.R;
import com.stardust.autojs.engine.ScriptEngine;
import com.stardust.autojs.engine.preprocess.Preprocessor;
import com.stardust.autojs.rhino_android.AndroidClassLoader;
import com.stardust.autojs.rhino.AndroidClassLoader;
import com.stardust.autojs.runtime.api.AbstractShell;
import com.stardust.autojs.runtime.api.AppUtils;
import com.stardust.autojs.runtime.api.Console;

View File

@@ -1,49 +1,52 @@
package com.stardust.autojs.runtime.api.ui;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import com.stardust.autojs.rhino.ProxyObject;
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.UniqueTag;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* Created by Stardust on 2017/5/14.
*/
public class UI {
public class UI extends ProxyObject {
private Context mContext;
private JsLayoutInflater mJsLayoutInflater;
private ExecutorService mExecutorService;
private Map<String, Object> mProperties = new ConcurrentHashMap<>();
public UI(Context context, JsLayoutInflater layoutInflater) {
mContext = context;
mJsLayoutInflater = layoutInflater;
mProperties.put("layoutInflater", layoutInflater);
}
public UI(Context context) {
this(context, new ConvertLayoutInflater());
}
public JsLayoutInflater getLayoutInflater() {
return mJsLayoutInflater;
@Override
public String getClassName() {
return UI.class.getSimpleName();
}
public View inflate(Context context, String xml) {
return mJsLayoutInflater.inflate(context, xml);
}
public void runOnNonUiThread(Runnable action) {
if (mExecutorService == null) {
mExecutorService = Executors.newSingleThreadExecutor();
@Override
public Object get(String name, Scriptable start) {
Object value = super.get(name, start);
if (value != null && value != UniqueTag.NOT_FOUND && !value.equals(org.mozilla.javascript.Context.getUndefinedValue())) {
return value;
}
mExecutorService.submit(action);
value = mProperties.get(name);
if (value != null)
return value;
return UniqueTag.NOT_FOUND;
}
public View findViewByStringId(View view, String id) {
return JsViewHelper.findViewByStringId(view, id);
}
}

View File

@@ -1,28 +1,22 @@
package com.stardust.autojs.runtime.simple_action;
package com.stardust.autojs.runtime.simpleaction;
import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.GestureDescription;
import android.graphics.Path;
import android.graphics.Rect;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.support.annotation.RequiresApi;
import android.util.Log;
import android.view.ViewConfiguration;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import com.stardust.autojs.runtime.AbstractScriptRuntime;
import com.stardust.autojs.runtime.AccessibilityBridge;
import com.stardust.autojs.runtime.ScriptInterface;
import com.stardust.autojs.runtime.api.AutomatorConfig;
import com.stardust.automator.AccessibilityEventCommandHost;
import com.stardust.automator.GlobalActionAutomator;
import com.stardust.automator.UiObject;
import com.stardust.automator.simple_action.SimpleAction;
import com.stardust.automator.simple_action.ActionFactory;
import com.stardust.automator.simple_action.ActionTarget;
import com.stardust.automator.simple_action.SimpleAction;
import com.stardust.util.DeveloperUtils;
import com.stardust.util.ScreenMetrics;
@@ -173,21 +167,22 @@ public class SimpleActionAutomator {
}
@RequiresApi(api = Build.VERSION_CODES.N)
public boolean gestures(GestureDescription.StrokeDescription... strokes) {
public boolean gestures(Object strokes) {
prepareForGesture();
return mGlobalActionAutomator.gestures(strokes);
return mGlobalActionAutomator.gestures((GestureDescription.StrokeDescription[]) strokes);
}
//如果这里用GestureDescription.StrokeDescription[]为参数,安卓7.0以下会因为找不到这个类而报错
@RequiresApi(api = Build.VERSION_CODES.N)
public void gesturesAsync(GestureDescription.StrokeDescription... strokes) {
public void gesturesAsync(Object strokes) {
prepareForGesture();
mGlobalActionAutomator.gesturesAsync(strokes);
mGlobalActionAutomator.gesturesAsync((GestureDescription.StrokeDescription[]) strokes);
}
private void prepareForGesture() {
ensureAccessibilityServiceEnabled();
mScriptRuntime.requiresApi(24);
mGlobalActionAutomator.setService(mAccessibilityBridge.getService());
}
@ScriptInterface

View File

@@ -3,7 +3,6 @@ package com.stardust.autojs.script;
import android.content.Context;
import android.util.Log;
import com.stardust.autojs.rhino_android.RhinoAndroidHelper;
import com.stardust.pio.PFile;
import com.stardust.pio.UncheckedIOException;

View File

@@ -2,7 +2,6 @@ package com.stardust.automator;
import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.GestureDescription;
import android.content.Context;
import android.graphics.Path;
import android.os.Build;
import android.os.Handler;