From 9419aeb3a4566e8e9837d361994b9d4a28fe7cc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8A=A0=E8=84=9A=E6=9C=AC=E4=BA=BA?= <742374184@qq.com> Date: Mon, 10 Jul 2023 13:27:34 +0800 Subject: [PATCH] =?UTF-8?q?auto=E6=A8=A1=E5=9D=97=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=97=A0=E9=9A=9C=E7=A2=8D=E5=9B=9E=E8=B0=83=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/assets/modules/__automator__.js | 3 +++ .../core/accessibility/AccessibilityBridge.java | 3 +++ .../core/accessibility/AccessibilityService.kt | 12 +++++------- 3 files changed, 11 insertions(+), 7 deletions(-) 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) }