From 3619c099233714980e2c13fc4ad7ec975c92e2e5 Mon Sep 17 00:00:00 2001 From: gallonyin Date: Thu, 12 Jan 2023 12:02:22 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E7=AD=89=E5=BE=85=E8=BF=9B=E5=85=A5?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../worktool/utils/AccessibilityExtraUtil.kt | 42 +++++++++++++++++++ .../worktool/utils/FloatWindowHelper.kt | 2 +- .../yameida/worktool/utils/WeworkRoomUtil.kt | 5 ++- 3 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/org/yameida/worktool/utils/AccessibilityExtraUtil.kt diff --git a/app/src/main/java/org/yameida/worktool/utils/AccessibilityExtraUtil.kt b/app/src/main/java/org/yameida/worktool/utils/AccessibilityExtraUtil.kt new file mode 100644 index 0000000..e4b3fdd --- /dev/null +++ b/app/src/main/java/org/yameida/worktool/utils/AccessibilityExtraUtil.kt @@ -0,0 +1,42 @@ +package org.yameida.worktool.utils + +import android.util.Log +import java.lang.Thread.sleep +import org.yameida.worktool.service.WeworkController + + +/** + * 无障碍服务扩展类 + * 注意:操作均为阻塞式,原则上本工具类所有操作都应在子线程执行 + */ +object AccessibilityExtraUtil { + private const val tag = "AccessibilityExtraUtil" + private const val SHORT_INTERVAL = 150L + private const val SCROLL_INTERVAL_NATIVE = 500L + private const val SCROLL_INTERVAL = 800L + + /** + * 等待进入页面 + * @param clazz 页面Class + * @param timeout 检查超时时间 + */ + fun loadingPage( + clazz: String, + timeout: Long = 5000 + ): Boolean { + val service = WeworkController.weworkService + val startTime = System.currentTimeMillis() + var currentTime = startTime + while (currentTime - startTime <= timeout) { + if (service.currentClass == clazz) { + Log.v(tag, "loadingPage: $clazz") + return true + } + sleep(SHORT_INTERVAL) + currentTime = System.currentTimeMillis() + } + Log.e(tag, "loadingPage: not found: $clazz current: ${service.currentClass}") + return false + } + +} \ No newline at end of file diff --git a/app/src/main/java/org/yameida/worktool/utils/FloatWindowHelper.kt b/app/src/main/java/org/yameida/worktool/utils/FloatWindowHelper.kt index 67ccaa6..beb2246 100644 --- a/app/src/main/java/org/yameida/worktool/utils/FloatWindowHelper.kt +++ b/app/src/main/java/org/yameida/worktool/utils/FloatWindowHelper.kt @@ -106,7 +106,7 @@ object FloatWindowHelper { .append("\n") .append(WeworkController.weworkService.currentClass) newFile.writeBytes(printNodeClazzTree.toString().toByteArray()) - LogUtils.i("打印节点文件存储本地成功 $filePath") + LogUtils.i("打印节点文件存储本地成功 $filePath", "当前页面: ${WeworkController.weworkService.currentClass}") } ShareUtil.share("*", newFile) } diff --git a/app/src/main/java/org/yameida/worktool/utils/WeworkRoomUtil.kt b/app/src/main/java/org/yameida/worktool/utils/WeworkRoomUtil.kt index ec3af8e..916eda6 100644 --- a/app/src/main/java/org/yameida/worktool/utils/WeworkRoomUtil.kt +++ b/app/src/main/java/org/yameida/worktool/utils/WeworkRoomUtil.kt @@ -112,7 +112,10 @@ object WeworkRoomUtil { val needTrim = title.contains(Constant.regTrimTitle) val trimTitle = title.replace(Constant.regTrimTitle, "") AccessibilityUtil.findTextInput(getRoot(), trimTitle) - sleep(Constant.CHANGE_PAGE_INTERVAL) + if (!AccessibilityExtraUtil.loadingPage("com.tencent.wework.contact.controller.GlobalSearchActivity")) { + LogUtils.e("未找到搜索页") + return false + } //消息页搜索结果列表 val selectListView = findOneByClazz(getRoot(), Views.ListView) val reverseRegexTitle = RegexHelper.reverseRegexTitle(trimTitle)