From 5ee99b5379c39ae85e220c5a0ceb3cef99b0a65f Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Sun, 6 Aug 2017 14:40:02 +0800 Subject: [PATCH] refactor(autojs): move inputevent to package core --- .idea/misc.xml | 4 +- app/build.gradle | 4 +- .../java/com/stardust/scriptdroid/Pref.java | 7 +- .../stardust/scriptdroid/autojs/AutoJs.java | 9 +- .../autojs/record/GlobalRecorder.java | 28 ++ .../menu/content/RecordNavigatorContent.java | 21 +- .../stardust/scriptdroid/script/Scripts.java | 2 +- .../MediaProjectionScreenCaptureService.java | 83 ---- .../java/com/stardust/widget/PrefSwitch.java | 85 +++++ .../res/layout/floating_window_record.xml | 6 +- app/src/main/res/values/attrs.xml | 6 + app/src/main/res/values/strings.xml | 3 + app/src/main/res/xml/preferences.xml | 24 +- autojs/src/main/assets/modules/__general__.js | 2 + .../stardust/autojs/ScriptEngineService.java | 2 +- .../{runtime => annotation}/ScriptClass.java | 2 +- .../ScriptInterface.java | 2 +- .../ScriptVariable.java | 2 +- .../accessibility}/AccessibilityBridge.java | 2 +- .../accessibility}/SimpleActionAutomator.java | 9 +- .../inputevent/InputDevices.java | 5 +- .../inputevent/InputEventCodes.java | 2 +- .../inputevent/InputEventObserver.java | 13 +- .../core/inputevent/KeyEventDispatcher.java | 54 +++ .../core/inputevent/ShellKeyObserver.java | 88 +++++ .../inputevent/TouchObserver.java | 4 +- .../{runtime => core}/internal/Functions.java | 2 +- .../{runtime => core}/record/Recorder.java | 2 +- .../AccessibilityActionConverter.java | 2 +- .../AccessibilityActionRecorder.java | 4 +- .../inputevent/EventFormatException.java | 2 +- .../record/inputevent/InputEventRecorder.java | 8 +- .../InputEventToAutoFileRecorder.java | 7 +- .../InputEventToRootAutomatorRecorder.java | 4 +- .../InputEventToSendEventJsRecorder.java | 4 +- .../record/inputevent/TouchRecorder.java | 5 +- .../autojs/engine/RhinoJavaScriptEngine.java | 2 +- .../autojs/engine/RootAutomatorEngine.java | 5 +- .../stardust/autojs/engine/ScriptEngine.java | 2 +- .../execution/RunnableScriptExecution.java | 2 +- .../autojs/rhino/AndroidContextFactory.java | 2 +- .../runtime/{api => }/ScriptBridges.java | 2 +- .../autojs/runtime/ScriptRuntime.java | 8 +- .../AutomatorConfig.java | 2 +- .../autojs/runtime/api/AbstractConsole.java | 2 +- .../stardust/autojs/runtime/api/AppUtils.java | 2 +- .../stardust/autojs/runtime/api/Console.java | 2 +- .../autojs/runtime/api/EventEmitter.java | 3 +- .../stardust/autojs/runtime/api/Events.java | 9 +- .../runtime/api/InjectableWebClient.java | 2 +- .../autojs/runtime/api/InjectableWebView.java | 4 +- .../stardust/autojs/runtime/api/Loopers.java | 5 +- .../autojs/runtime/api/RootAutomator.java | 3 +- .../stardust/autojs/runtime/api/Shell.java | 2 +- .../stardust/autojs/runtime/api/Timers.java | 3 +- .../autojs/runtime/api/UiSelector.java | 13 +- .../autojs/runtime/api/image/ColorFinder.java | 3 +- .../autojs/runtime/api/image/Images.java | 7 +- .../runtime/api/image/ScreenCapturer.java | 3 +- .../autojs/runtime/api/ui/Dialogs.java | 5 +- .../runtime/console/StardustConsole.java | 4 +- .../ScriptEnvironmentException.java | 4 +- .../{ => exception}/ScriptException.java | 2 +- .../ScriptInterruptedException.java | 2 +- .../record/inputevent/KeyObserver.java | 356 ------------------ 65 files changed, 382 insertions(+), 588 deletions(-) create mode 100644 app/src/main/java/com/stardust/scriptdroid/autojs/record/GlobalRecorder.java delete mode 100644 app/src/main/java/com/stardust/scriptdroid/service/MediaProjectionScreenCaptureService.java create mode 100644 app/src/main/java/com/stardust/widget/PrefSwitch.java rename autojs/src/main/java/com/stardust/autojs/{runtime => annotation}/ScriptClass.java (88%) rename autojs/src/main/java/com/stardust/autojs/{runtime => annotation}/ScriptInterface.java (88%) rename autojs/src/main/java/com/stardust/autojs/{runtime => annotation}/ScriptVariable.java (88%) rename autojs/src/main/java/com/stardust/autojs/{runtime => core/accessibility}/AccessibilityBridge.java (96%) rename autojs/src/main/java/com/stardust/autojs/{runtime/simpleaction => core/accessibility}/SimpleActionAutomator.java (96%) rename autojs/src/main/java/com/stardust/autojs/{runtime/record => core}/inputevent/InputDevices.java (81%) rename autojs/src/main/java/com/stardust/autojs/{runtime/record => core}/inputevent/InputEventCodes.java (99%) rename autojs/src/main/java/com/stardust/autojs/{runtime/record => core}/inputevent/InputEventObserver.java (93%) create mode 100644 autojs/src/main/java/com/stardust/autojs/core/inputevent/KeyEventDispatcher.java create mode 100644 autojs/src/main/java/com/stardust/autojs/core/inputevent/ShellKeyObserver.java rename autojs/src/main/java/com/stardust/autojs/{runtime/record => core}/inputevent/TouchObserver.java (93%) rename autojs/src/main/java/com/stardust/autojs/{runtime => core}/internal/Functions.java (96%) rename autojs/src/main/java/com/stardust/autojs/{runtime => core}/record/Recorder.java (98%) rename autojs/src/main/java/com/stardust/autojs/{runtime => core}/record/accessibility/AccessibilityActionConverter.java (98%) rename autojs/src/main/java/com/stardust/autojs/{runtime => core}/record/accessibility/AccessibilityActionRecorder.java (95%) rename autojs/src/main/java/com/stardust/autojs/{runtime => core}/record/inputevent/EventFormatException.java (90%) rename autojs/src/main/java/com/stardust/autojs/{runtime => core}/record/inputevent/InputEventRecorder.java (84%) rename autojs/src/main/java/com/stardust/autojs/{runtime => core}/record/inputevent/InputEventToAutoFileRecorder.java (96%) rename autojs/src/main/java/com/stardust/autojs/{runtime => core}/record/inputevent/InputEventToRootAutomatorRecorder.java (96%) rename autojs/src/main/java/com/stardust/autojs/{runtime => core}/record/inputevent/InputEventToSendEventJsRecorder.java (96%) rename autojs/src/main/java/com/stardust/autojs/{runtime => core}/record/inputevent/TouchRecorder.java (90%) rename autojs/src/main/java/com/stardust/autojs/runtime/{api => }/ScriptBridges.java (93%) rename autojs/src/main/java/com/stardust/autojs/runtime/{api => accessibility}/AutomatorConfig.java (89%) rename autojs/src/main/java/com/stardust/autojs/runtime/{ => exception}/ScriptEnvironmentException.java (51%) rename autojs/src/main/java/com/stardust/autojs/runtime/{ => exception}/ScriptException.java (89%) rename autojs/src/main/java/com/stardust/autojs/runtime/{ => exception}/ScriptInterruptedException.java (86%) delete mode 100644 autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/KeyObserver.java diff --git a/.idea/misc.xml b/.idea/misc.xml index 274735b3..efe3417d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -6,8 +6,8 @@ - - + + diff --git a/app/build.gradle b/app/build.gradle index 58430eac..55db92e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "com.stardust.scriptdroid" minSdkVersion 17 targetSdkVersion 23 - versionCode 158 - versionName "2.0.16 Alpha2" + versionCode 159 + versionName "2.0.16 Beta" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true ndk { diff --git a/app/src/main/java/com/stardust/scriptdroid/Pref.java b/app/src/main/java/com/stardust/scriptdroid/Pref.java index 03555b3f..3e7049c7 100644 --- a/app/src/main/java/com/stardust/scriptdroid/Pref.java +++ b/app/src/main/java/com/stardust/scriptdroid/Pref.java @@ -4,10 +4,7 @@ import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; -import com.stardust.autojs.runtime.api.AutomatorConfig; -import com.stardust.scriptdroid.autojs.AutoJs; - -import org.mozilla.javascript.NativeArray; +import com.stardust.autojs.runtime.accessibility.AutomatorConfig; import java.util.concurrent.TimeUnit; @@ -129,6 +126,8 @@ public class Pref { } def().edit().putLong(KEY_LAST_SHOW_AD_MILLIS, System.currentTimeMillis()).apply(); return true; + case "Off": + return false; } return true; } diff --git a/app/src/main/java/com/stardust/scriptdroid/autojs/AutoJs.java b/app/src/main/java/com/stardust/scriptdroid/autojs/AutoJs.java index be8758f9..be11468e 100644 --- a/app/src/main/java/com/stardust/scriptdroid/autojs/AutoJs.java +++ b/app/src/main/java/com/stardust/scriptdroid/autojs/AutoJs.java @@ -12,18 +12,17 @@ import com.stardust.app.SimpleActivityLifecycleCallbacks; import com.stardust.autojs.ScriptEngineService; import com.stardust.autojs.ScriptEngineServiceBuilder; import com.stardust.autojs.engine.LoopBasedJavaScriptEngine; -import com.stardust.autojs.engine.RhinoJavaScriptEngine; import com.stardust.autojs.engine.RootAutomatorEngine; import com.stardust.autojs.engine.ScriptEngine; 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.ScriptException; +import com.stardust.autojs.runtime.exception.ScriptException; import com.stardust.autojs.runtime.api.AbstractShell; import com.stardust.autojs.runtime.api.AppUtils; import com.stardust.autojs.runtime.api.Console; import com.stardust.autojs.runtime.api.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.JavaScriptSource; import com.stardust.scriptdroid.App; @@ -36,7 +35,7 @@ import com.stardust.util.ScreenMetrics; import com.stardust.util.Supplier; import com.stardust.util.UiHandler; 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.scriptdroid.tool.AccessibilityServiceTool; import com.stardust.scriptdroid.ui.console.JraskaConsole; diff --git a/app/src/main/java/com/stardust/scriptdroid/autojs/record/GlobalRecorder.java b/app/src/main/java/com/stardust/scriptdroid/autojs/record/GlobalRecorder.java new file mode 100644 index 00000000..d7c53501 --- /dev/null +++ b/app/src/main/java/com/stardust/scriptdroid/autojs/record/GlobalRecorder.java @@ -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; + } + +} diff --git a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/RecordNavigatorContent.java b/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/RecordNavigatorContent.java index 0c5bf16d..eec1ce51 100644 --- a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/RecordNavigatorContent.java +++ b/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/RecordNavigatorContent.java @@ -1,7 +1,5 @@ package com.stardust.scriptdroid.external.floatingwindow.menu.content; -import android.content.ClipData; -import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.support.annotation.NonNull; @@ -16,11 +14,11 @@ import android.widget.Toast; import com.afollestad.materialdialogs.DialogAction; import com.afollestad.materialdialogs.MaterialDialog; import com.stardust.app.DialogUtils; -import com.stardust.autojs.runtime.record.Recorder; -import com.stardust.autojs.runtime.record.accessibility.AccessibilityActionRecorder; -import com.stardust.autojs.runtime.record.inputevent.InputEventObserver; -import com.stardust.autojs.runtime.record.inputevent.KeyObserver; -import com.stardust.autojs.runtime.record.inputevent.TouchRecorder; +import com.stardust.autojs.core.record.Recorder; +import com.stardust.autojs.core.record.accessibility.AccessibilityActionRecorder; +import com.stardust.autojs.core.inputevent.InputEventObserver; +import com.stardust.autojs.core.inputevent.ShellKeyObserver; +import com.stardust.autojs.core.record.inputevent.TouchRecorder; import com.stardust.scriptdroid.App; import com.stardust.scriptdroid.Pref; 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.external.floatingwindow.menu.HoverMenuService; import com.stardust.scriptdroid.ui.common.ScriptOperations; -import com.stardust.scriptdroid.ui.main.MainActivity; import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder; import com.stardust.util.ClipboardUtil; import com.stardust.util.MessageEvent; @@ -43,14 +40,12 @@ import butterknife.OnClick; import io.mattcarroll.hover.Navigator; import io.mattcarroll.hover.NavigatorContent; -import static android.content.Context.CLIPBOARD_SERVICE; - /** * 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; @BindView(R.id.sw_recorded_by_root) @@ -76,7 +71,7 @@ public class RecordNavigatorContent implements NavigatorContent, Recorder.OnStat private TouchRecorder mTouchRecorder; private Context mContext; private boolean mDiscard = false; - private KeyObserver mKeyObserver; + private ShellKeyObserver mKeyObserver; private InputEventObserver mInputEventObserver = InputEventObserver.getGlobal(); private OnKeyListener mVolumeKeyListener = new OnKeyListener() { @Override @@ -101,7 +96,7 @@ public class RecordNavigatorContent implements NavigatorContent, Recorder.OnStat AccessibilityService.getStickOnKeyObserver().addListener(mVolumeKeyListener); mTouchRecorder = TouchRecorder.getGlobal(context); if (Pref.hasRecordTrigger()) { - mKeyObserver = new KeyObserver(); + mKeyObserver = new ShellKeyObserver(); mInputEventObserver.addListener(mKeyObserver); mKeyObserver.setKeyListener(this); } diff --git a/app/src/main/java/com/stardust/scriptdroid/script/Scripts.java b/app/src/main/java/com/stardust/scriptdroid/script/Scripts.java index 66208ed5..a8d34664 100644 --- a/app/src/main/java/com/stardust/scriptdroid/script/Scripts.java +++ b/app/src/main/java/com/stardust/scriptdroid/script/Scripts.java @@ -8,7 +8,7 @@ import com.stardust.autojs.execution.ExecutionConfig; import com.stardust.autojs.execution.ScriptExecution; import com.stardust.autojs.execution.ScriptExecutionListener; 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.StringScriptSource; import com.stardust.scriptdroid.App; diff --git a/app/src/main/java/com/stardust/scriptdroid/service/MediaProjectionScreenCaptureService.java b/app/src/main/java/com/stardust/scriptdroid/service/MediaProjectionScreenCaptureService.java deleted file mode 100644 index 97963d24..00000000 --- a/app/src/main/java/com/stardust/scriptdroid/service/MediaProjectionScreenCaptureService.java +++ /dev/null @@ -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(); - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/stardust/widget/PrefSwitch.java b/app/src/main/java/com/stardust/widget/PrefSwitch.java new file mode 100644 index 00000000..6ba106aa --- /dev/null +++ b/app/src/main/java/com/stardust/widget/PrefSwitch.java @@ -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); + } + } +} + diff --git a/app/src/main/res/layout/floating_window_record.xml b/app/src/main/res/layout/floating_window_record.xml index 08243531..5f4156b1 100644 --- a/app/src/main/res/layout/floating_window_record.xml +++ b/app/src/main/res/layout/floating_window_record.xml @@ -34,13 +34,15 @@ android:gravity="center_vertical" android:padding="16dp"> - + android:textOn="@string/text_on" + app:defaultValue="false" + app:key="@string/key_record_with_root"/> + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index aeccaf2e..576cc1f7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -216,6 +216,7 @@ 编辑脚本 运行脚本 导入脚本文件 + key_record_with_root @@ -235,11 +236,13 @@ 默认 每天显示一次 + 关闭广告(╥﹏╥) Default OncePerDay + Off diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index a6f91ed3..0586684a 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -1,32 +1,18 @@ - + - - - - - - + diff --git a/autojs/src/main/assets/modules/__general__.js b/autojs/src/main/assets/modules/__general__.js index 7739b136..94768a3f 100644 --- a/autojs/src/main/assets/modules/__general__.js +++ b/autojs/src/main/assets/modules/__general__.js @@ -15,6 +15,8 @@ module.exports = function(__runtime__, scope){ return __runtime__.isStopped(); } + scope.isShuttingDown = scope.isShopped; + scope.notStopped = function(){ return !isStopped(); } diff --git a/autojs/src/main/java/com/stardust/autojs/ScriptEngineService.java b/autojs/src/main/java/com/stardust/autojs/ScriptEngineService.java index 08d735aa..756bfc7a 100644 --- a/autojs/src/main/java/com/stardust/autojs/ScriptEngineService.java +++ b/autojs/src/main/java/com/stardust/autojs/ScriptEngineService.java @@ -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. diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptClass.java b/autojs/src/main/java/com/stardust/autojs/annotation/ScriptClass.java similarity index 88% rename from autojs/src/main/java/com/stardust/autojs/runtime/ScriptClass.java rename to autojs/src/main/java/com/stardust/autojs/annotation/ScriptClass.java index 3331f5d8..aaab5ba3 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptClass.java +++ b/autojs/src/main/java/com/stardust/autojs/annotation/ScriptClass.java @@ -1,4 +1,4 @@ -package com.stardust.autojs.runtime; +package com.stardust.autojs.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptInterface.java b/autojs/src/main/java/com/stardust/autojs/annotation/ScriptInterface.java similarity index 88% rename from autojs/src/main/java/com/stardust/autojs/runtime/ScriptInterface.java rename to autojs/src/main/java/com/stardust/autojs/annotation/ScriptInterface.java index 334ee2a3..80da3e29 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptInterface.java +++ b/autojs/src/main/java/com/stardust/autojs/annotation/ScriptInterface.java @@ -1,4 +1,4 @@ -package com.stardust.autojs.runtime; +package com.stardust.autojs.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptVariable.java b/autojs/src/main/java/com/stardust/autojs/annotation/ScriptVariable.java similarity index 88% rename from autojs/src/main/java/com/stardust/autojs/runtime/ScriptVariable.java rename to autojs/src/main/java/com/stardust/autojs/annotation/ScriptVariable.java index ea48ef1f..977937cc 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptVariable.java +++ b/autojs/src/main/java/com/stardust/autojs/annotation/ScriptVariable.java @@ -1,4 +1,4 @@ -package com.stardust.autojs.runtime; +package com.stardust.autojs.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/AccessibilityBridge.java b/autojs/src/main/java/com/stardust/autojs/core/accessibility/AccessibilityBridge.java similarity index 96% rename from autojs/src/main/java/com/stardust/autojs/runtime/AccessibilityBridge.java rename to autojs/src/main/java/com/stardust/autojs/core/accessibility/AccessibilityBridge.java index 493602a8..8d100675 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/AccessibilityBridge.java +++ b/autojs/src/main/java/com/stardust/autojs/core/accessibility/AccessibilityBridge.java @@ -1,4 +1,4 @@ -package com.stardust.autojs.runtime; +package com.stardust.autojs.core.accessibility; import android.content.Context; import android.support.annotation.NonNull; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/simpleaction/SimpleActionAutomator.java b/autojs/src/main/java/com/stardust/autojs/core/accessibility/SimpleActionAutomator.java similarity index 96% rename from autojs/src/main/java/com/stardust/autojs/runtime/simpleaction/SimpleActionAutomator.java rename to autojs/src/main/java/com/stardust/autojs/core/accessibility/SimpleActionAutomator.java index 861068b8..c9c4eaca 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/simpleaction/SimpleActionAutomator.java +++ b/autojs/src/main/java/com/stardust/autojs/core/accessibility/SimpleActionAutomator.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputDevices.java b/autojs/src/main/java/com/stardust/autojs/core/inputevent/InputDevices.java similarity index 81% rename from autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputDevices.java rename to autojs/src/main/java/com/stardust/autojs/core/inputevent/InputDevices.java index 304dc5a8..be9572e0 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputDevices.java +++ b/autojs/src/main/java/com/stardust/autojs/core/inputevent/InputDevices.java @@ -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; /** diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventCodes.java b/autojs/src/main/java/com/stardust/autojs/core/inputevent/InputEventCodes.java similarity index 99% rename from autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventCodes.java rename to autojs/src/main/java/com/stardust/autojs/core/inputevent/InputEventCodes.java index 49230044..567682cc 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventCodes.java +++ b/autojs/src/main/java/com/stardust/autojs/core/inputevent/InputEventCodes.java @@ -1,4 +1,4 @@ -package com.stardust.autojs.runtime.record.inputevent; +package com.stardust.autojs.core.inputevent; /** * Created by Stardust on 2017/8/5. diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventObserver.java b/autojs/src/main/java/com/stardust/autojs/core/inputevent/InputEventObserver.java similarity index 93% rename from autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventObserver.java rename to autojs/src/main/java/com/stardust/autojs/core/inputevent/InputEventObserver.java index daca2e32..99d74dbe 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventObserver.java +++ b/autojs/src/main/java/com/stardust/autojs/core/inputevent/InputEventObserver.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/core/inputevent/KeyEventDispatcher.java b/autojs/src/main/java/com/stardust/autojs/core/inputevent/KeyEventDispatcher.java new file mode 100644 index 00000000..02f20504 --- /dev/null +++ b/autojs/src/main/java/com/stardust/autojs/core/inputevent/KeyEventDispatcher.java @@ -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 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(); + } + } + + +} diff --git a/autojs/src/main/java/com/stardust/autojs/core/inputevent/ShellKeyObserver.java b/autojs/src/main/java/com/stardust/autojs/core/inputevent/ShellKeyObserver.java new file mode 100644 index 00000000..abd34349 --- /dev/null +++ b/autojs/src/main/java/com/stardust/autojs/core/inputevent/ShellKeyObserver.java @@ -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 keyNameToCode = new HashMap<>(); + private static final SparseArray 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(); + } + } + +} diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/TouchObserver.java b/autojs/src/main/java/com/stardust/autojs/core/inputevent/TouchObserver.java similarity index 93% rename from autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/TouchObserver.java rename to autojs/src/main/java/com/stardust/autojs/core/inputevent/TouchObserver.java index a61edc06..6df0949c 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/TouchObserver.java +++ b/autojs/src/main/java/com/stardust/autojs/core/inputevent/TouchObserver.java @@ -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. diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/internal/Functions.java b/autojs/src/main/java/com/stardust/autojs/core/internal/Functions.java similarity index 96% rename from autojs/src/main/java/com/stardust/autojs/runtime/internal/Functions.java rename to autojs/src/main/java/com/stardust/autojs/core/internal/Functions.java index c677cb06..f26b0f6c 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/internal/Functions.java +++ b/autojs/src/main/java/com/stardust/autojs/core/internal/Functions.java @@ -1,4 +1,4 @@ -package com.stardust.autojs.runtime.internal; +package com.stardust.autojs.core.internal; /** * Created by Stardust on 2017/7/19. diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/record/Recorder.java b/autojs/src/main/java/com/stardust/autojs/core/record/Recorder.java similarity index 98% rename from autojs/src/main/java/com/stardust/autojs/runtime/record/Recorder.java rename to autojs/src/main/java/com/stardust/autojs/core/record/Recorder.java index 12780d7c..4f7af50b 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/record/Recorder.java +++ b/autojs/src/main/java/com/stardust/autojs/core/record/Recorder.java @@ -1,4 +1,4 @@ -package com.stardust.autojs.runtime.record; +package com.stardust.autojs.core.record; import java.util.Arrays; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/record/accessibility/AccessibilityActionConverter.java b/autojs/src/main/java/com/stardust/autojs/core/record/accessibility/AccessibilityActionConverter.java similarity index 98% rename from autojs/src/main/java/com/stardust/autojs/runtime/record/accessibility/AccessibilityActionConverter.java rename to autojs/src/main/java/com/stardust/autojs/core/record/accessibility/AccessibilityActionConverter.java index 23aef3d0..258e88bb 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/record/accessibility/AccessibilityActionConverter.java +++ b/autojs/src/main/java/com/stardust/autojs/core/record/accessibility/AccessibilityActionConverter.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/record/accessibility/AccessibilityActionRecorder.java b/autojs/src/main/java/com/stardust/autojs/core/record/accessibility/AccessibilityActionRecorder.java similarity index 95% rename from autojs/src/main/java/com/stardust/autojs/runtime/record/accessibility/AccessibilityActionRecorder.java rename to autojs/src/main/java/com/stardust/autojs/core/record/accessibility/AccessibilityActionRecorder.java index 5d2c6b1a..b5eba3a5 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/record/accessibility/AccessibilityActionRecorder.java +++ b/autojs/src/main/java/com/stardust/autojs/core/record/accessibility/AccessibilityActionRecorder.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/EventFormatException.java b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/EventFormatException.java similarity index 90% rename from autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/EventFormatException.java rename to autojs/src/main/java/com/stardust/autojs/core/record/inputevent/EventFormatException.java index f12aa1d3..e3998940 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/EventFormatException.java +++ b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/EventFormatException.java @@ -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. diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventRecorder.java b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventRecorder.java similarity index 84% rename from autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventRecorder.java rename to autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventRecorder.java index b4edb591..cbcb9887 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventRecorder.java +++ b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventRecorder.java @@ -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); diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventToAutoFileRecorder.java b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToAutoFileRecorder.java similarity index 96% rename from autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventToAutoFileRecorder.java rename to autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToAutoFileRecorder.java index 778dcb57..f72efa42 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventToAutoFileRecorder.java +++ b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToAutoFileRecorder.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventToRootAutomatorRecorder.java b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToRootAutomatorRecorder.java similarity index 96% rename from autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventToRootAutomatorRecorder.java rename to autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToRootAutomatorRecorder.java index 8b5e7ade..dca187cb 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventToRootAutomatorRecorder.java +++ b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToRootAutomatorRecorder.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventToSendEventJsRecorder.java b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToSendEventJsRecorder.java similarity index 96% rename from autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventToSendEventJsRecorder.java rename to autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToSendEventJsRecorder.java index ab4fbd0f..50e0bfb0 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/InputEventToSendEventJsRecorder.java +++ b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToSendEventJsRecorder.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/TouchRecorder.java b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/TouchRecorder.java similarity index 90% rename from autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/TouchRecorder.java rename to autojs/src/main/java/com/stardust/autojs/core/record/inputevent/TouchRecorder.java index 54222418..15735336 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/TouchRecorder.java +++ b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/TouchRecorder.java @@ -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. diff --git a/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.java b/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.java index c3fdfa5a..4218c059 100644 --- a/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.java +++ b/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/engine/RootAutomatorEngine.java b/autojs/src/main/java/com/stardust/autojs/engine/RootAutomatorEngine.java index 7bec597f..1c0b8e2b 100644 --- a/autojs/src/main/java/com/stardust/autojs/engine/RootAutomatorEngine.java +++ b/autojs/src/main/java/com/stardust/autojs/engine/RootAutomatorEngine.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/engine/ScriptEngine.java b/autojs/src/main/java/com/stardust/autojs/engine/ScriptEngine.java index 51beaeaa..41e486c2 100644 --- a/autojs/src/main/java/com/stardust/autojs/engine/ScriptEngine.java +++ b/autojs/src/main/java/com/stardust/autojs/engine/ScriptEngine.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/execution/RunnableScriptExecution.java b/autojs/src/main/java/com/stardust/autojs/execution/RunnableScriptExecution.java index 379685d2..4f460148 100644 --- a/autojs/src/main/java/com/stardust/autojs/execution/RunnableScriptExecution.java +++ b/autojs/src/main/java/com/stardust/autojs/execution/RunnableScriptExecution.java @@ -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; /** diff --git a/autojs/src/main/java/com/stardust/autojs/rhino/AndroidContextFactory.java b/autojs/src/main/java/com/stardust/autojs/rhino/AndroidContextFactory.java index dbdda2f8..a8fb4518 100644 --- a/autojs/src/main/java/com/stardust/autojs/rhino/AndroidContextFactory.java +++ b/autojs/src/main/java/com/stardust/autojs/rhino/AndroidContextFactory.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ScriptBridges.java b/autojs/src/main/java/com/stardust/autojs/runtime/ScriptBridges.java similarity index 93% rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ScriptBridges.java rename to autojs/src/main/java/com/stardust/autojs/runtime/ScriptBridges.java index 131b9767..404497bb 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ScriptBridges.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/ScriptBridges.java @@ -1,4 +1,4 @@ -package com.stardust.autojs.runtime.api; +package com.stardust.autojs.runtime; /** * Created by Stardust on 2017/7/21. diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptRuntime.java b/autojs/src/main/java/com/stardust/autojs/runtime/ScriptRuntime.java index cb87af01..4c4682fe 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptRuntime.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/ScriptRuntime.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/AutomatorConfig.java b/autojs/src/main/java/com/stardust/autojs/runtime/accessibility/AutomatorConfig.java similarity index 89% rename from autojs/src/main/java/com/stardust/autojs/runtime/api/AutomatorConfig.java rename to autojs/src/main/java/com/stardust/autojs/runtime/accessibility/AutomatorConfig.java index 9a1f2335..2ef43d2e 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/AutomatorConfig.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/accessibility/AutomatorConfig.java @@ -1,4 +1,4 @@ -package com.stardust.autojs.runtime.api; +package com.stardust.autojs.runtime.accessibility; /** * Created by Stardust on 2017/4/29. diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/AbstractConsole.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/AbstractConsole.java index a02379f8..c63f887f 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/AbstractConsole.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/AbstractConsole.java @@ -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. diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/AppUtils.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/AppUtils.java index 8c816549..9bc62483 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/AppUtils.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/AppUtils.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/Console.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/Console.java index a2c69cb4..c8b22e87 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/Console.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/Console.java @@ -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. diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/EventEmitter.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/EventEmitter.java index e10d8b4f..b9109416 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/EventEmitter.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/EventEmitter.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/Events.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/Events.java index 780f3ec3..8db25df6 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/Events.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/Events.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/InjectableWebClient.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/InjectableWebClient.java index cd98205e..726b4b02 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/InjectableWebClient.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/InjectableWebClient.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/InjectableWebView.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/InjectableWebView.java index c9217617..e40b95b4 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/InjectableWebView.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/InjectableWebView.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/Loopers.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/Loopers.java index e64b0ec4..6a7775b0 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/Loopers.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/Loopers.java @@ -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; /** diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/RootAutomator.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/RootAutomator.java index d188127b..e5fb0611 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/RootAutomator.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/RootAutomator.java @@ -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. diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/Shell.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/Shell.java index 4a3407fa..e7a76632 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/Shell.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/Shell.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/Timers.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/Timers.java index 1205d1ea..eee7f4a8 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/Timers.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/Timers.java @@ -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. diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/UiSelector.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/UiSelector.java index 5982c350..cb72dcc9 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/UiSelector.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/UiSelector.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ColorFinder.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ColorFinder.java index 1d4f37ed..fb8dd117 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ColorFinder.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ColorFinder.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/Images.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/image/Images.java index 0ebffab5..b82d8dc5 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/Images.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/image/Images.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ScreenCapturer.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ScreenCapturer.java index f2e36287..8749d26f 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ScreenCapturer.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ScreenCapturer.java @@ -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; /** diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/Dialogs.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/Dialogs.java index 01f5c6bc..2d567ec0 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/Dialogs.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/Dialogs.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/console/StardustConsole.java b/autojs/src/main/java/com/stardust/autojs/runtime/console/StardustConsole.java index 29c35c5e..5f461476 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/console/StardustConsole.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/console/StardustConsole.java @@ -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; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptEnvironmentException.java b/autojs/src/main/java/com/stardust/autojs/runtime/exception/ScriptEnvironmentException.java similarity index 51% rename from autojs/src/main/java/com/stardust/autojs/runtime/ScriptEnvironmentException.java rename to autojs/src/main/java/com/stardust/autojs/runtime/exception/ScriptEnvironmentException.java index 6d94e46c..defec15c 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptEnvironmentException.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/exception/ScriptEnvironmentException.java @@ -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); } diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptException.java b/autojs/src/main/java/com/stardust/autojs/runtime/exception/ScriptException.java similarity index 89% rename from autojs/src/main/java/com/stardust/autojs/runtime/ScriptException.java rename to autojs/src/main/java/com/stardust/autojs/runtime/exception/ScriptException.java index f54732e4..4925df9c 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptException.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/exception/ScriptException.java @@ -1,4 +1,4 @@ -package com.stardust.autojs.runtime; +package com.stardust.autojs.runtime.exception; /** * Created by Stardust on 2017/1/29. diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptInterruptedException.java b/autojs/src/main/java/com/stardust/autojs/runtime/exception/ScriptInterruptedException.java similarity index 86% rename from autojs/src/main/java/com/stardust/autojs/runtime/ScriptInterruptedException.java rename to autojs/src/main/java/com/stardust/autojs/runtime/exception/ScriptInterruptedException.java index b20b90b8..8be2013d 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptInterruptedException.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/exception/ScriptInterruptedException.java @@ -1,4 +1,4 @@ -package com.stardust.autojs.runtime; +package com.stardust.autojs.runtime.exception; /** * Created by Stardust on 2017/4/30. diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/KeyObserver.java b/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/KeyObserver.java deleted file mode 100644 index 73f4d71e..00000000 --- a/autojs/src/main/java/com/stardust/autojs/runtime/record/inputevent/KeyObserver.java +++ /dev/null @@ -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 keyNameToCode = new HashMap<>(); - private static final SparseArray 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(); - } - } - -}