wtf
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user