diff --git a/app/src/main/assets/modules/__automator__.js b/app/src/main/assets/modules/__automator__.js index 8c058bd0..1f7d05bc 100644 --- a/app/src/main/assets/modules/__automator__.js +++ b/app/src/main/assets/modules/__automator__.js @@ -61,6 +61,9 @@ module.exports = function (scriptRuntime, scope) { return util.java.toJsArray(a11yBridge.windowRoots(), false) .map(root => UiObject.createRoot(root)); }, + stateListener(listener){ + return a11yBridge.setAccessibilityListener(listener); + }, waitFor(timeout) { automator.waitForService(timeout); }, diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityBridge.java b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityBridge.java index 4f94580f..e49d5d29 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityBridge.java +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityBridge.java @@ -150,4 +150,7 @@ public abstract class AccessibilityBridge { return mConfig; } + public void setAccessibilityListener(AccessibilityServiceCallback listener) { + AccessibilityService.Companion.setCallback(listener); + } } diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityService.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityService.kt index 410fbab6..ab6af890 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityService.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityService.kt @@ -20,7 +20,6 @@ interface AccessibilityServiceCallback { fun onServiceConnected() fun onServiceDisconnected() } - /** * Created by Stardust on 2017/5/2. */ @@ -30,8 +29,6 @@ open class AccessibilityService : android.accessibilityservice.AccessibilityServ var fastRootInActiveWindow: AccessibilityNodeInfo? = null var bridge: AccessibilityBridge? = null - private var callback: AccessibilityServiceCallback? = null - private val gestureEventDispatcher = EventDispatcher() private val eventExecutor by lazy { Executors.newSingleThreadExecutor() } @@ -120,10 +117,6 @@ open class AccessibilityService : android.accessibilityservice.AccessibilityServ // FIXME: 2017/2/12 有时在无障碍中开启服务后这里不会调用服务也不会运行,安卓的BUG??? } - fun setCallback(callback: AccessibilityServiceCallback) { - this.callback = callback - } - companion object { private const val TAG = "AccessibilityService" @@ -134,6 +127,7 @@ open class AccessibilityService : android.accessibilityservice.AccessibilityServ private val LOCK = ReentrantLock() private val ENABLED = LOCK.newCondition() + private var callback: AccessibilityServiceCallback? = null var instance: AccessibilityService? = null private set @@ -191,6 +185,10 @@ open class AccessibilityService : android.accessibilityservice.AccessibilityServ } } + fun setCallback(listener: AccessibilityServiceCallback) { + callback = listener + } + interface GestureListener { fun onGesture(gestureId: Int) }