fix: GlobalActionRecorder register invalid subscriber; opt: rememove getRootInActiveWindow on every onAccessibilitySerive()
This commit is contained in:
@@ -8,8 +8,8 @@ android {
|
|||||||
applicationId "com.stardust.scriptdroid"
|
applicationId "com.stardust.scriptdroid"
|
||||||
minSdkVersion 17
|
minSdkVersion 17
|
||||||
targetSdkVersion 23
|
targetSdkVersion 23
|
||||||
versionCode 233
|
versionCode 234
|
||||||
versionName "3.0.0 Alpha33"
|
versionName "3.0.0 Alpha34"
|
||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
ndk {
|
ndk {
|
||||||
|
|||||||
@@ -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"}}]
|
||||||
@@ -18,7 +18,6 @@ import com.stardust.scriptdroid.ui.common.ScriptOperations;
|
|||||||
import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder;
|
import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder;
|
||||||
import com.stardust.util.ClipboardUtil;
|
import com.stardust.util.ClipboardUtil;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
|
||||||
|
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
|
||||||
@@ -53,7 +52,6 @@ public class GlobalActionRecorder implements Recorder.OnStateChangedListener {
|
|||||||
return new InputEventToRootAutomatorRecorder();
|
return new InputEventToRootAutomatorRecorder();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
EventBus.getDefault().register(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -61,20 +61,24 @@ public class AccessibilityService extends android.accessibilityservice.Accessibi
|
|||||||
Log.v(TAG, "onAccessibilityEvent: " + event);
|
Log.v(TAG, "onAccessibilityEvent: " + event);
|
||||||
if (!containsAllEventTypes && !eventTypes.contains(event.getEventType()))
|
if (!containsAllEventTypes && !eventTypes.contains(event.getEventType()))
|
||||||
return;
|
return;
|
||||||
AccessibilityNodeInfo root = super.getRootInActiveWindow();
|
int type = event.getEventType();
|
||||||
if (root != null) {
|
if (type == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED ||
|
||||||
mFastRootInActiveWindow = root;
|
type == AccessibilityEvent.TYPE_VIEW_FOCUSED) {
|
||||||
Log.v(TAG, "root not null: " + event);
|
AccessibilityNodeInfo root = super.getRootInActiveWindow();
|
||||||
|
if (root != null) {
|
||||||
|
mFastRootInActiveWindow = root;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Map.Entry<Integer, AccessibilityDelegate> entry : mDelegates.entrySet()) {
|
for (Map.Entry<Integer, AccessibilityDelegate> entry : mDelegates.entrySet()) {
|
||||||
AccessibilityDelegate delegate = entry.getValue();
|
AccessibilityDelegate delegate = entry.getValue();
|
||||||
Set<Integer> types = delegate.getEventTypes();
|
Set<Integer> types = delegate.getEventTypes();
|
||||||
if (types != null && !delegate.getEventTypes().contains(event.getEventType()))
|
if (types != null && !delegate.getEventTypes().contains(event.getEventType()))
|
||||||
continue;
|
continue;
|
||||||
long start = System.currentTimeMillis();
|
//long start = System.currentTimeMillis();
|
||||||
if (delegate.onAccessibilityEvent(AccessibilityService.this, event))
|
if (delegate.onAccessibilityEvent(AccessibilityService.this, event))
|
||||||
break;
|
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) {
|
if (mKeyEventExecutor == null) {
|
||||||
mKeyEventExecutor = Executors.newSingleThreadExecutor();
|
mKeyEventExecutor = Executors.newSingleThreadExecutor();
|
||||||
}
|
}
|
||||||
mKeyEventExecutor.execute(new Runnable() {
|
mKeyEventExecutor.execute(() -> {
|
||||||
@Override
|
stickOnKeyObserver.onKeyEvent(event.getKeyCode(), event);
|
||||||
public void run() {
|
mOnKeyObserver.onKeyEvent(event.getKeyCode(), event);
|
||||||
stickOnKeyObserver.onKeyEvent(event.getKeyCode(), event);
|
|
||||||
mOnKeyObserver.onKeyEvent(event.getKeyCode(), event);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ android {
|
|||||||
applicationId "com.stardust.auojs.inrt"
|
applicationId "com.stardust.auojs.inrt"
|
||||||
minSdkVersion 17
|
minSdkVersion 17
|
||||||
targetSdkVersion 23
|
targetSdkVersion 23
|
||||||
versionCode 1
|
versionCode 34
|
||||||
versionName "0.0.1"
|
versionName "1.0.0 Alpha34"
|
||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||||
ndk {
|
ndk {
|
||||||
abiFilters 'armeabi-v7a'
|
abiFilters 'armeabi-v7a'
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ package com.stardust.auojs.inrt;
|
|||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.RequiresApi;
|
import android.support.annotation.RequiresApi;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.os.Bundle;
|
|
||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.widget.Toolbar;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
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.ConsoleView;
|
||||||
import com.stardust.autojs.core.console.StardustConsole;
|
import com.stardust.autojs.core.console.StardustConsole;
|
||||||
import com.stardust.autojs.script.StringScriptSource;
|
import com.stardust.autojs.script.StringScriptSource;
|
||||||
import com.stardust.pio.PFile;
|
|
||||||
import com.stardust.pio.PFiles;
|
import com.stardust.pio.PFiles;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -56,22 +55,22 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
AutoJs.getInstance().getGlobalConsole().log(e);
|
AutoJs.getInstance().getGlobalConsole().log(e);
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
if(!Pref.shouldShowMainActivity()){
|
if (!Pref.shouldShowMainActivity()) {
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||||
System.out.println(PFiles.read("/sdcard/1.txt"));
|
|
||||||
runScript();
|
runScript();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void checkPermission(String... permissions) {
|
protected void checkPermission(String... permissions) {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
String[] requestPermissions = getRequestPermissions(permissions);
|
String[] requestPermissions = getRequestPermissions(permissions);
|
||||||
if (requestPermissions.length > 0) {
|
if (requestPermissions.length > 0) {
|
||||||
requestPermissions(requestPermissions, PERMISSION_REQUEST_CODE);
|
requestPermissions(requestPermissions, PERMISSION_REQUEST_CODE);
|
||||||
}else {
|
} else {
|
||||||
runScript();
|
runScript();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user