refactor(autojs): move inputevent to package core
This commit is contained in:
4
.idea/misc.xml
generated
4
.idea/misc.xml
generated
@@ -6,8 +6,8 @@
|
|||||||
<item index="0" class="java.lang.String" itemvalue="android.support.annotation.Keep" />
|
<item index="0" class="java.lang.String" itemvalue="android.support.annotation.Keep" />
|
||||||
<item index="1" class="java.lang.String" itemvalue="android.webkit.JavascriptInterface" />
|
<item index="1" class="java.lang.String" itemvalue="android.webkit.JavascriptInterface" />
|
||||||
<item index="2" class="java.lang.String" itemvalue="butterknife.OnClick" />
|
<item index="2" class="java.lang.String" itemvalue="butterknife.OnClick" />
|
||||||
<item index="3" class="java.lang.String" itemvalue="com.stardust.autojs.runtime.ScriptClass" />
|
<item index="3" class="java.lang.String" itemvalue="com.stardust.autojs.annotation.ScriptClass" />
|
||||||
<item index="4" class="java.lang.String" itemvalue="com.stardust.autojs.runtime.ScriptInterface" />
|
<item index="4" class="java.lang.String" itemvalue="com.stardust.autojs.annotation.ScriptInterface" />
|
||||||
<item index="5" class="java.lang.String" itemvalue="com.stardust.view.ViewBind.Click" />
|
<item index="5" class="java.lang.String" itemvalue="com.stardust.view.ViewBind.Click" />
|
||||||
<item index="6" class="java.lang.String" itemvalue="com.stardust.view.ViewBinding.Check" />
|
<item index="6" class="java.lang.String" itemvalue="com.stardust.view.ViewBinding.Check" />
|
||||||
<item index="7" class="java.lang.String" itemvalue="com.stardust.view.ViewBinding.Click" />
|
<item index="7" class="java.lang.String" itemvalue="com.stardust.view.ViewBinding.Click" />
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ android {
|
|||||||
applicationId "com.stardust.scriptdroid"
|
applicationId "com.stardust.scriptdroid"
|
||||||
minSdkVersion 17
|
minSdkVersion 17
|
||||||
targetSdkVersion 23
|
targetSdkVersion 23
|
||||||
versionCode 158
|
versionCode 159
|
||||||
versionName "2.0.16 Alpha2"
|
versionName "2.0.16 Beta"
|
||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
ndk {
|
ndk {
|
||||||
|
|||||||
@@ -4,10 +4,7 @@ import android.content.Context;
|
|||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.api.AutomatorConfig;
|
import com.stardust.autojs.runtime.accessibility.AutomatorConfig;
|
||||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
|
||||||
|
|
||||||
import org.mozilla.javascript.NativeArray;
|
|
||||||
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@@ -129,6 +126,8 @@ public class Pref {
|
|||||||
}
|
}
|
||||||
def().edit().putLong(KEY_LAST_SHOW_AD_MILLIS, System.currentTimeMillis()).apply();
|
def().edit().putLong(KEY_LAST_SHOW_AD_MILLIS, System.currentTimeMillis()).apply();
|
||||||
return true;
|
return true;
|
||||||
|
case "Off":
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,18 +12,17 @@ import com.stardust.app.SimpleActivityLifecycleCallbacks;
|
|||||||
import com.stardust.autojs.ScriptEngineService;
|
import com.stardust.autojs.ScriptEngineService;
|
||||||
import com.stardust.autojs.ScriptEngineServiceBuilder;
|
import com.stardust.autojs.ScriptEngineServiceBuilder;
|
||||||
import com.stardust.autojs.engine.LoopBasedJavaScriptEngine;
|
import com.stardust.autojs.engine.LoopBasedJavaScriptEngine;
|
||||||
import com.stardust.autojs.engine.RhinoJavaScriptEngine;
|
|
||||||
import com.stardust.autojs.engine.RootAutomatorEngine;
|
import com.stardust.autojs.engine.RootAutomatorEngine;
|
||||||
import com.stardust.autojs.engine.ScriptEngine;
|
import com.stardust.autojs.engine.ScriptEngine;
|
||||||
import com.stardust.autojs.engine.ScriptEngineManager;
|
import com.stardust.autojs.engine.ScriptEngineManager;
|
||||||
import com.stardust.autojs.runtime.AccessibilityBridge;
|
import com.stardust.autojs.core.accessibility.AccessibilityBridge;
|
||||||
import com.stardust.autojs.runtime.ScriptRuntime;
|
import com.stardust.autojs.runtime.ScriptRuntime;
|
||||||
import com.stardust.autojs.runtime.ScriptException;
|
import com.stardust.autojs.runtime.exception.ScriptException;
|
||||||
import com.stardust.autojs.runtime.api.AbstractShell;
|
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.image.ScreenCaptureRequester;
|
import com.stardust.autojs.runtime.api.image.ScreenCaptureRequester;
|
||||||
import com.stardust.autojs.runtime.record.inputevent.InputEventObserver;
|
import com.stardust.autojs.core.inputevent.InputEventObserver;
|
||||||
import com.stardust.autojs.script.AutoFileSource;
|
import com.stardust.autojs.script.AutoFileSource;
|
||||||
import com.stardust.autojs.script.JavaScriptSource;
|
import com.stardust.autojs.script.JavaScriptSource;
|
||||||
import com.stardust.scriptdroid.App;
|
import com.stardust.scriptdroid.App;
|
||||||
@@ -36,7 +35,7 @@ import com.stardust.util.ScreenMetrics;
|
|||||||
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.autojs.runtime.record.accessibility.AccessibilityActionRecorder;
|
import com.stardust.autojs.core.record.accessibility.AccessibilityActionRecorder;
|
||||||
import com.stardust.view.accessibility.AccessibilityService;
|
import com.stardust.view.accessibility.AccessibilityService;
|
||||||
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;
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.stardust.scriptdroid.autojs.record;
|
||||||
|
|
||||||
|
import com.stardust.autojs.core.record.Recorder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Stardust on 2017/8/6.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class GlobalRecorder extends Recorder.AbstractRecorder {
|
||||||
|
|
||||||
|
private Recorder mRecorder;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void startImpl() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void stopImpl() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCode() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
package com.stardust.scriptdroid.external.floatingwindow.menu.content;
|
package com.stardust.scriptdroid.external.floatingwindow.menu.content;
|
||||||
|
|
||||||
import android.content.ClipData;
|
|
||||||
import android.content.ClipboardManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
@@ -16,11 +14,11 @@ 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.stardust.app.DialogUtils;
|
import com.stardust.app.DialogUtils;
|
||||||
import com.stardust.autojs.runtime.record.Recorder;
|
import com.stardust.autojs.core.record.Recorder;
|
||||||
import com.stardust.autojs.runtime.record.accessibility.AccessibilityActionRecorder;
|
import com.stardust.autojs.core.record.accessibility.AccessibilityActionRecorder;
|
||||||
import com.stardust.autojs.runtime.record.inputevent.InputEventObserver;
|
import com.stardust.autojs.core.inputevent.InputEventObserver;
|
||||||
import com.stardust.autojs.runtime.record.inputevent.KeyObserver;
|
import com.stardust.autojs.core.inputevent.ShellKeyObserver;
|
||||||
import com.stardust.autojs.runtime.record.inputevent.TouchRecorder;
|
import com.stardust.autojs.core.record.inputevent.TouchRecorder;
|
||||||
import com.stardust.scriptdroid.App;
|
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;
|
||||||
@@ -28,7 +26,6 @@ import com.stardust.scriptdroid.accessibility.AccessibilityEventHelper;
|
|||||||
import com.stardust.scriptdroid.autojs.AutoJs;
|
import com.stardust.scriptdroid.autojs.AutoJs;
|
||||||
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
|
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
|
||||||
import com.stardust.scriptdroid.ui.common.ScriptOperations;
|
import com.stardust.scriptdroid.ui.common.ScriptOperations;
|
||||||
import com.stardust.scriptdroid.ui.main.MainActivity;
|
|
||||||
import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder;
|
import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder;
|
||||||
import com.stardust.util.ClipboardUtil;
|
import com.stardust.util.ClipboardUtil;
|
||||||
import com.stardust.util.MessageEvent;
|
import com.stardust.util.MessageEvent;
|
||||||
@@ -43,14 +40,12 @@ import butterknife.OnClick;
|
|||||||
import io.mattcarroll.hover.Navigator;
|
import io.mattcarroll.hover.Navigator;
|
||||||
import io.mattcarroll.hover.NavigatorContent;
|
import io.mattcarroll.hover.NavigatorContent;
|
||||||
|
|
||||||
import static android.content.Context.CLIPBOARD_SERVICE;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/3/12.
|
* Created by Stardust on 2017/3/12.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class RecordNavigatorContent implements NavigatorContent, Recorder.OnStateChangedListener, KeyObserver.KeyListener {
|
public class RecordNavigatorContent implements NavigatorContent, Recorder.OnStateChangedListener, ShellKeyObserver.KeyListener {
|
||||||
|
|
||||||
private View mView;
|
private View mView;
|
||||||
@BindView(R.id.sw_recorded_by_root)
|
@BindView(R.id.sw_recorded_by_root)
|
||||||
@@ -76,7 +71,7 @@ public class RecordNavigatorContent implements NavigatorContent, Recorder.OnStat
|
|||||||
private TouchRecorder mTouchRecorder;
|
private TouchRecorder mTouchRecorder;
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private boolean mDiscard = false;
|
private boolean mDiscard = false;
|
||||||
private KeyObserver mKeyObserver;
|
private ShellKeyObserver mKeyObserver;
|
||||||
private InputEventObserver mInputEventObserver = InputEventObserver.getGlobal();
|
private InputEventObserver mInputEventObserver = InputEventObserver.getGlobal();
|
||||||
private OnKeyListener mVolumeKeyListener = new OnKeyListener() {
|
private OnKeyListener mVolumeKeyListener = new OnKeyListener() {
|
||||||
@Override
|
@Override
|
||||||
@@ -101,7 +96,7 @@ public class RecordNavigatorContent implements NavigatorContent, Recorder.OnStat
|
|||||||
AccessibilityService.getStickOnKeyObserver().addListener(mVolumeKeyListener);
|
AccessibilityService.getStickOnKeyObserver().addListener(mVolumeKeyListener);
|
||||||
mTouchRecorder = TouchRecorder.getGlobal(context);
|
mTouchRecorder = TouchRecorder.getGlobal(context);
|
||||||
if (Pref.hasRecordTrigger()) {
|
if (Pref.hasRecordTrigger()) {
|
||||||
mKeyObserver = new KeyObserver();
|
mKeyObserver = new ShellKeyObserver();
|
||||||
mInputEventObserver.addListener(mKeyObserver);
|
mInputEventObserver.addListener(mKeyObserver);
|
||||||
mKeyObserver.setKeyListener(this);
|
mKeyObserver.setKeyListener(this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import com.stardust.autojs.execution.ExecutionConfig;
|
|||||||
import com.stardust.autojs.execution.ScriptExecution;
|
import com.stardust.autojs.execution.ScriptExecution;
|
||||||
import com.stardust.autojs.execution.ScriptExecutionListener;
|
import com.stardust.autojs.execution.ScriptExecutionListener;
|
||||||
import com.stardust.autojs.execution.SimpleScriptExecutionListener;
|
import com.stardust.autojs.execution.SimpleScriptExecutionListener;
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||||
import com.stardust.autojs.script.ScriptSource;
|
import com.stardust.autojs.script.ScriptSource;
|
||||||
import com.stardust.autojs.script.StringScriptSource;
|
import com.stardust.autojs.script.StringScriptSource;
|
||||||
import com.stardust.scriptdroid.App;
|
import com.stardust.scriptdroid.App;
|
||||||
|
|||||||
@@ -1,83 +0,0 @@
|
|||||||
package com.stardust.scriptdroid.service;
|
|
||||||
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.app.Service;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.graphics.PixelFormat;
|
|
||||||
import android.hardware.display.DisplayManager;
|
|
||||||
import android.hardware.display.VirtualDisplay;
|
|
||||||
import android.media.ImageReader;
|
|
||||||
import android.media.projection.MediaProjection;
|
|
||||||
import android.media.projection.MediaProjectionManager;
|
|
||||||
import android.os.Build;
|
|
||||||
import android.os.IBinder;
|
|
||||||
import android.support.annotation.RequiresApi;
|
|
||||||
import android.util.DisplayMetrics;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Stardust on 2017/1/19.
|
|
||||||
*/
|
|
||||||
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
|
|
||||||
public class MediaProjectionScreenCaptureService extends Service {
|
|
||||||
private ImageReader mImageReader;
|
|
||||||
private int mScreenWidth;
|
|
||||||
private int mScreenHeight;
|
|
||||||
private int mScreenDensity;
|
|
||||||
private MediaProjection mMediaProjection;
|
|
||||||
private VirtualDisplay mVirtualDisplay;
|
|
||||||
public static Intent mResultData;
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate() {
|
|
||||||
if (mResultData == null) {
|
|
||||||
|
|
||||||
}
|
|
||||||
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
|
|
||||||
DisplayMetrics metrics = new DisplayMetrics();
|
|
||||||
windowManager.getDefaultDisplay().getMetrics(metrics);
|
|
||||||
mScreenDensity = metrics.densityDpi;
|
|
||||||
mScreenWidth = metrics.widthPixels;
|
|
||||||
mScreenHeight = metrics.heightPixels;
|
|
||||||
|
|
||||||
createImageReader();
|
|
||||||
startVirtualDisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IBinder onBind(Intent intent) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createImageReader() {
|
|
||||||
mImageReader = ImageReader.newInstance(mScreenWidth, mScreenHeight, PixelFormat.RGBA_8888, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void startVirtualDisplay() {
|
|
||||||
mMediaProjection = getMediaProjectionManager().getMediaProjection(Activity.RESULT_OK, mResultData);
|
|
||||||
mVirtualDisplay = mMediaProjection.createVirtualDisplay("screen-mirror",
|
|
||||||
mScreenWidth, mScreenHeight, mScreenDensity, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
|
|
||||||
mImageReader.getSurface(), null, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
private MediaProjectionManager getMediaProjectionManager() {
|
|
||||||
return (MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDestroy() {
|
|
||||||
if (mVirtualDisplay != null) {
|
|
||||||
mVirtualDisplay.release();
|
|
||||||
mVirtualDisplay = null;
|
|
||||||
}
|
|
||||||
if (mMediaProjection != null) {
|
|
||||||
mMediaProjection.stop();
|
|
||||||
mMediaProjection = null;
|
|
||||||
}
|
|
||||||
super.onDestroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
85
app/src/main/java/com/stardust/widget/PrefSwitch.java
Normal file
85
app/src/main/java/com/stardust/widget/PrefSwitch.java
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
package com.stardust.widget;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.content.res.TypedArray;
|
||||||
|
import android.graphics.Paint;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
|
import android.support.v7.widget.SwitchCompat;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
import android.widget.CompoundButton;
|
||||||
|
|
||||||
|
import com.stardust.scriptdroid.R;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Stardust on 2017/8/6.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class PrefSwitch extends SwitchCompat implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
|
|
||||||
|
private String mPrefKey;
|
||||||
|
private SharedPreferences mSharedPreferences;
|
||||||
|
|
||||||
|
public PrefSwitch(Context context) {
|
||||||
|
super(context);
|
||||||
|
init(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PrefSwitch(Context context, AttributeSet attrs) {
|
||||||
|
super(context, attrs);
|
||||||
|
init(attrs);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PrefSwitch(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||||
|
super(context, attrs, defStyleAttr);
|
||||||
|
init(attrs);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init(AttributeSet attrs) {
|
||||||
|
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
|
||||||
|
if (attrs != null) {
|
||||||
|
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.PrefSwitch);
|
||||||
|
mPrefKey = a.getString(R.styleable.PrefSwitch_key);
|
||||||
|
boolean defaultValue = a.getBoolean(R.styleable.PrefSwitch_defaultValue, false);
|
||||||
|
if (mPrefKey != null)
|
||||||
|
setChecked(mSharedPreferences.getBoolean(mPrefKey, defaultValue), false);
|
||||||
|
else
|
||||||
|
setChecked(defaultValue, false);
|
||||||
|
a.recycle();
|
||||||
|
}
|
||||||
|
mSharedPreferences.registerOnSharedPreferenceChangeListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void notifyPrefChanged(boolean isChecked) {
|
||||||
|
if (mPrefKey == null)
|
||||||
|
return;
|
||||||
|
mSharedPreferences.edit()
|
||||||
|
.putBoolean(mPrefKey, isChecked)
|
||||||
|
.apply();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setChecked(boolean checked) {
|
||||||
|
setChecked(checked, true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChecked(boolean checked, boolean notifyChange) {
|
||||||
|
super.setChecked(checked);
|
||||||
|
if (notifyChange) {
|
||||||
|
notifyPrefChanged(checked);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
|
if (mPrefKey != null && mPrefKey.equals(key)) {
|
||||||
|
setChecked(mSharedPreferences.getBoolean(mPrefKey, isChecked()), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -34,13 +34,15 @@
|
|||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:padding="16dp">
|
android:padding="16dp">
|
||||||
|
|
||||||
<android.support.v7.widget.SwitchCompat
|
<com.stardust.widget.PrefSwitch
|
||||||
android:id="@+id/sw_recorded_by_root"
|
android:id="@+id/sw_recorded_by_root"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignParentRight="true"
|
android:layout_alignParentRight="true"
|
||||||
android:textOff="@string/text_off"
|
android:textOff="@string/text_off"
|
||||||
android:textOn="@string/text_on"/>
|
android:textOn="@string/text_on"
|
||||||
|
app:defaultValue="false"
|
||||||
|
app:key="@string/key_record_with_root"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
|||||||
@@ -7,6 +7,12 @@
|
|||||||
<attr name="icon_color" format="color|reference"/>
|
<attr name="icon_color" format="color|reference"/>
|
||||||
</declare-styleable>
|
</declare-styleable>
|
||||||
|
|
||||||
|
<declare-styleable name="PrefSwitch">
|
||||||
|
<attr name="key" format="string|reference"/>
|
||||||
|
<attr name="defaultValue" format="boolean"/>
|
||||||
|
</declare-styleable>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<declare-styleable name="MaterialEditText">
|
<declare-styleable name="MaterialEditText">
|
||||||
<attr name="met_baseColor" format="color"/>
|
<attr name="met_baseColor" format="color"/>
|
||||||
|
|||||||
@@ -216,6 +216,7 @@
|
|||||||
<string name="text_edit_script">编辑脚本</string>
|
<string name="text_edit_script">编辑脚本</string>
|
||||||
<string name="text_run_script">运行脚本</string>
|
<string name="text_run_script">运行脚本</string>
|
||||||
<string name="text_import_script">导入脚本文件</string>
|
<string name="text_import_script">导入脚本文件</string>
|
||||||
|
<string name="key_record_with_root">key_record_with_root</string>
|
||||||
|
|
||||||
|
|
||||||
<string-array name="record_control_keys">
|
<string-array name="record_control_keys">
|
||||||
@@ -235,11 +236,13 @@
|
|||||||
<string-array name="ad_showing_mode_keys">
|
<string-array name="ad_showing_mode_keys">
|
||||||
<item>默认</item>
|
<item>默认</item>
|
||||||
<item>每天显示一次</item>
|
<item>每天显示一次</item>
|
||||||
|
<item>关闭广告(╥﹏╥)</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string-array name="ad_showing_mode_values">
|
<string-array name="ad_showing_mode_values">
|
||||||
<item>Default</item>
|
<item>Default</item>
|
||||||
<item>OncePerDay</item>
|
<item>OncePerDay</item>
|
||||||
|
<item>Off</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1,32 +1,18 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
<com.stardust.theme.preference.ThemeColorPreferenceCategory android:title="@string/text_no_root_script_record">
|
<com.stardust.theme.preference.ThemeColorPreferenceCategory android:title="@string/text_script_record">
|
||||||
|
|
||||||
<com.stardust.theme.preference.ThemeColorSwitchPreference
|
<com.stardust.theme.preference.ThemeColorSwitchPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/key_use_volume_control_record"
|
android:key="@string/key_use_volume_control_record"
|
||||||
android:summary="@string/summary_use_volume_control_record"
|
android:summary="@string/summary_use_volume_control_record"
|
||||||
android:title="@string/text_use_volume_control_record"/>
|
android:title="@string/text_use_volume_control_record"/>
|
||||||
</com.stardust.theme.preference.ThemeColorPreferenceCategory>
|
|
||||||
|
|
||||||
|
<com.stardust.theme.preference.ThemeColorSwitchPreference
|
||||||
<com.stardust.theme.preference.ThemeColorPreferenceCategory android:title="@string/text_script_record_with_root">
|
android:defaultValue="false"
|
||||||
|
android:key="@string/key_record_with_root"
|
||||||
<com.afollestad.materialdialogs.prefs.MaterialListPreference
|
android:title="@string/text_record_with_root"/>
|
||||||
android:defaultValue="@string/text_none"
|
|
||||||
android:entries="@array/record_control_keys"
|
|
||||||
android:entryValues="@array/record_control_values"
|
|
||||||
android:key="@string/key_start_record_trigger"
|
|
||||||
android:title="@string/text_use_key_to_start_record"
|
|
||||||
/>
|
|
||||||
<com.afollestad.materialdialogs.prefs.MaterialListPreference
|
|
||||||
android:defaultValue="@string/text_none"
|
|
||||||
android:entries="@array/record_control_keys"
|
|
||||||
android:entryValues="@array/record_control_values"
|
|
||||||
android:key="@string/key_stop_record_trigger"
|
|
||||||
android:title="@string/text_use_key_to_stop_record"
|
|
||||||
/>
|
|
||||||
</com.stardust.theme.preference.ThemeColorPreferenceCategory>
|
</com.stardust.theme.preference.ThemeColorPreferenceCategory>
|
||||||
|
|
||||||
<com.stardust.theme.preference.ThemeColorPreferenceCategory android:title="@string/text_script_running">
|
<com.stardust.theme.preference.ThemeColorPreferenceCategory android:title="@string/text_script_running">
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ module.exports = function(__runtime__, scope){
|
|||||||
return __runtime__.isStopped();
|
return __runtime__.isStopped();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scope.isShuttingDown = scope.isShopped;
|
||||||
|
|
||||||
scope.notStopped = function(){
|
scope.notStopped = function(){
|
||||||
return !isStopped();
|
return !isStopped();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import java.io.PrintWriter;
|
|||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import static com.stardust.autojs.runtime.ScriptInterruptedException.causedByInterrupted;
|
import static com.stardust.autojs.runtime.exception.ScriptInterruptedException.causedByInterrupted;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/1/23.
|
* Created by Stardust on 2017/1/23.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.autojs.runtime;
|
package com.stardust.autojs.annotation;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.autojs.runtime;
|
package com.stardust.autojs.annotation;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.autojs.runtime;
|
package com.stardust.autojs.annotation;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.autojs.runtime;
|
package com.stardust.autojs.core.accessibility;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
@@ -1,20 +1,17 @@
|
|||||||
package com.stardust.autojs.runtime.simpleaction;
|
package com.stardust.autojs.core.accessibility;
|
||||||
|
|
||||||
import android.accessibilityservice.AccessibilityService;
|
import android.accessibilityservice.AccessibilityService;
|
||||||
import android.accessibilityservice.GestureDescription;
|
import android.accessibilityservice.GestureDescription;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.RequiresApi;
|
import android.support.annotation.RequiresApi;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.accessibility.AccessibilityNodeInfo;
|
import android.view.accessibility.AccessibilityNodeInfo;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.AccessibilityBridge;
|
import com.stardust.autojs.annotation.ScriptInterface;
|
||||||
import com.stardust.autojs.runtime.ScriptInterface;
|
|
||||||
import com.stardust.autojs.runtime.ScriptRuntime;
|
import com.stardust.autojs.runtime.ScriptRuntime;
|
||||||
import com.stardust.autojs.runtime.api.AutomatorConfig;
|
import com.stardust.autojs.runtime.accessibility.AutomatorConfig;
|
||||||
import com.stardust.autojs.runtime.api.Loopers;
|
|
||||||
import com.stardust.automator.GlobalActionAutomator;
|
import com.stardust.automator.GlobalActionAutomator;
|
||||||
import com.stardust.automator.UiObject;
|
import com.stardust.automator.UiObject;
|
||||||
import com.stardust.automator.simple_action.ActionFactory;
|
import com.stardust.automator.simple_action.ActionFactory;
|
||||||
@@ -1,9 +1,6 @@
|
|||||||
package com.stardust.autojs.runtime.record.inputevent;
|
package com.stardust.autojs.core.inputevent;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.hardware.input.InputManager;
|
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.InputDevice;
|
import android.view.InputDevice;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.autojs.runtime.record.inputevent;
|
package com.stardust.autojs.core.inputevent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/8/5.
|
* Created by Stardust on 2017/8/5.
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
package com.stardust.autojs.runtime.record.inputevent;
|
package com.stardust.autojs.core.inputevent;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import com.stardust.autojs.core.record.inputevent.EventFormatException;
|
||||||
import com.stardust.autojs.runtime.api.Shell;
|
import com.stardust.autojs.runtime.api.Shell;
|
||||||
|
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
@@ -34,11 +35,11 @@ public class InputEventObserver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
double time;
|
public double time;
|
||||||
String device;
|
public String device;
|
||||||
String type;
|
public String type;
|
||||||
String code;
|
public String code;
|
||||||
String value;
|
public String value;
|
||||||
|
|
||||||
public InputEvent(double time, String device, String type, String code, String value) {
|
public InputEvent(double time, String device, String type, String code, String value) {
|
||||||
this.time = time;
|
this.time = time;
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
package com.stardust.autojs.core.inputevent;
|
||||||
|
|
||||||
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Stardust on 2017/8/6.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class KeyEventDispatcher {
|
||||||
|
|
||||||
|
public interface OnKeyListener {
|
||||||
|
void onVolumeUp();
|
||||||
|
|
||||||
|
void onVolumeDown();
|
||||||
|
|
||||||
|
void onCamera();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static KeyEventDispatcher sSingleton = new KeyEventDispatcher();
|
||||||
|
|
||||||
|
private CopyOnWriteArrayList<OnKeyListener> mOnKeyListeners = new CopyOnWriteArrayList<>();
|
||||||
|
|
||||||
|
public static KeyEventDispatcher getSingleton() {
|
||||||
|
return sSingleton;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addOnKeyListener(OnKeyListener listener) {
|
||||||
|
mOnKeyListeners.add(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean removeOnKeyListener(OnKeyListener listener) {
|
||||||
|
return mOnKeyListeners.remove(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void notifyVolumeUp() {
|
||||||
|
for (OnKeyListener listener : mOnKeyListeners) {
|
||||||
|
listener.onVolumeUp();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void notifyVolumeDown() {
|
||||||
|
for (OnKeyListener listener : mOnKeyListeners) {
|
||||||
|
listener.onVolumeDown();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void notifyCarema() {
|
||||||
|
for (OnKeyListener listener : mOnKeyListeners) {
|
||||||
|
listener.onCamera();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
package com.stardust.autojs.core.inputevent;
|
||||||
|
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
|
import android.util.SparseArray;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Stardust on 2017/5/4.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class ShellKeyObserver implements InputEventObserver.InputEventListener {
|
||||||
|
|
||||||
|
public interface KeyListener {
|
||||||
|
|
||||||
|
void onKeyDown(String keyName);
|
||||||
|
|
||||||
|
void onKeyUp(String keyName);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final Map<String, Integer> keyNameToCode = new HashMap<>();
|
||||||
|
private static final SparseArray<String> keyCodeToName = new SparseArray<>();
|
||||||
|
|
||||||
|
private KeyListener mKeyListener;
|
||||||
|
|
||||||
|
public ShellKeyObserver() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKeyListener(KeyListener keyListener) {
|
||||||
|
mKeyListener = keyListener;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onInputEvent(@NonNull InputEventObserver.InputEvent event) {
|
||||||
|
if (!event.type.equals("0001")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (event.value.equalsIgnoreCase("00000000")) {
|
||||||
|
notifyKeyUp(keyCodeToKeyName(Integer.parseInt(event.code, 16)));
|
||||||
|
}
|
||||||
|
if (event.value.equalsIgnoreCase("00000001")) {
|
||||||
|
notifyKeyDown(keyCodeToKeyName(Integer.parseInt(event.code, 16)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String keyCodeToKeyName(int code) {
|
||||||
|
return keyCodeToName.get(code);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static int keyNameToCode(String name) {
|
||||||
|
Integer code = keyNameToCode.get(name);
|
||||||
|
if (code == null)
|
||||||
|
return -1;
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void notifyKeyDown(String keyName) {
|
||||||
|
if (mKeyListener != null) {
|
||||||
|
mKeyListener.onKeyDown(keyName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void notifyKeyUp(String keyName) {
|
||||||
|
if (mKeyListener != null) {
|
||||||
|
mKeyListener.onKeyUp(keyName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
try {
|
||||||
|
for (Field field : InputEventCodes.class.getFields()) {
|
||||||
|
if (field.getName().startsWith("KEY_")) {
|
||||||
|
int keyCode = (int) field.get(null);
|
||||||
|
keyCodeToName.put(keyCode, field.getName());
|
||||||
|
keyNameToCode.put(field.getName(), keyCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.stardust.autojs.runtime.record.inputevent;
|
package com.stardust.autojs.core.inputevent;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
import static com.stardust.autojs.runtime.record.inputevent.InputEventRecorder.parseDeviceNumber;
|
import static com.stardust.autojs.core.record.inputevent.InputEventRecorder.parseDeviceNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/7/20.
|
* Created by Stardust on 2017/7/20.
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.autojs.runtime.internal;
|
package com.stardust.autojs.core.internal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/7/19.
|
* Created by Stardust on 2017/7/19.
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.autojs.runtime.record;
|
package com.stardust.autojs.core.record;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.autojs.runtime.record.accessibility;
|
package com.stardust.autojs.core.record.accessibility;
|
||||||
|
|
||||||
import android.accessibilityservice.AccessibilityService;
|
import android.accessibilityservice.AccessibilityService;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.stardust.autojs.runtime.record.accessibility;
|
package com.stardust.autojs.core.record.accessibility;
|
||||||
|
|
||||||
import android.accessibilityservice.AccessibilityService;
|
import android.accessibilityservice.AccessibilityService;
|
||||||
import android.view.accessibility.AccessibilityEvent;
|
import android.view.accessibility.AccessibilityEvent;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.record.Recorder;
|
import com.stardust.autojs.core.record.Recorder;
|
||||||
import com.stardust.view.accessibility.AccessibilityDelegate;
|
import com.stardust.view.accessibility.AccessibilityDelegate;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.autojs.runtime.record.inputevent;
|
package com.stardust.autojs.core.record.inputevent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/3/7.
|
* Created by Stardust on 2017/3/7.
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.stardust.autojs.runtime.record.inputevent;
|
package com.stardust.autojs.core.record.inputevent;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.record.Recorder;
|
import com.stardust.autojs.core.inputevent.InputEventObserver;
|
||||||
|
import com.stardust.autojs.core.record.Recorder;
|
||||||
|
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
@@ -38,7 +38,7 @@ public abstract class InputEventRecorder extends Recorder.AbstractRecorder imple
|
|||||||
|
|
||||||
public abstract String getCode();
|
public abstract String getCode();
|
||||||
|
|
||||||
static int parseDeviceNumber(String device) {
|
protected static int parseDeviceNumber(String device) {
|
||||||
Matcher matcher = LAST_INT_PATTERN.matcher(device);
|
Matcher matcher = LAST_INT_PATTERN.matcher(device);
|
||||||
if (matcher.find()) {
|
if (matcher.find()) {
|
||||||
String someNumberStr = matcher.group(1);
|
String someNumberStr = matcher.group(1);
|
||||||
@@ -1,12 +1,11 @@
|
|||||||
package com.stardust.autojs.runtime.record.inputevent;
|
package com.stardust.autojs.core.record.inputevent;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.hardware.input.InputManager;
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.InputDevice;
|
|
||||||
import android.view.MotionEvent;
|
|
||||||
|
|
||||||
|
import com.stardust.autojs.core.inputevent.InputEventCodes;
|
||||||
|
import com.stardust.autojs.core.inputevent.InputEventObserver;
|
||||||
import com.stardust.autojs.engine.RootAutomatorEngine;
|
import com.stardust.autojs.engine.RootAutomatorEngine;
|
||||||
import com.stardust.autojs.runtime.api.RootAutomator;
|
import com.stardust.autojs.runtime.api.RootAutomator;
|
||||||
import com.stardust.pio.UncheckedIOException;
|
import com.stardust.pio.UncheckedIOException;
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
package com.stardust.autojs.runtime.record.inputevent;
|
package com.stardust.autojs.core.record.inputevent;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.stardust.autojs.core.inputevent.InputEventObserver;
|
||||||
|
|
||||||
import static com.stardust.util.ScreenMetrics.getDeviceScreenHeight;
|
import static com.stardust.util.ScreenMetrics.getDeviceScreenHeight;
|
||||||
import static com.stardust.util.ScreenMetrics.getDeviceScreenWidth;
|
import static com.stardust.util.ScreenMetrics.getDeviceScreenWidth;
|
||||||
|
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
package com.stardust.autojs.runtime.record.inputevent;
|
package com.stardust.autojs.core.record.inputevent;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.stardust.autojs.core.inputevent.InputEventObserver;
|
||||||
|
|
||||||
import static com.stardust.util.ScreenMetrics.getDeviceScreenHeight;
|
import static com.stardust.util.ScreenMetrics.getDeviceScreenHeight;
|
||||||
import static com.stardust.util.ScreenMetrics.getDeviceScreenWidth;
|
import static com.stardust.util.ScreenMetrics.getDeviceScreenWidth;
|
||||||
|
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.stardust.autojs.runtime.record.inputevent;
|
package com.stardust.autojs.core.record.inputevent;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.record.Recorder;
|
import com.stardust.autojs.core.inputevent.InputEventObserver;
|
||||||
|
import com.stardust.autojs.core.record.Recorder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/3/16.
|
* Created by Stardust on 2017/3/16.
|
||||||
@@ -5,7 +5,7 @@ import android.util.Log;
|
|||||||
import com.stardust.autojs.BuildConfig;
|
import com.stardust.autojs.BuildConfig;
|
||||||
import com.stardust.autojs.rhino.AndroidContextFactory;
|
import com.stardust.autojs.rhino.AndroidContextFactory;
|
||||||
import com.stardust.autojs.rhino.RhinoAndroidHelper;
|
import com.stardust.autojs.rhino.RhinoAndroidHelper;
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||||
import com.stardust.autojs.script.JavaScriptSource;
|
import com.stardust.autojs.script.JavaScriptSource;
|
||||||
import com.stardust.autojs.script.StringScriptSource;
|
import com.stardust.autojs.script.StringScriptSource;
|
||||||
import com.stardust.pio.PFile;
|
import com.stardust.pio.PFile;
|
||||||
|
|||||||
@@ -6,11 +6,8 @@ import android.util.Log;
|
|||||||
|
|
||||||
import com.stardust.autojs.runtime.api.AbstractShell;
|
import com.stardust.autojs.runtime.api.AbstractShell;
|
||||||
import com.stardust.autojs.runtime.api.ProcessShell;
|
import com.stardust.autojs.runtime.api.ProcessShell;
|
||||||
import com.stardust.autojs.runtime.api.Shell;
|
import com.stardust.autojs.core.inputevent.InputDevices;
|
||||||
import com.stardust.autojs.runtime.record.inputevent.InputDevices;
|
|
||||||
import com.stardust.autojs.script.AutoFileSource;
|
import com.stardust.autojs.script.AutoFileSource;
|
||||||
import com.stardust.autojs.script.JavaScriptFileSource;
|
|
||||||
import com.stardust.autojs.script.ScriptSource;
|
|
||||||
import com.stardust.pio.PFile;
|
import com.stardust.pio.PFile;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package com.stardust.autojs.engine;
|
|||||||
|
|
||||||
import android.support.annotation.CallSuper;
|
import android.support.annotation.CallSuper;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptException;
|
import com.stardust.autojs.runtime.exception.ScriptException;
|
||||||
import com.stardust.autojs.script.ScriptSource;
|
import com.stardust.autojs.script.ScriptSource;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import android.util.Log;
|
|||||||
|
|
||||||
import com.stardust.autojs.engine.ScriptEngine;
|
import com.stardust.autojs.engine.ScriptEngine;
|
||||||
import com.stardust.autojs.engine.ScriptEngineManager;
|
import com.stardust.autojs.engine.ScriptEngineManager;
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||||
import com.stardust.autojs.script.ScriptSource;
|
import com.stardust.autojs.script.ScriptSource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.stardust.autojs.rhino;
|
package com.stardust.autojs.rhino;
|
||||||
|
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||||
|
|
||||||
import org.mozilla.javascript.Context;
|
import org.mozilla.javascript.Context;
|
||||||
import org.mozilla.javascript.tools.shell.ShellContextFactory;
|
import org.mozilla.javascript.tools.shell.ShellContextFactory;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.autojs.runtime.api;
|
package com.stardust.autojs.runtime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/7/21.
|
* Created by Stardust on 2017/7/21.
|
||||||
@@ -6,6 +6,8 @@ import android.os.Looper;
|
|||||||
|
|
||||||
import com.stardust.autojs.R;
|
import com.stardust.autojs.R;
|
||||||
import com.stardust.autojs.ScriptEngineService;
|
import com.stardust.autojs.ScriptEngineService;
|
||||||
|
import com.stardust.autojs.annotation.ScriptVariable;
|
||||||
|
import com.stardust.autojs.core.accessibility.AccessibilityBridge;
|
||||||
import com.stardust.autojs.engine.ScriptEngine;
|
import com.stardust.autojs.engine.ScriptEngine;
|
||||||
import com.stardust.autojs.rhino.AndroidClassLoader;
|
import com.stardust.autojs.rhino.AndroidClassLoader;
|
||||||
import com.stardust.autojs.runtime.api.AbstractShell;
|
import com.stardust.autojs.runtime.api.AbstractShell;
|
||||||
@@ -14,13 +16,15 @@ import com.stardust.autojs.runtime.api.Console;
|
|||||||
import com.stardust.autojs.runtime.api.Engines;
|
import com.stardust.autojs.runtime.api.Engines;
|
||||||
import com.stardust.autojs.runtime.api.Events;
|
import com.stardust.autojs.runtime.api.Events;
|
||||||
import com.stardust.autojs.runtime.api.Loopers;
|
import com.stardust.autojs.runtime.api.Loopers;
|
||||||
import com.stardust.autojs.runtime.api.ScriptBridges;
|
|
||||||
import com.stardust.autojs.runtime.api.Timers;
|
import com.stardust.autojs.runtime.api.Timers;
|
||||||
import com.stardust.autojs.runtime.api.UiSelector;
|
import com.stardust.autojs.runtime.api.UiSelector;
|
||||||
import com.stardust.autojs.runtime.api.image.Images;
|
import com.stardust.autojs.runtime.api.image.Images;
|
||||||
import com.stardust.autojs.runtime.api.image.ScreenCaptureRequester;
|
import com.stardust.autojs.runtime.api.image.ScreenCaptureRequester;
|
||||||
import com.stardust.autojs.runtime.api.ui.Dialogs;
|
import com.stardust.autojs.runtime.api.ui.Dialogs;
|
||||||
import com.stardust.autojs.runtime.simpleaction.SimpleActionAutomator;
|
import com.stardust.autojs.runtime.exception.ScriptEnvironmentException;
|
||||||
|
import com.stardust.autojs.runtime.exception.ScriptException;
|
||||||
|
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||||
|
import com.stardust.autojs.core.accessibility.SimpleActionAutomator;
|
||||||
import com.stardust.concurrent.VolatileBox;
|
import com.stardust.concurrent.VolatileBox;
|
||||||
import com.stardust.autojs.runtime.api.ui.UI;
|
import com.stardust.autojs.runtime.api.ui.UI;
|
||||||
import com.stardust.pio.UncheckedIOException;
|
import com.stardust.pio.UncheckedIOException;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.autojs.runtime.api;
|
package com.stardust.autojs.runtime.accessibility;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/4/29.
|
* Created by Stardust on 2017/4/29.
|
||||||
@@ -3,7 +3,7 @@ package com.stardust.autojs.runtime.api;
|
|||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptException;
|
import com.stardust.autojs.runtime.exception.ScriptException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/5/1.
|
* Created by Stardust on 2017/5/1.
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import android.text.TextUtils;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.webkit.MimeTypeMap;
|
import android.webkit.MimeTypeMap;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptInterface;
|
import com.stardust.autojs.annotation.ScriptInterface;
|
||||||
import com.stardust.util.IntentUtil;
|
import com.stardust.util.IntentUtil;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package com.stardust.autojs.runtime.api;
|
|||||||
|
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptInterface;
|
import com.stardust.autojs.annotation.ScriptInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/4/2.
|
* Created by Stardust on 2017/4/2.
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ package com.stardust.autojs.runtime.api;
|
|||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptException;
|
import com.stardust.autojs.runtime.ScriptBridges;
|
||||||
|
import com.stardust.autojs.runtime.exception.ScriptException;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|||||||
@@ -7,10 +7,11 @@ import android.os.Handler;
|
|||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.accessibility.AccessibilityEvent;
|
import android.view.accessibility.AccessibilityEvent;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.AccessibilityBridge;
|
import com.stardust.autojs.core.accessibility.AccessibilityBridge;
|
||||||
import com.stardust.autojs.runtime.ScriptException;
|
import com.stardust.autojs.runtime.ScriptBridges;
|
||||||
import com.stardust.autojs.runtime.record.inputevent.InputEventObserver;
|
import com.stardust.autojs.runtime.exception.ScriptException;
|
||||||
import com.stardust.autojs.runtime.record.inputevent.TouchObserver;
|
import com.stardust.autojs.core.inputevent.InputEventObserver;
|
||||||
|
import com.stardust.autojs.core.inputevent.TouchObserver;
|
||||||
import com.stardust.view.accessibility.AccessibilityService;
|
import com.stardust.view.accessibility.AccessibilityService;
|
||||||
import com.stardust.view.accessibility.NotificationListener;
|
import com.stardust.view.accessibility.NotificationListener;
|
||||||
import com.stardust.view.accessibility.OnKeyListener;
|
import com.stardust.view.accessibility.OnKeyListener;
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import android.webkit.WebView;
|
|||||||
import android.webkit.WebViewClient;
|
import android.webkit.WebViewClient;
|
||||||
|
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||||
|
|
||||||
import org.mozilla.javascript.Context;
|
import org.mozilla.javascript.Context;
|
||||||
import org.mozilla.javascript.Scriptable;
|
import org.mozilla.javascript.Scriptable;
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import android.content.Context;
|
|||||||
import android.webkit.ValueCallback;
|
import android.webkit.ValueCallback;
|
||||||
import android.webkit.WebView;
|
import android.webkit.WebView;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptClass;
|
import com.stardust.autojs.annotation.ScriptClass;
|
||||||
import com.stardust.autojs.runtime.ScriptInterface;
|
import com.stardust.autojs.annotation.ScriptInterface;
|
||||||
|
|
||||||
import org.mozilla.javascript.Scriptable;
|
import org.mozilla.javascript.Scriptable;
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,11 @@
|
|||||||
package com.stardust.autojs.runtime.api;
|
package com.stardust.autojs.runtime.api;
|
||||||
|
|
||||||
import android.graphics.Paint;
|
|
||||||
import android.os.Handler;
|
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.MessageQueue;
|
import android.os.MessageQueue;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||||
import com.stardust.lang.ThreadCompat;
|
import com.stardust.lang.ThreadCompat;
|
||||||
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package com.stardust.autojs.runtime.api;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import com.stardust.autojs.engine.RootAutomatorEngine;
|
import com.stardust.autojs.engine.RootAutomatorEngine;
|
||||||
import com.stardust.autojs.runtime.record.inputevent.InputEventCodes;
|
|
||||||
import com.stardust.pio.UncheckedIOException;
|
import com.stardust.pio.UncheckedIOException;
|
||||||
import com.stardust.util.ScreenMetrics;
|
import com.stardust.util.ScreenMetrics;
|
||||||
|
|
||||||
@@ -12,7 +11,7 @@ import java.io.File;
|
|||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import static com.stardust.autojs.runtime.record.inputevent.InputEventCodes.*;
|
import static com.stardust.autojs.core.inputevent.InputEventCodes.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/7/16.
|
* Created by Stardust on 2017/7/16.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import android.os.Handler;
|
|||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||||
import com.stardust.autojs.runtime.ScriptRuntime;
|
import com.stardust.autojs.runtime.ScriptRuntime;
|
||||||
import com.stardust.lang.ThreadCompat;
|
import com.stardust.lang.ThreadCompat;
|
||||||
import com.stardust.pio.UncheckedIOException;
|
import com.stardust.pio.UncheckedIOException;
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
package com.stardust.autojs.runtime.api;
|
package com.stardust.autojs.runtime.api;
|
||||||
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import com.stardust.autojs.runtime.ScriptBridges;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/7/21.
|
* Created by Stardust on 2017/7/21.
|
||||||
|
|||||||
@@ -1,15 +1,13 @@
|
|||||||
package com.stardust.autojs.runtime.api;
|
package com.stardust.autojs.runtime.api;
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.accessibility.AccessibilityNodeInfo;
|
import android.view.accessibility.AccessibilityNodeInfo;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.AccessibilityBridge;
|
import com.stardust.autojs.core.accessibility.AccessibilityBridge;
|
||||||
import com.stardust.autojs.runtime.ScriptInterface;
|
import com.stardust.autojs.annotation.ScriptInterface;
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
import com.stardust.autojs.runtime.accessibility.AutomatorConfig;
|
||||||
|
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||||
import com.stardust.automator.ActionArgument;
|
import com.stardust.automator.ActionArgument;
|
||||||
import com.stardust.automator.UiGlobalSelector;
|
import com.stardust.automator.UiGlobalSelector;
|
||||||
import com.stardust.automator.UiObject;
|
import com.stardust.automator.UiObject;
|
||||||
@@ -17,9 +15,6 @@ import com.stardust.automator.UiObjectCollection;
|
|||||||
import com.stardust.automator.filter.DfsFilter;
|
import com.stardust.automator.filter.DfsFilter;
|
||||||
import com.stardust.util.DeveloperUtils;
|
import com.stardust.util.DeveloperUtils;
|
||||||
import com.stardust.view.accessibility.AccessibilityNodeInfoAllocator;
|
import com.stardust.view.accessibility.AccessibilityNodeInfoAllocator;
|
||||||
import com.stardust.view.accessibility.AccessibilityService;
|
|
||||||
|
|
||||||
import org.mozilla.javascript.NativeArray;
|
|
||||||
|
|
||||||
import static android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS;
|
import static android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS;
|
||||||
import static android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.ACTION_ARGUMENT_COLUMN_INT;
|
import static android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.ACTION_ARGUMENT_COLUMN_INT;
|
||||||
|
|||||||
@@ -5,9 +5,8 @@ import android.graphics.Rect;
|
|||||||
import android.media.Image;
|
import android.media.Image;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.support.annotation.RequiresApi;
|
import android.support.annotation.RequiresApi;
|
||||||
import android.view.Display;
|
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||||
import com.stardust.concurrent.VolatileBox;
|
import com.stardust.concurrent.VolatileBox;
|
||||||
import com.stardust.util.ScreenMetrics;
|
import com.stardust.util.ScreenMetrics;
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.graphics.Color;
|
|
||||||
import android.graphics.Matrix;
|
import android.graphics.Matrix;
|
||||||
import android.graphics.Point;
|
|
||||||
import android.media.Image;
|
import android.media.Image;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@@ -18,9 +16,8 @@ import android.view.Surface;
|
|||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptRuntime;
|
import com.stardust.autojs.runtime.ScriptRuntime;
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||||
import com.stardust.autojs.runtime.ScriptVariable;
|
import com.stardust.autojs.annotation.ScriptVariable;
|
||||||
import com.stardust.autojs.runtime.api.Loopers;
|
|
||||||
import com.stardust.concurrent.VolatileBox;
|
import com.stardust.concurrent.VolatileBox;
|
||||||
import com.stardust.pio.UncheckedIOException;
|
import com.stardust.pio.UncheckedIOException;
|
||||||
import com.stardust.util.ScreenMetrics;
|
import com.stardust.util.ScreenMetrics;
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package com.stardust.autojs.runtime.api.image;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.Paint;
|
|
||||||
import android.graphics.PixelFormat;
|
import android.graphics.PixelFormat;
|
||||||
import android.hardware.display.DisplayManager;
|
import android.hardware.display.DisplayManager;
|
||||||
import android.hardware.display.VirtualDisplay;
|
import android.hardware.display.VirtualDisplay;
|
||||||
@@ -18,7 +17,7 @@ import android.support.annotation.Nullable;
|
|||||||
import android.support.annotation.RequiresApi;
|
import android.support.annotation.RequiresApi;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||||
import com.stardust.util.ScreenMetrics;
|
import com.stardust.util.ScreenMetrics;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -2,15 +2,14 @@ package com.stardust.autojs.runtime.api.ui;
|
|||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.ContextWrapper;
|
|
||||||
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.afollestad.materialdialogs.Theme;
|
import com.afollestad.materialdialogs.Theme;
|
||||||
import com.stardust.autojs.R;
|
import com.stardust.autojs.R;
|
||||||
import com.stardust.autojs.runtime.ScriptInterface;
|
import com.stardust.autojs.annotation.ScriptInterface;
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||||
import com.stardust.autojs.runtime.api.AppUtils;
|
import com.stardust.autojs.runtime.api.AppUtils;
|
||||||
import com.stardust.concurrent.VolatileBox;
|
import com.stardust.concurrent.VolatileBox;
|
||||||
import com.stardust.util.ArrayUtils;
|
import com.stardust.util.ArrayUtils;
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import android.content.Intent;
|
|||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
|
|
||||||
import com.stardust.autojs.runtime.ScriptInterface;
|
import com.stardust.autojs.annotation.ScriptInterface;
|
||||||
import com.stardust.autojs.runtime.ScriptInterruptedException;
|
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
|
||||||
import com.stardust.autojs.runtime.api.AbstractConsole;
|
import com.stardust.autojs.runtime.api.AbstractConsole;
|
||||||
import com.stardust.autojs.runtime.api.Console;
|
import com.stardust.autojs.runtime.api.Console;
|
||||||
import com.stardust.enhancedfloaty.FloatyService;
|
import com.stardust.enhancedfloaty.FloatyService;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.stardust.autojs.runtime;
|
package com.stardust.autojs.runtime.exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/7/1.
|
* Created by Stardust on 2017/7/1.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ScriptEnvironmentException extends RuntimeException {
|
public class ScriptEnvironmentException extends ScriptException {
|
||||||
public ScriptEnvironmentException(String s) {
|
public ScriptEnvironmentException(String s) {
|
||||||
super(s);
|
super(s);
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.autojs.runtime;
|
package com.stardust.autojs.runtime.exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/1/29.
|
* Created by Stardust on 2017/1/29.
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.stardust.autojs.runtime;
|
package com.stardust.autojs.runtime.exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Stardust on 2017/4/30.
|
* Created by Stardust on 2017/4/30.
|
||||||
@@ -1,356 +0,0 @@
|
|||||||
package com.stardust.autojs.runtime.record.inputevent;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.util.SparseArray;
|
|
||||||
import android.view.KeyEvent;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Stardust on 2017/5/4.
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class KeyObserver implements InputEventObserver.InputEventListener {
|
|
||||||
|
|
||||||
|
|
||||||
public static final int KEY_RESERVED = 0;
|
|
||||||
public static final int KEY_ESC = 1;
|
|
||||||
public static final int KEY_1 = 2;
|
|
||||||
public static final int KEY_2 = 3;
|
|
||||||
public static final int KEY_3 = 4;
|
|
||||||
public static final int KEY_4 = 5;
|
|
||||||
public static final int KEY_5 = 6;
|
|
||||||
public static final int KEY_6 = 7;
|
|
||||||
public static final int KEY_7 = 8;
|
|
||||||
public static final int KEY_8 = 9;
|
|
||||||
public static final int KEY_9 = 10;
|
|
||||||
public static final int KEY_0 = 11;
|
|
||||||
public static final int KEY_MINUS = 12;
|
|
||||||
public static final int KEY_EQUAL = 13;
|
|
||||||
public static final int KEY_BACKSPACE = 14;
|
|
||||||
public static final int KEY_TAB = 15;
|
|
||||||
public static final int KEY_Q = 16;
|
|
||||||
public static final int KEY_W = 17;
|
|
||||||
public static final int KEY_E = 18;
|
|
||||||
public static final int KEY_R = 19;
|
|
||||||
public static final int KEY_T = 20;
|
|
||||||
public static final int KEY_Y = 21;
|
|
||||||
public static final int KEY_U = 22;
|
|
||||||
public static final int KEY_I = 23;
|
|
||||||
public static final int KEY_O = 24;
|
|
||||||
public static final int KEY_P = 25;
|
|
||||||
public static final int KEY_LEFTBRACE = 26;
|
|
||||||
public static final int KEY_RIGHTBRACE = 27;
|
|
||||||
public static final int KEY_ENTER = 28;
|
|
||||||
public static final int KEY_LEFTCTRL = 29;
|
|
||||||
public static final int KEY_A = 30;
|
|
||||||
public static final int KEY_S = 31;
|
|
||||||
public static final int KEY_D = 32;
|
|
||||||
public static final int KEY_F = 33;
|
|
||||||
public static final int KEY_G = 34;
|
|
||||||
public static final int KEY_H = 35;
|
|
||||||
public static final int KEY_J = 36;
|
|
||||||
public static final int KEY_K = 37;
|
|
||||||
public static final int KEY_L = 38;
|
|
||||||
public static final int KEY_SEMICOLON = 39;
|
|
||||||
public static final int KEY_APOSTROPHE = 40;
|
|
||||||
public static final int KEY_GRAVE = 41;
|
|
||||||
public static final int KEY_LEFTSHIFT = 42;
|
|
||||||
public static final int KEY_BACKSLASH = 43;
|
|
||||||
public static final int KEY_Z = 44;
|
|
||||||
public static final int KEY_X = 45;
|
|
||||||
public static final int KEY_C = 46;
|
|
||||||
public static final int KEY_V = 47;
|
|
||||||
public static final int KEY_B = 48;
|
|
||||||
public static final int KEY_N = 49;
|
|
||||||
public static final int KEY_M = 50;
|
|
||||||
public static final int KEY_COMMA = 51;
|
|
||||||
public static final int KEY_DOT = 52;
|
|
||||||
public static final int KEY_SLASH = 53;
|
|
||||||
public static final int KEY_RIGHTSHIFT = 54;
|
|
||||||
public static final int KEY_KPASTERISK = 55;
|
|
||||||
public static final int KEY_LEFTALT = 56;
|
|
||||||
public static final int KEY_SPACE = 57;
|
|
||||||
public static final int KEY_CAPSLOCK = 58;
|
|
||||||
public static final int KEY_F1 = 59;
|
|
||||||
public static final int KEY_F2 = 60;
|
|
||||||
public static final int KEY_F3 = 61;
|
|
||||||
public static final int KEY_F4 = 62;
|
|
||||||
public static final int KEY_F5 = 63;
|
|
||||||
public static final int KEY_F6 = 64;
|
|
||||||
public static final int KEY_F7 = 65;
|
|
||||||
public static final int KEY_F8 = 66;
|
|
||||||
public static final int KEY_F9 = 67;
|
|
||||||
public static final int KEY_F10 = 68;
|
|
||||||
public static final int KEY_NUMLOCK = 69;
|
|
||||||
public static final int KEY_SCROLLLOCK = 70;
|
|
||||||
public static final int KEY_KP7 = 71;
|
|
||||||
public static final int KEY_KP8 = 72;
|
|
||||||
public static final int KEY_KP9 = 73;
|
|
||||||
public static final int KEY_KPMINUS = 74;
|
|
||||||
public static final int KEY_KP4 = 75;
|
|
||||||
public static final int KEY_KP5 = 76;
|
|
||||||
public static final int KEY_KP6 = 77;
|
|
||||||
public static final int KEY_KPPLUS = 78;
|
|
||||||
public static final int KEY_KP1 = 79;
|
|
||||||
public static final int KEY_KP2 = 80;
|
|
||||||
public static final int KEY_KP3 = 81;
|
|
||||||
public static final int KEY_KP0 = 82;
|
|
||||||
public static final int KEY_KPDOT = 83;
|
|
||||||
|
|
||||||
public static final int KEY_ZENKAKUHANKAKU = 85;
|
|
||||||
public static final int KEY_102ND = 86;
|
|
||||||
public static final int KEY_F11 = 87;
|
|
||||||
public static final int KEY_F12 = 88;
|
|
||||||
public static final int KEY_RO = 89;
|
|
||||||
public static final int KEY_KATAKANA = 90;
|
|
||||||
public static final int KEY_HIRAGANA = 91;
|
|
||||||
public static final int KEY_HENKAN = 92;
|
|
||||||
public static final int KEY_KATAKANAHIRAGANA = 93;
|
|
||||||
public static final int KEY_MUHENKAN = 94;
|
|
||||||
public static final int KEY_KPJPCOMMA = 95;
|
|
||||||
public static final int KEY_KPENTER = 96;
|
|
||||||
public static final int KEY_RIGHTCTRL = 97;
|
|
||||||
public static final int KEY_KPSLASH = 98;
|
|
||||||
public static final int KEY_SYSRQ = 99;
|
|
||||||
public static final int KEY_RIGHTALT = 100;
|
|
||||||
public static final int KEY_LINEFEED = 101;
|
|
||||||
public static final int KEY_HOME = 102;
|
|
||||||
public static final int KEY_UP = 103;
|
|
||||||
public static final int KEY_PAGEUP = 104;
|
|
||||||
public static final int KEY_LEFT = 105;
|
|
||||||
public static final int KEY_RIGHT = 106;
|
|
||||||
public static final int KEY_END = 107;
|
|
||||||
public static final int KEY_DOWN = 108;
|
|
||||||
public static final int KEY_PAGEDOWN = 109;
|
|
||||||
public static final int KEY_INSERT = 110;
|
|
||||||
public static final int KEY_DELETE = 111;
|
|
||||||
public static final int KEY_MACRO = 112;
|
|
||||||
public static final int KEY_MUTE = 113;
|
|
||||||
public static final int KEY_VOLUMEDOWN = 114;
|
|
||||||
public static final int KEY_VOLUMEUP = 115;
|
|
||||||
public static final int KEY_POWER = 116; /* SC System Power Down */
|
|
||||||
public static final int KEY_KPEQUAL = 117;
|
|
||||||
public static final int KEY_KPPLUSMINUS = 118;
|
|
||||||
public static final int KEY_PAUSE = 119;
|
|
||||||
public static final int KEY_SCALE = 120; /* AL Compiz Scale (Expose) */
|
|
||||||
|
|
||||||
public static final int KEY_KPCOMMA = 121;
|
|
||||||
public static final int KEY_HANGEUL = 122;
|
|
||||||
public static final int KEY_HANGUEL = KEY_HANGEUL;
|
|
||||||
public static final int KEY_HANJA = 123;
|
|
||||||
public static final int KEY_YEN = 124;
|
|
||||||
public static final int KEY_LEFTMETA = 125;
|
|
||||||
public static final int KEY_RIGHTMETA = 126;
|
|
||||||
public static final int KEY_COMPOSE = 127;
|
|
||||||
|
|
||||||
public static final int KEY_STOP = 128; /* AC Stop */
|
|
||||||
public static final int KEY_AGAIN = 129;
|
|
||||||
public static final int KEY_PROPS = 130; /* AC Properties */
|
|
||||||
public static final int KEY_UNDO = 131; /* AC Undo */
|
|
||||||
public static final int KEY_FRONT = 132;
|
|
||||||
public static final int KEY_COPY = 133; /* AC Copy */
|
|
||||||
public static final int KEY_OPEN = 134; /* AC Open */
|
|
||||||
public static final int KEY_PASTE = 135; /* AC Paste */
|
|
||||||
public static final int KEY_FIND = 136; /* AC Search */
|
|
||||||
public static final int KEY_CUT = 137; /* AC Cut */
|
|
||||||
public static final int KEY_HELP = 138; /* AL Integrated Help Center */
|
|
||||||
public static final int KEY_MENU = 139; /* Menu (show menu) */
|
|
||||||
public static final int KEY_CALC = 140; /* AL Calculator */
|
|
||||||
public static final int KEY_SETUP = 141;
|
|
||||||
public static final int KEY_SLEEP = 142; /* SC System Sleep */
|
|
||||||
public static final int KEY_WAKEUP = 143; /* System Wake Up */
|
|
||||||
public static final int KEY_FILE = 144; /* AL Local Machine Browser */
|
|
||||||
public static final int KEY_SENDFILE = 145;
|
|
||||||
public static final int KEY_DELETEFILE = 146;
|
|
||||||
public static final int KEY_XFER = 147;
|
|
||||||
public static final int KEY_PROG1 = 148;
|
|
||||||
public static final int KEY_PROG2 = 149;
|
|
||||||
public static final int KEY_WWW = 150; /* AL Internet Browser */
|
|
||||||
public static final int KEY_MSDOS = 151;
|
|
||||||
public static final int KEY_COFFEE = 152; /* AL Terminal Lock/Screensaver */
|
|
||||||
public static final int KEY_SCREENLOCK = KEY_COFFEE;
|
|
||||||
public static final int KEY_ROTATE_DISPLAY = 153; /* Display orientation for e.g. tablets */
|
|
||||||
public static final int KEY_DIRECTION = KEY_ROTATE_DISPLAY;
|
|
||||||
public static final int KEY_CYCLEWINDOWS = 154;
|
|
||||||
public static final int KEY_MAIL = 155;
|
|
||||||
public static final int KEY_BOOKMARKS = 156; /* AC Bookmarks */
|
|
||||||
public static final int KEY_COMPUTER = 157;
|
|
||||||
public static final int KEY_BACK = 158; /* AC Back */
|
|
||||||
public static final int KEY_FORWARD = 159; /* AC Forward */
|
|
||||||
public static final int KEY_CLOSECD = 160;
|
|
||||||
public static final int KEY_EJECTCD = 161;
|
|
||||||
public static final int KEY_EJECTCLOSECD = 162;
|
|
||||||
public static final int KEY_NEXTSONG = 163;
|
|
||||||
public static final int KEY_PLAYPAUSE = 164;
|
|
||||||
public static final int KEY_PREVIOUSSONG = 165;
|
|
||||||
public static final int KEY_STOPCD = 166;
|
|
||||||
public static final int KEY_RECORD = 167;
|
|
||||||
public static final int KEY_REWIND = 168;
|
|
||||||
public static final int KEY_PHONE = 169; /* Media Select Telephone */
|
|
||||||
public static final int KEY_ISO = 170;
|
|
||||||
public static final int KEY_CONFIG = 171; /* AL Consumer Control Configuration */
|
|
||||||
public static final int KEY_HOMEPAGE = 172; /* AC Home */
|
|
||||||
public static final int KEY_REFRESH = 173; /* AC Refresh */
|
|
||||||
public static final int KEY_EXIT = 174; /* AC Exit */
|
|
||||||
public static final int KEY_MOVE = 175;
|
|
||||||
public static final int KEY_EDIT = 176;
|
|
||||||
public static final int KEY_SCROLLUP = 177;
|
|
||||||
public static final int KEY_SCROLLDOWN = 178;
|
|
||||||
public static final int KEY_KPLEFTPAREN = 179;
|
|
||||||
public static final int KEY_KPRIGHTPAREN = 180;
|
|
||||||
public static final int KEY_NEW = 181; /* AC New */
|
|
||||||
public static final int KEY_REDO = 182; /* AC Redo/Repeat */
|
|
||||||
|
|
||||||
public static final int KEY_F13 = 183;
|
|
||||||
public static final int KEY_F14 = 184;
|
|
||||||
public static final int KEY_F15 = 185;
|
|
||||||
public static final int KEY_F16 = 186;
|
|
||||||
public static final int KEY_F17 = 187;
|
|
||||||
public static final int KEY_F18 = 188;
|
|
||||||
public static final int KEY_F19 = 189;
|
|
||||||
public static final int KEY_F20 = 190;
|
|
||||||
public static final int KEY_F21 = 191;
|
|
||||||
public static final int KEY_F22 = 192;
|
|
||||||
public static final int KEY_F23 = 193;
|
|
||||||
public static final int KEY_F24 = 194;
|
|
||||||
|
|
||||||
public static final int KEY_PLAYCD = 200;
|
|
||||||
public static final int KEY_PAUSECD = 201;
|
|
||||||
public static final int KEY_PROG3 = 202;
|
|
||||||
public static final int KEY_PROG4 = 203;
|
|
||||||
public static final int KEY_DASHBOARD = 204; /* AL Dashboard */
|
|
||||||
public static final int KEY_SUSPEND = 205;
|
|
||||||
public static final int KEY_CLOSE = 206; /* AC Close */
|
|
||||||
public static final int KEY_PLAY = 207;
|
|
||||||
public static final int KEY_FASTFORWARD = 208;
|
|
||||||
public static final int KEY_BASSBOOST = 209;
|
|
||||||
public static final int KEY_PRINT = 210; /* AC Print */
|
|
||||||
public static final int KEY_HP = 211;
|
|
||||||
public static final int KEY_CAMERA = 212;
|
|
||||||
public static final int KEY_SOUND = 213;
|
|
||||||
public static final int KEY_QUESTION = 214;
|
|
||||||
public static final int KEY_EMAIL = 215;
|
|
||||||
public static final int KEY_CHAT = 216;
|
|
||||||
public static final int KEY_SEARCH = 217;
|
|
||||||
public static final int KEY_CONNECT = 218;
|
|
||||||
public static final int KEY_FINANCE = 219; /* AL Checkbook/Finance */
|
|
||||||
public static final int KEY_SPORT = 220;
|
|
||||||
public static final int KEY_SHOP = 221;
|
|
||||||
public static final int KEY_ALTERASE = 222;
|
|
||||||
public static final int KEY_CANCEL = 223; /* AC Cancel */
|
|
||||||
public static final int KEY_BRIGHTNESSDOWN = 224;
|
|
||||||
public static final int KEY_BRIGHTNESSUP = 225;
|
|
||||||
public static final int KEY_MEDIA = 226;
|
|
||||||
|
|
||||||
public static final int KEY_SWITCHVIDEOMODE = 227; /* Cycle between available video
|
|
||||||
outputs (Monitor/LCD/TV-out/etc) */
|
|
||||||
public static final int KEY_KBDILLUMTOGGLE = 228;
|
|
||||||
public static final int KEY_KBDILLUMDOWN = 229;
|
|
||||||
public static final int KEY_KBDILLUMUP = 230;
|
|
||||||
|
|
||||||
public static final int KEY_SEND = 231; /* AC Send */
|
|
||||||
public static final int KEY_REPLY = 232; /* AC Reply */
|
|
||||||
public static final int KEY_FORWARDMAIL = 233; /* AC Forward Msg */
|
|
||||||
public static final int KEY_SAVE = 234; /* AC Save */
|
|
||||||
public static final int KEY_DOCUMENTS = 235;
|
|
||||||
|
|
||||||
public static final int KEY_BATTERY = 236;
|
|
||||||
|
|
||||||
public static final int KEY_BLUETOOTH = 237;
|
|
||||||
public static final int KEY_WLAN = 238;
|
|
||||||
public static final int KEY_UWB = 239;
|
|
||||||
|
|
||||||
public static final int KEY_UNKNOWN = 240;
|
|
||||||
|
|
||||||
public static final int KEY_VIDEO_NEXT = 241; /* drive next video source */
|
|
||||||
public static final int KEY_VIDEO_PREV = 242; /* drive previous video source */
|
|
||||||
public static final int KEY_BRIGHTNESS_CYCLE = 243; /* brightness up, after max is min */
|
|
||||||
public static final int KEY_BRIGHTNESS_AUTO = 244; /* Set Auto Brightness: manual
|
|
||||||
brightness control is off,
|
|
||||||
rely on ambient */
|
|
||||||
public static final int KEY_BRIGHTNESS_ZERO = KEY_BRIGHTNESS_AUTO;
|
|
||||||
public static final int KEY_DISPLAY_OFF = 245; /* display device to off state */
|
|
||||||
|
|
||||||
public static final int KEY_WWAN = 246; /* Wireless WAN (LTE, UMTS, GSM, etc.) */
|
|
||||||
public static final int KEY_WIMAX = KEY_WWAN;
|
|
||||||
public static final int KEY_RFKILL = 247; /* Key that controls all radios */
|
|
||||||
|
|
||||||
public static final int KEY_MICMUTE = 248;
|
|
||||||
|
|
||||||
public interface KeyListener {
|
|
||||||
|
|
||||||
void onKeyDown(String keyName);
|
|
||||||
|
|
||||||
void onKeyUp(String keyName);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final Map<String, Integer> keyNameToCode = new HashMap<>();
|
|
||||||
private static final SparseArray<String> keyCodeToName = new SparseArray<>();
|
|
||||||
|
|
||||||
private KeyListener mKeyListener;
|
|
||||||
|
|
||||||
public KeyObserver() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setKeyListener(KeyListener keyListener) {
|
|
||||||
mKeyListener = keyListener;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onInputEvent(@NonNull InputEventObserver.InputEvent event) {
|
|
||||||
if (!event.type.equals("0001")) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (event.value.equalsIgnoreCase("00000000")) {
|
|
||||||
notifyKeyUp(keyCodeToKeyName(Integer.parseInt(event.code, 16)));
|
|
||||||
}
|
|
||||||
if (event.value.equalsIgnoreCase("00000001")) {
|
|
||||||
notifyKeyDown(keyCodeToKeyName(Integer.parseInt(event.code, 16)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String keyCodeToKeyName(int code) {
|
|
||||||
return keyCodeToName.get(code);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static int keyNameToCode(String name) {
|
|
||||||
Integer code = keyNameToCode.get(name);
|
|
||||||
if (code == null)
|
|
||||||
return -1;
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void notifyKeyDown(String keyName) {
|
|
||||||
if (mKeyListener != null) {
|
|
||||||
mKeyListener.onKeyDown(keyName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void notifyKeyUp(String keyName) {
|
|
||||||
if (mKeyListener != null) {
|
|
||||||
mKeyListener.onKeyUp(keyName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static {
|
|
||||||
try {
|
|
||||||
for (Field field : KeyObserver.class.getFields()) {
|
|
||||||
if (field.getName().startsWith("KEY_")) {
|
|
||||||
int keyCode = (int) field.get(null);
|
|
||||||
keyCodeToName.put(keyCode, field.getName());
|
|
||||||
keyNameToCode.put(field.getName(), keyCode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user