This commit is contained in:
hyb1996
2017-11-03 19:56:50 +08:00
parent 36c6b38b17
commit ef02572f1d
16 changed files with 221 additions and 165 deletions

View File

@@ -1,11 +1,11 @@
package com.stardust.autojs.core.accessibility;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.accessibility.AccessibilityNodeInfo;
import com.stardust.view.accessibility.AccessibilityInfoProvider;
import com.stardust.view.accessibility.AccessibilityNotificationObserver;
import com.stardust.view.accessibility.AccessibilityService;
import com.stardust.view.accessibility.NotificationListener;
@@ -48,5 +48,5 @@ public abstract class AccessibilityBridge {
}
@NonNull
public abstract NotificationListener.Observer getNotificationObserver();
public abstract AccessibilityNotificationObserver getNotificationObserver();
}

View File

@@ -35,7 +35,9 @@ public class RunnableScriptExecution extends ScriptExecution.AbstractScriptExecu
private Object execute(ScriptEngine engine) {
try {
prepare(engine);
return doExecution(engine);
Object r = doExecution(engine);
getListener().onSuccess(this, r);
return r;
} catch (Exception e) {
e.printStackTrace();
getListener().onException(this, e);
@@ -67,7 +69,6 @@ public class RunnableScriptExecution extends ScriptExecution.AbstractScriptExecu
result = execute(engine, source);
sleep(interval);
}
getListener().onSuccess(this, result);
return result;
}

View File

@@ -17,6 +17,7 @@ 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.AccessibilityNotificationObserver;
import com.stardust.view.accessibility.AccessibilityService;
import com.stardust.view.accessibility.NotificationListener;
import com.stardust.view.accessibility.OnKeyListener;
@@ -25,7 +26,7 @@ import com.stardust.view.accessibility.OnKeyListener;
* Created by Stardust on 2017/7/18.
*/
public class Events extends EventEmitter implements OnKeyListener, TouchObserver.OnTouchEventListener, NotificationListener {
public class Events extends EventEmitter implements OnKeyListener, TouchObserver.OnTouchEventListener, NotificationListener, AccessibilityNotificationObserver.ToastListener {
private static final String PREFIX_KEY_DOWN = "__key_down__#";
private static final String PREFIX_KEY_UP = "__key_up__#";
@@ -135,6 +136,7 @@ public class Events extends EventEmitter implements OnKeyListener, TouchObserver
public void observeNotification() {
if (mListeningNotification)
return;
mAccessibilityBridge.ensureServiceEnabled();
mListeningNotification = true;
ensureHandler();
mLoopers.waitWhenIdle(true);
@@ -142,10 +144,9 @@ public class Events extends EventEmitter implements OnKeyListener, TouchObserver
&& NotificationListenerService.getInstance() != null) {
NotificationListenerService.getInstance().addListener(this);
} else {
mAccessibilityBridge.ensureServiceEnabled();
mAccessibilityBridge.getNotificationObserver()
.addListener(this);
mAccessibilityBridge.getNotificationObserver().addNotificationListener(this);
}
mAccessibilityBridge.getNotificationObserver().addToastListener(this);
}
public Events onNotification(Object listener) {
@@ -171,7 +172,8 @@ public class Events extends EventEmitter implements OnKeyListener, TouchObserver
mTouchObserver.stop();
}
if (mListeningNotification) {
mAccessibilityBridge.getNotificationObserver().removeListener(this);
mAccessibilityBridge.getNotificationObserver().removeNotificationListener(this);
mAccessibilityBridge.getNotificationObserver().removeToastListener(this);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2
&& NotificationListenerService.getInstance() != null) {
NotificationListenerService.getInstance().removeListener(this);
@@ -221,4 +223,14 @@ public class Events extends EventEmitter implements OnKeyListener, TouchObserver
});
}
@Override
public void onToast(final AccessibilityNotificationObserver.Toast toast) {
mHandler.post(new Runnable() {
@Override
public void run() {
emit("toast", toast);
}
});
}
}

View File

@@ -15,15 +15,6 @@ public class ProcessUtils {
private static final String LOG_TAG = "ProcessUtils";
// FIXME: 2017/8/3
public static void killProcessTree(Process process) {
int pid = getProcessPid(process);
if (pid >= 0)
kill(pid);
process.destroy();
}
public static int getProcessPid(Process process) {
try {
Field pid = process.getClass().getDeclaredField("pid");
@@ -35,9 +26,4 @@ public class ProcessUtils {
}
}
public static void kill(int pid) {
String cmd = "kill -TERM -- -" + pid;
Log.d(LOG_TAG, cmd);
ProcessShell.exec(cmd, true);
}
}