refactor(autojs): move inputevent to package core

This commit is contained in:
hyb1996
2017-08-06 14:40:02 +08:00
parent 9174a77676
commit 5ee99b5379
65 changed files with 382 additions and 588 deletions

View File

@@ -31,7 +31,7 @@ import java.io.PrintWriter;
import java.util.LinkedHashSet;
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.

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.runtime;
package com.stardust.autojs.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.runtime;
package com.stardust.autojs.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.runtime;
package com.stardust.autojs.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.runtime;
package com.stardust.autojs.core.accessibility;
import android.content.Context;
import android.support.annotation.NonNull;

View File

@@ -1,20 +1,17 @@
package com.stardust.autojs.runtime.simpleaction;
package com.stardust.autojs.core.accessibility;
import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.GestureDescription;
import android.graphics.Rect;
import android.os.Build;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.RequiresApi;
import android.util.Log;
import android.view.accessibility.AccessibilityNodeInfo;
import com.stardust.autojs.runtime.AccessibilityBridge;
import com.stardust.autojs.runtime.ScriptInterface;
import com.stardust.autojs.annotation.ScriptInterface;
import com.stardust.autojs.runtime.ScriptRuntime;
import com.stardust.autojs.runtime.api.AutomatorConfig;
import com.stardust.autojs.runtime.api.Loopers;
import com.stardust.autojs.runtime.accessibility.AutomatorConfig;
import com.stardust.automator.GlobalActionAutomator;
import com.stardust.automator.UiObject;
import com.stardust.automator.simple_action.ActionFactory;

View File

@@ -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.util.Log;
import android.view.InputDevice;
/**

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.runtime.record.inputevent;
package com.stardust.autojs.core.inputevent;
/**
* Created by Stardust on 2017/8/5.

View File

@@ -1,9 +1,10 @@
package com.stardust.autojs.runtime.record.inputevent;
package com.stardust.autojs.core.inputevent;
import android.content.Context;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import com.stardust.autojs.core.record.inputevent.EventFormatException;
import com.stardust.autojs.runtime.api.Shell;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -34,11 +35,11 @@ public class InputEventObserver {
}
double time;
String device;
String type;
String code;
String value;
public double time;
public String device;
public String type;
public String code;
public String value;
public InputEvent(double time, String device, String type, String code, String value) {
this.time = time;

View File

@@ -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();
}
}
}

View File

@@ -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();
}
}
}

View File

@@ -1,8 +1,8 @@
package com.stardust.autojs.runtime.record.inputevent;
package com.stardust.autojs.core.inputevent;
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.

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.runtime.internal;
package com.stardust.autojs.core.internal;
/**
* Created by Stardust on 2017/7/19.

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.runtime.record;
package com.stardust.autojs.core.record;
import java.util.Arrays;

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.runtime.record.accessibility;
package com.stardust.autojs.core.record.accessibility;
import android.accessibilityservice.AccessibilityService;
import android.os.Build;

View File

@@ -1,9 +1,9 @@
package com.stardust.autojs.runtime.record.accessibility;
package com.stardust.autojs.core.record.accessibility;
import android.accessibilityservice.AccessibilityService;
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 java.util.Arrays;

View File

@@ -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.

View File

@@ -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.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.Pattern;
@@ -38,7 +38,7 @@ public abstract class InputEventRecorder extends Recorder.AbstractRecorder imple
public abstract String getCode();
static int parseDeviceNumber(String device) {
protected static int parseDeviceNumber(String device) {
Matcher matcher = LAST_INT_PATTERN.matcher(device);
if (matcher.find()) {
String someNumberStr = matcher.group(1);

View File

@@ -1,12 +1,11 @@
package com.stardust.autojs.runtime.record.inputevent;
package com.stardust.autojs.core.record.inputevent;
import android.content.Context;
import android.hardware.input.InputManager;
import android.support.annotation.NonNull;
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.runtime.api.RootAutomator;
import com.stardust.pio.UncheckedIOException;

View File

@@ -1,7 +1,9 @@
package com.stardust.autojs.runtime.record.inputevent;
package com.stardust.autojs.core.record.inputevent;
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.getDeviceScreenWidth;

View File

@@ -1,7 +1,9 @@
package com.stardust.autojs.runtime.record.inputevent;
package com.stardust.autojs.core.record.inputevent;
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.getDeviceScreenWidth;

View File

@@ -1,8 +1,9 @@
package com.stardust.autojs.runtime.record.inputevent;
package com.stardust.autojs.core.record.inputevent;
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.

View File

@@ -5,7 +5,7 @@ import android.util.Log;
import com.stardust.autojs.BuildConfig;
import com.stardust.autojs.rhino.AndroidContextFactory;
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.StringScriptSource;
import com.stardust.pio.PFile;

View File

@@ -6,11 +6,8 @@ import android.util.Log;
import com.stardust.autojs.runtime.api.AbstractShell;
import com.stardust.autojs.runtime.api.ProcessShell;
import com.stardust.autojs.runtime.api.Shell;
import com.stardust.autojs.runtime.record.inputevent.InputDevices;
import com.stardust.autojs.core.inputevent.InputDevices;
import com.stardust.autojs.script.AutoFileSource;
import com.stardust.autojs.script.JavaScriptFileSource;
import com.stardust.autojs.script.ScriptSource;
import com.stardust.pio.PFile;
import java.io.File;

View File

@@ -2,7 +2,7 @@ package com.stardust.autojs.engine;
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 java.util.Map;

View File

@@ -4,7 +4,7 @@ import android.util.Log;
import com.stardust.autojs.engine.ScriptEngine;
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;
/**

View File

@@ -1,7 +1,7 @@
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.tools.shell.ShellContextFactory;

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.runtime.api;
package com.stardust.autojs.runtime;
/**
* Created by Stardust on 2017/7/21.

View File

@@ -6,6 +6,8 @@ import android.os.Looper;
import com.stardust.autojs.R;
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.rhino.AndroidClassLoader;
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.Events;
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.UiSelector;
import com.stardust.autojs.runtime.api.image.Images;
import com.stardust.autojs.runtime.api.image.ScreenCaptureRequester;
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.autojs.runtime.api.ui.UI;
import com.stardust.pio.UncheckedIOException;

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.runtime.api;
package com.stardust.autojs.runtime.accessibility;
/**
* Created by Stardust on 2017/4/29.

View File

@@ -3,7 +3,7 @@ package com.stardust.autojs.runtime.api;
import android.support.annotation.Nullable;
import android.util.Log;
import com.stardust.autojs.runtime.ScriptException;
import com.stardust.autojs.runtime.exception.ScriptException;
/**
* Created by Stardust on 2017/5/1.

View File

@@ -11,7 +11,7 @@ import android.text.TextUtils;
import android.util.Log;
import android.webkit.MimeTypeMap;
import com.stardust.autojs.runtime.ScriptInterface;
import com.stardust.autojs.annotation.ScriptInterface;
import com.stardust.util.IntentUtil;
import java.lang.ref.WeakReference;

View File

@@ -2,7 +2,7 @@ package com.stardust.autojs.runtime.api;
import android.support.annotation.Nullable;
import com.stardust.autojs.runtime.ScriptInterface;
import com.stardust.autojs.annotation.ScriptInterface;
/**
* Created by Stardust on 2017/4/2.

View File

@@ -3,7 +3,8 @@ package com.stardust.autojs.runtime.api;
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.HashMap;

View File

@@ -7,10 +7,11 @@ import android.os.Handler;
import android.view.KeyEvent;
import android.view.accessibility.AccessibilityEvent;
import com.stardust.autojs.runtime.AccessibilityBridge;
import com.stardust.autojs.runtime.ScriptException;
import com.stardust.autojs.runtime.record.inputevent.InputEventObserver;
import com.stardust.autojs.runtime.record.inputevent.TouchObserver;
import com.stardust.autojs.core.accessibility.AccessibilityBridge;
import com.stardust.autojs.runtime.ScriptBridges;
import com.stardust.autojs.runtime.exception.ScriptException;
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.NotificationListener;
import com.stardust.view.accessibility.OnKeyListener;

View File

@@ -10,7 +10,7 @@ import android.webkit.WebView;
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.Scriptable;

View File

@@ -4,8 +4,8 @@ import android.content.Context;
import android.webkit.ValueCallback;
import android.webkit.WebView;
import com.stardust.autojs.runtime.ScriptClass;
import com.stardust.autojs.runtime.ScriptInterface;
import com.stardust.autojs.annotation.ScriptClass;
import com.stardust.autojs.annotation.ScriptInterface;
import org.mozilla.javascript.Scriptable;

View File

@@ -1,14 +1,11 @@
package com.stardust.autojs.runtime.api;
import android.graphics.Paint;
import android.os.Handler;
import android.os.Looper;
import android.os.MessageQueue;
import com.stardust.autojs.runtime.ScriptInterruptedException;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
import com.stardust.lang.ThreadCompat;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
/**

View File

@@ -3,7 +3,6 @@ package com.stardust.autojs.runtime.api;
import android.content.Context;
import com.stardust.autojs.engine.RootAutomatorEngine;
import com.stardust.autojs.runtime.record.inputevent.InputEventCodes;
import com.stardust.pio.UncheckedIOException;
import com.stardust.util.ScreenMetrics;
@@ -12,7 +11,7 @@ import java.io.File;
import java.io.FileOutputStream;
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.

View File

@@ -5,7 +5,7 @@ import android.os.Handler;
import android.preference.PreferenceManager;
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.lang.ThreadCompat;
import com.stardust.pio.UncheckedIOException;

View File

@@ -1,10 +1,9 @@
package com.stardust.autojs.runtime.api;
import android.os.Handler;
import android.os.Looper;
import android.util.SparseArray;
import java.util.concurrent.ConcurrentHashMap;
import com.stardust.autojs.runtime.ScriptBridges;
/**
* Created by Stardust on 2017/7/21.

View File

@@ -1,15 +1,13 @@
package com.stardust.autojs.runtime.api;
import android.content.Intent;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.accessibility.AccessibilityNodeInfo;
import com.stardust.autojs.runtime.AccessibilityBridge;
import com.stardust.autojs.runtime.ScriptInterface;
import com.stardust.autojs.runtime.ScriptInterruptedException;
import com.stardust.autojs.core.accessibility.AccessibilityBridge;
import com.stardust.autojs.annotation.ScriptInterface;
import com.stardust.autojs.runtime.accessibility.AutomatorConfig;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
import com.stardust.automator.ActionArgument;
import com.stardust.automator.UiGlobalSelector;
import com.stardust.automator.UiObject;
@@ -17,9 +15,6 @@ import com.stardust.automator.UiObjectCollection;
import com.stardust.automator.filter.DfsFilter;
import com.stardust.util.DeveloperUtils;
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_ARGUMENT_COLUMN_INT;

View File

@@ -5,9 +5,8 @@ import android.graphics.Rect;
import android.media.Image;
import android.os.Build;
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.util.ScreenMetrics;

View File

@@ -5,9 +5,7 @@ import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Point;
import android.media.Image;
import android.os.Build;
import android.os.Handler;
@@ -18,9 +16,8 @@ import android.view.Surface;
import android.view.WindowManager;
import com.stardust.autojs.runtime.ScriptRuntime;
import com.stardust.autojs.runtime.ScriptInterruptedException;
import com.stardust.autojs.runtime.ScriptVariable;
import com.stardust.autojs.runtime.api.Loopers;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
import com.stardust.autojs.annotation.ScriptVariable;
import com.stardust.concurrent.VolatileBox;
import com.stardust.pio.UncheckedIOException;
import com.stardust.util.ScreenMetrics;

View File

@@ -3,7 +3,6 @@ package com.stardust.autojs.runtime.api.image;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.hardware.display.DisplayManager;
import android.hardware.display.VirtualDisplay;
@@ -18,7 +17,7 @@ import android.support.annotation.Nullable;
import android.support.annotation.RequiresApi;
import android.util.Log;
import com.stardust.autojs.runtime.ScriptInterruptedException;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
import com.stardust.util.ScreenMetrics;
/**

View File

@@ -2,15 +2,14 @@ package com.stardust.autojs.runtime.api.ui;
import android.app.Activity;
import android.content.Context;
import android.content.ContextWrapper;
import android.text.TextUtils;
import android.view.ContextThemeWrapper;
import com.afollestad.materialdialogs.MaterialDialog;
import com.afollestad.materialdialogs.Theme;
import com.stardust.autojs.R;
import com.stardust.autojs.runtime.ScriptInterface;
import com.stardust.autojs.runtime.ScriptInterruptedException;
import com.stardust.autojs.annotation.ScriptInterface;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
import com.stardust.autojs.runtime.api.AppUtils;
import com.stardust.concurrent.VolatileBox;
import com.stardust.util.ArrayUtils;

View File

@@ -5,8 +5,8 @@ import android.content.Intent;
import android.support.annotation.NonNull;
import android.view.WindowManager;
import com.stardust.autojs.runtime.ScriptInterface;
import com.stardust.autojs.runtime.ScriptInterruptedException;
import com.stardust.autojs.annotation.ScriptInterface;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
import com.stardust.autojs.runtime.api.AbstractConsole;
import com.stardust.autojs.runtime.api.Console;
import com.stardust.enhancedfloaty.FloatyService;

View File

@@ -1,10 +1,10 @@
package com.stardust.autojs.runtime;
package com.stardust.autojs.runtime.exception;
/**
* Created by Stardust on 2017/7/1.
*/
public class ScriptEnvironmentException extends RuntimeException {
public class ScriptEnvironmentException extends ScriptException {
public ScriptEnvironmentException(String s) {
super(s);
}

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.runtime;
package com.stardust.autojs.runtime.exception;
/**
* Created by Stardust on 2017/1/29.

View File

@@ -1,4 +1,4 @@
package com.stardust.autojs.runtime;
package com.stardust.autojs.runtime.exception;
/**
* Created by Stardust on 2017/4/30.

View File

@@ -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();
}
}
}