fix: GlobalActionRecorder register invalid subscriber; opt: rememove getRootInActiveWindow on every onAccessibilitySerive()

This commit is contained in:
hyb1996 2017-12-09 00:23:23 +08:00
parent b6f251da0b
commit 87c7cc73c3
6 changed files with 22 additions and 24 deletions

View File

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

View File

@ -1 +1 @@
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1},"path":"inrt-release.apk","properties":{"packageId":"com.stardust.auojs.inrt","split":"","minSdkVersion":"17"}}]
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":234},"path":"release-3.0.0 Alpha34.apk","properties":{"packageId":"com.stardust.scriptdroid","split":"","minSdkVersion":"17"}}]

View File

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

View File

@ -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<Integer, AccessibilityDelegate> entry : mDelegates.entrySet()) {
AccessibilityDelegate delegate = entry.getValue();
Set<Integer> 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;
}

View File

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

View File

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