From 87c7cc73c3dd15c808b882c84fc55382482bda2f Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Sat, 9 Dec 2017 00:23:23 +0800 Subject: [PATCH] fix: GlobalActionRecorder register invalid subscriber; opt: rememove getRootInActiveWindow on every onAccessibilitySerive() --- app/build.gradle | 4 +-- app/release/output.json | 2 +- .../autojs/record/GlobalActionRecorder.java | 2 -- .../accessibility/AccessibilityService.java | 25 ++++++++++--------- inrt/build.gradle | 4 +-- .../com/stardust/auojs/inrt/MainActivity.java | 9 +++---- 6 files changed, 22 insertions(+), 24 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4a864549..10d0535a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "com.stardust.scriptdroid" minSdkVersion 17 targetSdkVersion 23 - versionCode 233 - versionName "3.0.0 Alpha33" + versionCode 234 + versionName "3.0.0 Alpha34" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true ndk { diff --git a/app/release/output.json b/app/release/output.json index 788e9f63..c84162ff 100644 --- a/app/release/output.json +++ b/app/release/output.json @@ -1 +1 @@ -[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1},"path":"inrt-release.apk","properties":{"packageId":"com.stardust.auojs.inrt","split":"","minSdkVersion":"17"}}] \ No newline at end of file +[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":234},"path":"release-3.0.0 Alpha34.apk","properties":{"packageId":"com.stardust.scriptdroid","split":"","minSdkVersion":"17"}}] \ No newline at end of file diff --git a/app/src/main/java/com/stardust/scriptdroid/autojs/record/GlobalActionRecorder.java b/app/src/main/java/com/stardust/scriptdroid/autojs/record/GlobalActionRecorder.java index 175d0663..829bea8a 100644 --- a/app/src/main/java/com/stardust/scriptdroid/autojs/record/GlobalActionRecorder.java +++ b/app/src/main/java/com/stardust/scriptdroid/autojs/record/GlobalActionRecorder.java @@ -18,7 +18,6 @@ import com.stardust.scriptdroid.ui.common.ScriptOperations; import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder; import com.stardust.util.ClipboardUtil; -import org.greenrobot.eventbus.EventBus; import java.util.concurrent.CopyOnWriteArrayList; @@ -53,7 +52,6 @@ public class GlobalActionRecorder implements Recorder.OnStateChangedListener { return new InputEventToRootAutomatorRecorder(); } }; - EventBus.getDefault().register(this); } diff --git a/automator/src/main/java/com/stardust/view/accessibility/AccessibilityService.java b/automator/src/main/java/com/stardust/view/accessibility/AccessibilityService.java index 00680218..9f8ad283 100644 --- a/automator/src/main/java/com/stardust/view/accessibility/AccessibilityService.java +++ b/automator/src/main/java/com/stardust/view/accessibility/AccessibilityService.java @@ -61,20 +61,24 @@ public class AccessibilityService extends android.accessibilityservice.Accessibi Log.v(TAG, "onAccessibilityEvent: " + event); if (!containsAllEventTypes && !eventTypes.contains(event.getEventType())) return; - AccessibilityNodeInfo root = super.getRootInActiveWindow(); - if (root != null) { - mFastRootInActiveWindow = root; - Log.v(TAG, "root not null: " + event); + int type = event.getEventType(); + if (type == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED || + type == AccessibilityEvent.TYPE_VIEW_FOCUSED) { + AccessibilityNodeInfo root = super.getRootInActiveWindow(); + if (root != null) { + mFastRootInActiveWindow = root; + } } + for (Map.Entry entry : mDelegates.entrySet()) { AccessibilityDelegate delegate = entry.getValue(); Set types = delegate.getEventTypes(); if (types != null && !delegate.getEventTypes().contains(event.getEventType())) continue; - long start = System.currentTimeMillis(); + //long start = System.currentTimeMillis(); if (delegate.onAccessibilityEvent(AccessibilityService.this, event)) break; - Log.v(TAG, "millis: " + (System.currentTimeMillis() - start) + " delegate: " + entry.getValue().getClass().getName()); + //Log.v(TAG, "millis: " + (System.currentTimeMillis() - start) + " delegate: " + entry.getValue().getClass().getName()); } } @@ -89,12 +93,9 @@ public class AccessibilityService extends android.accessibilityservice.Accessibi if (mKeyEventExecutor == null) { mKeyEventExecutor = Executors.newSingleThreadExecutor(); } - mKeyEventExecutor.execute(new Runnable() { - @Override - public void run() { - stickOnKeyObserver.onKeyEvent(event.getKeyCode(), event); - mOnKeyObserver.onKeyEvent(event.getKeyCode(), event); - } + mKeyEventExecutor.execute(() -> { + stickOnKeyObserver.onKeyEvent(event.getKeyCode(), event); + mOnKeyObserver.onKeyEvent(event.getKeyCode(), event); }); return false; } diff --git a/inrt/build.gradle b/inrt/build.gradle index 6fd6cbbb..027da00e 100644 --- a/inrt/build.gradle +++ b/inrt/build.gradle @@ -8,8 +8,8 @@ android { applicationId "com.stardust.auojs.inrt" minSdkVersion 17 targetSdkVersion 23 - versionCode 1 - versionName "0.0.1" + versionCode 34 + versionName "1.0.0 Alpha34" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" ndk { abiFilters 'armeabi-v7a' diff --git a/inrt/src/main/java/com/stardust/auojs/inrt/MainActivity.java b/inrt/src/main/java/com/stardust/auojs/inrt/MainActivity.java index 88d6f6a1..cd80b364 100644 --- a/inrt/src/main/java/com/stardust/auojs/inrt/MainActivity.java +++ b/inrt/src/main/java/com/stardust/auojs/inrt/MainActivity.java @@ -3,10 +3,10 @@ package com.stardust.auojs.inrt; import android.Manifest; import android.content.Intent; import android.os.Build; +import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.RequiresApi; import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; @@ -15,7 +15,6 @@ import com.stardust.auojs.inrt.rt.AutoJs; import com.stardust.autojs.core.console.ConsoleView; import com.stardust.autojs.core.console.StardustConsole; import com.stardust.autojs.script.StringScriptSource; -import com.stardust.pio.PFile; import com.stardust.pio.PFiles; import java.util.ArrayList; @@ -56,22 +55,22 @@ public class MainActivity extends AppCompatActivity { AutoJs.getInstance().getGlobalConsole().log(e); } }).start(); - if(!Pref.shouldShowMainActivity()){ + if (!Pref.shouldShowMainActivity()) { finish(); } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - System.out.println(PFiles.read("/sdcard/1.txt")); runScript(); } + protected void checkPermission(String... permissions) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { String[] requestPermissions = getRequestPermissions(permissions); if (requestPermissions.length > 0) { requestPermissions(requestPermissions, PERMISSION_REQUEST_CODE); - }else { + } else { runScript(); } } else {