From 7fc97cf6242fdab5c64abe49967bee7aa9285a0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=B9=E7=94=B2=E4=BB=91?= Date: Wed, 17 Aug 2022 16:32:44 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=B7=A5=E4=BD=9C=E5=8F=B0=E4=BC=98?= =?UTF-8?q?=E5=85=88=E4=BD=BF=E7=94=A8click?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../worktool/service/WeworkOperationImpl.kt | 23 ++++++++++++++----- .../worktool/utils/AccessibilityUtil.kt | 10 ++++---- 2 files changed, 22 insertions(+), 11 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 f1f4f92..b853f0e 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt @@ -1,5 +1,6 @@ package org.yameida.worktool.service +import android.os.Build import android.view.accessibility.AccessibilityNodeInfo import org.yameida.worktool.Constant import org.yameida.worktool.model.WeworkMessageBean @@ -274,7 +275,11 @@ object WeworkOperationImpl { goHomeTab("工作台") val node = AccessibilityUtil.scrollAndFindByText(getRoot(), "微盘") if (node != null) { - AccessibilityUtil.performClick(node) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + AccessibilityUtil.clickByNode(WeworkController.weworkService, node) + } else { + AccessibilityUtil.performClick(node) + } val buttonList = AccessibilityUtil.findAllByClazz(getRoot(), Views.Button) if (buttonList.size >= 4) { AccessibilityUtil.performClick(buttonList[2]) @@ -316,7 +321,11 @@ object WeworkOperationImpl { goHomeTab("工作台") val node = AccessibilityUtil.scrollAndFindByText(getRoot(), "微盘") if (node != null) { - AccessibilityUtil.performClick(node) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + AccessibilityUtil.clickByNode(WeworkController.weworkService, node) + } else { + AccessibilityUtil.performClick(node) + } val buttonList = AccessibilityUtil.findAllByClazz(getRoot(), Views.Button) if (buttonList.size >= 4) { AccessibilityUtil.performClick(buttonList[2]) @@ -623,12 +632,14 @@ object WeworkOperationImpl { */ private fun createGroup(): Boolean { goHomeTab("工作台") - val textViewGroup = AccessibilityUtil.scrollAndFindByText(getRoot(), "客户群", "居民群") - if (AccessibilityUtil.performClick(textViewGroup)) { + val groupTv = AccessibilityUtil.scrollAndFindByText(getRoot(), "客户群", "居民群") + ?: return false + if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.N + && AccessibilityUtil.clickByNode(WeworkController.weworkService, groupTv)) + || AccessibilityUtil.performClick(groupTv)) { LogUtils.d("进入客户群应用") val textView = AccessibilityUtil.findOneByText(getRoot(), "创建一个客户群", "创建一个居民群") - AccessibilityUtil.performClick(textView) - return true + return AccessibilityUtil.performClick(textView) } else { LogUtils.d("未找到客户群应用") return false 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 645c438..dd51b10 100644 --- a/app/src/main/java/org/yameida/worktool/utils/AccessibilityUtil.kt +++ b/app/src/main/java/org/yameida/worktool/utils/AccessibilityUtil.kt @@ -381,7 +381,7 @@ object AccessibilityUtil { var currentTime = startTime while (currentTime - startTime <= timeout) { val result = findOnceByText(node, *textList, exact = exact) - LogUtils.v("text: $textList result == null: ${result == null}") + LogUtils.v("text: ${textList.joinToString()} result == null: ${result == null}") if (result != null) return result sleep(SHORT_INTERVAL) if (root) { @@ -391,7 +391,7 @@ object AccessibilityUtil { } currentTime = System.currentTimeMillis() } - Log.e(tag, "findOneByText: not found: $textList") + Log.e(tag, "findOneByText: not found: ${textList.joinToString()}") return null } @@ -402,7 +402,7 @@ object AccessibilityUtil { ): AccessibilityNodeInfo? { if (node == null) return null val textNodeList = findAllOnceByText(node, *textList, exact = exact) - LogUtils.v("text: $textList count: " + textNodeList.size) + LogUtils.v("text: ${textList.joinToString()} count: " + textNodeList.size) if (exact) return textNodeList[0] else if (textNodeList.size > 0) { for (textNode in textNodeList) { @@ -436,7 +436,7 @@ object AccessibilityUtil { var currentTime = startTime while (currentTime - startTime <= timeout) { val result = findAllOnceByText(node, *textList, exact = exact) - LogUtils.v("text: $textList count: " + result.size) + LogUtils.v("text: ${textList.joinToString()} count: " + result.size) if (result.size >= minSize) return result sleep(SHORT_INTERVAL) if (root) { @@ -446,7 +446,7 @@ object AccessibilityUtil { } currentTime = System.currentTimeMillis() } - Log.e(tag, "findAllByText: not found: $textList") + Log.e(tag, "findAllByText: not found: ${textList.joinToString()}") return arrayListOf() }