From dc10faa320f1e340dc957ccd45b4c22bae01bbc9 Mon Sep 17 00:00:00 2001 From: gallonyin Date: Tue, 13 Dec 2022 19:17:06 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96at?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../worktool/service/WeworkOperationImpl.kt | 37 ++++++++----------- .../worktool/utils/AccessibilityUtil.kt | 4 +- 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt b/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt index 82ca65b..66d9a2e 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt @@ -1574,38 +1574,33 @@ object WeworkOperationImpl { AccessibilityUtil.findOnceByClazz(getRoot(), Views.EditText), "@" ) } - val atFlag = AccessibilityUtil.findOneByText(getRoot(), "选择提醒的人", timeout = 2000, exact = true) + val atFlag = AccessibilityUtil.findOneByText(getRoot(), "选择提醒的人", exact = true) if (atFlag != null) { - val rv = AccessibilityUtil.findOneByClazz(getRoot(), Views.RecyclerView) - if (rv != null) { - AccessibilityUtil.findTextInput(getRoot(), at.replace("\\(.*?\\)".toRegex(), "")) - val atNode = - AccessibilityUtil.findOneByText(rv, at.replace("\\(.*?\\)".toRegex(), ""), root = false, timeout = 2000) + val searchFlag = AccessibilityUtil.findOneByText(getRoot(), "搜索", exact = true) + val container = AccessibilityUtil.findBackNode(searchFlag, minChildCount = 2)?.parent + if (container != null) { + val atNode = AccessibilityUtil.findOnceByTextRegex(container, "${RegexHelper.reverseRegexTitle(at)}(@.*)?") if (atNode != null) { AccessibilityUtil.performClick(atNode) } else { - LogUtils.e("未找到at人: $at") - atFailed = true - backPress() - } - sleep(Constant.POP_WINDOW_INTERVAL) - } else { - val searchFlag = AccessibilityUtil.findOnceByText(getRoot(), "搜索", exact = true) - val list = AccessibilityUtil.findBackNode(searchFlag, minChildCount = 2) - if (list != null) { - AccessibilityUtil.findTextInput(getRoot(), at.replace("\\(.*?\\)".toRegex(), "")) - val atNode = - AccessibilityUtil.findOneByText(list, at.replace("\\(.*?\\)".toRegex(), ""), root = false, timeout = 2000) - if (atNode != null) { - AccessibilityUtil.performClick(atNode) + AccessibilityUtil.findTextInput(getRoot(), at) + val atNodeList = AccessibilityUtil.findAllByTextRegex(container, "${RegexHelper.reverseRegexTitle(at)}(@.*)?", root = false, minSize = 2) + if (atNodeList.size > 1 && at != "@所有人") { + AccessibilityUtil.performClick(atNodeList[1]) } else { LogUtils.e("未找到at人: $at") atFailed = true backPress() } - sleep(Constant.POP_WINDOW_INTERVAL) } + sleep(Constant.POP_WINDOW_INTERVAL) + } else { + LogUtils.e("未找到搜索按钮和@列表") + backPress() + sleep(Constant.POP_WINDOW_INTERVAL) } + } else { + LogUtils.e("未找到选择提醒的人按钮") } } } diff --git a/app/src/main/java/org/yameida/worktool/utils/AccessibilityUtil.kt b/app/src/main/java/org/yameida/worktool/utils/AccessibilityUtil.kt index 67a2067..e4731e4 100644 --- a/app/src/main/java/org/yameida/worktool/utils/AccessibilityUtil.kt +++ b/app/src/main/java/org/yameida/worktool/utils/AccessibilityUtil.kt @@ -631,7 +631,7 @@ object AccessibilityUtil { timeout: Long = 5000, root: Boolean = true, minSize: Int = 1 - ): List { + ): ArrayList { var node = node ?: return arrayListOf() val startTime = System.currentTimeMillis() var currentTime = startTime @@ -692,7 +692,7 @@ object AccessibilityUtil { timeout: Long = 5000, root: Boolean = true, minSize: Int = 1 - ): List { + ): ArrayList { var node = node ?: return arrayListOf() val startTime = System.currentTimeMillis() var currentTime = startTime