From 4684ebc927f2ac81feef23f108687bb6219ea7ca Mon Sep 17 00:00:00 2001 From: gallonyin Date: Fri, 6 Jan 2023 11:26:27 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E6=9F=A5=E6=89=BE?= =?UTF-8?q?=E6=97=A0=E6=8F=90=E7=A4=BA=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yameida/worktool/service/WeworkLoopImpl.kt | 18 +++++++++++++++++- .../worktool/utils/AccessibilityUtil.kt | 4 ++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/yameida/worktool/service/WeworkLoopImpl.kt b/app/src/main/java/org/yameida/worktool/service/WeworkLoopImpl.kt index f0b3b10..85ec81d 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkLoopImpl.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkLoopImpl.kt @@ -284,17 +284,33 @@ object WeworkLoopImpl { LogUtils.e("读取聊天列表失败") error("读取聊天列表失败") } - if (logIndex % 120 == 0) { + if (logIndex % 600 == 0) { //让企微切换页面使APP保持活跃 goHomeTab("通讯录") goHomeTab("消息") //滚动到顶端查看是否有无提示消息 AccessibilityUtil.scrollToTop(WeworkController.weworkService, getRoot()) + //如果有新消息则停止 + val list = AccessibilityUtil.findAllOnceByText(getRoot(), "消息", exact = true) + for (item in list) { + val childCount = item.parent?.parent?.parent?.childCount + if (childCount == 4 || childCount == 5) { + if (item.parent != null && item.parent.childCount > 1) { + return false + } + } + } + if (!mainLoopRunning) { + return false + } val listview = AccessibilityUtil.findOneByClazz(getRoot(), Views.RecyclerView, Views.ListView, Views.ViewGroup) if (listview != null && listview.childCount >= 2) { if (checkNoTipMessage(listview) != 1) { AccessibilityUtil.scrollToBottom(WeworkController.weworkService, getRoot(), listener = object : AccessibilityUtil.OnScrollListener() { override fun onScroll(): Boolean { + if (!mainLoopRunning) { + return true + } if (checkNoTipMessage(listview) != 0) { return true } 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 77ab256..7d03eef 100644 --- a/app/src/main/java/org/yameida/worktool/utils/AccessibilityUtil.kt +++ b/app/src/main/java/org/yameida/worktool/utils/AccessibilityUtil.kt @@ -239,6 +239,10 @@ object AccessibilityUtil { break } else { LogUtils.v("未滚动到底部 $index") + if (listener != null && listener.onScroll()) { + LogUtils.d("提前终止滚动") + return true + } } } return true