6.0.0 - 部分插件及工具版本更新

This commit is contained in:
SuperMonster003
2021-12-01 13:39:18 +08:00
parent 684938893a
commit 99a1d8490f
195 changed files with 5540 additions and 3909 deletions

View File

@@ -117,18 +117,21 @@ class GlobalActionAutomator(private val mHandler: Handler?, private val serviceP
private fun gesturesWithoutHandler(description: GestureDescription): Boolean {
prepareLooperIfNeeded()
val result = VolatileBox(false)
val handler = Handler(Looper.myLooper())
service.dispatchGesture(description, object : AccessibilityService.GestureResultCallback() {
override fun onCompleted(gestureDescription: GestureDescription) {
result.set(true)
quitLoop()
}
val myLooper = Looper.myLooper()
if (myLooper != null) {
val handler = Handler(myLooper)
service.dispatchGesture(description, object : AccessibilityService.GestureResultCallback() {
override fun onCompleted(gestureDescription: GestureDescription) {
result.set(true)
quitLoop()
}
override fun onCancelled(gestureDescription: GestureDescription) {
result.set(false)
quitLoop()
}
}, handler)
override fun onCancelled(gestureDescription: GestureDescription) {
result.set(false)
quitLoop()
}
}, handler)
}
Looper.loop()
return result.get()
}

View File

@@ -12,7 +12,7 @@ object BFS : SearchAlgorithm {
val queue = ArrayDeque<UiObject>()
queue.add(root)
while (!queue.isEmpty()) {
val top = queue.poll()
val top = queue.poll()!!
val isTarget = filter.filter(top)
if (isTarget) {
result.add(top)

View File

@@ -16,28 +16,28 @@ interface Able {
val ABLE_MAP = SparseArrayEntries<Able>()
.entry(AccessibilityNodeInfo.ACTION_CLICK, object : Able {
override fun isAble(nodeInfo: UiObject): Boolean {
return nodeInfo.isClickable
override fun isAble(node: UiObject): Boolean {
return node.isClickable
}
})
.entry(AccessibilityNodeInfo.ACTION_LONG_CLICK, object : Able {
override fun isAble(nodeInfo: UiObject): Boolean {
return nodeInfo.isLongClickable
override fun isAble(node: UiObject): Boolean {
return node.isLongClickable
}
})
.entry(AccessibilityNodeInfo.ACTION_FOCUS, object : Able {
override fun isAble(nodeInfo: UiObject): Boolean {
return nodeInfo.isFocusable
override fun isAble(node: UiObject): Boolean {
return node.isFocusable
}
})
.entry(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD, object : Able {
override fun isAble(nodeInfo: UiObject): Boolean {
return nodeInfo.isScrollable
override fun isAble(node: UiObject): Boolean {
return node.isScrollable
}
})
.entry(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD, object : Able {
override fun isAble(nodeInfo: UiObject): Boolean {
return nodeInfo.isScrollable
override fun isAble(node: UiObject): Boolean {
return node.isScrollable
}
})
.sparseArray()

View File

@@ -7,20 +7,20 @@ import com.stardust.automator.UiObject
* Created by Stardust on 2017/1/27.
*/
class SearchUpTargetAction(action: Int, filter: FilterAction.Filter) : SearchTargetAction(action, filter) {
class SearchUpTargetAction(action: Int, filter: Filter) : SearchTargetAction(action, filter) {
private val mAble: Able = Able.ABLE_MAP.get(action)
override fun searchTarget(n: UiObject?): UiObject? {
var node = n
override fun searchTarget(node: UiObject?): UiObject? {
var o = node
var i = 0
while (node != null && !mAble.isAble(node)) {
while (o != null && !mAble.isAble(o)) {
i++
if (i > LOOP_MAX) {
return null
}
node = node.parent()
o = o.parent()
}
return node
return o
}
override fun toString(): String {
@@ -31,8 +31,6 @@ class SearchUpTargetAction(action: Int, filter: FilterAction.Filter) : SearchTar
}
companion object {
private val TAG = SearchUpTargetAction::class.java!!.getSimpleName()
private val LOOP_MAX = 20
private const val LOOP_MAX = 20
}
}

View File

@@ -83,8 +83,9 @@ open class AccessibilityNodeInfoAllocator {
try {
key.recycle()
notRecycledCount++
if (DEBUG)
if (DEBUG && value !== null) {
Log.w(TAG, value)
}
} catch (ignored: IllegalStateException) {
}

View File

@@ -1,10 +1,8 @@
package com.stardust.view.accessibility
import android.graphics.Rect
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat
import android.view.accessibility.AccessibilityNodeInfo
import com.stardust.automator.UiObject
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat
/**
* Created by Stardust on 2017/3/6.
@@ -20,6 +18,7 @@ object AccessibilityNodeInfoHelper {
* @param height pixel height of the display
* @return null if node is null, else a Rect containing visible bounds
*/
@Suppress("unused")
fun getVisibleBoundsInScreen(node: AccessibilityNodeInfo?, width: Int, height: Int): Rect? {
if (node == null) {
return null
@@ -33,7 +32,6 @@ object AccessibilityNodeInfoHelper {
displayRect.left = 0
displayRect.right = width
displayRect.bottom = height
val intersect = nodeRect.intersect(displayRect)
return nodeRect
}

View File

@@ -1,6 +1,5 @@
package com.stardust.view.accessibility
import android.accessibilityservice.*
import android.content.Context
import android.util.Log
import android.view.accessibility.AccessibilityEvent
@@ -8,7 +7,6 @@ import android.view.accessibility.AccessibilityEvent
import com.stardust.notification.Notification
import java.util.ArrayList
import java.util.Collections
import java.util.concurrent.CopyOnWriteArrayList
/**
@@ -81,14 +79,14 @@ class AccessibilityNotificationObserver(private val mContext: Context) : Notific
return false
}
if (list != null) {
onToast(event, Toast(event.packageName.toString(), list))
onToast(Toast(event.packageName.toString(), list))
}
}
return false
}
private fun onToast(event: AccessibilityEvent, toast: Toast) {
private fun onToast(toast: Toast) {
for (listener in mToastListeners) {
try {
listener.onToast(toast)