From 5c96fdd1fa762ae9f49efceac096f446320e9a24 Mon Sep 17 00:00:00 2001 From: gallonyin Date: Sat, 26 Aug 2023 19:42:13 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E5=A5=BD=E5=8F=8B?= =?UTF-8?q?=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/yameida/worktool/Constant.kt | 4 ++- .../worktool/activity/ListenActivity.kt | 2 ++ .../worktool/service/WeworkOperationImpl.kt | 36 ++++++++++--------- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/org/yameida/worktool/Constant.kt b/app/src/main/java/org/yameida/worktool/Constant.kt index 9596cc7..a505034 100644 --- a/app/src/main/java/org/yameida/worktool/Constant.kt +++ b/app/src/main/java/org/yameida/worktool/Constant.kt @@ -4,7 +4,8 @@ import com.blankj.utilcode.util.SPUtils object Constant { - val AVAILABLE_VERSION = arrayListOf("4.0.2", "4.0.6", "4.0.8", "4.0.10", "4.0.12", "4.0.16", "4.0.18", "4.0.19", "4.0.20", "4.1.0", "4.1.2", "4.1.3", "4.1.6", "4.1.7") + val AVAILABLE_VERSION = arrayListOf("4.0.2", "4.0.6", "4.0.8", "4.0.10", "4.0.12", "4.0.16", "4.0.18", "4.0.19", "4.0.20", "4.1.0", "4.1.2", "4.1.3", "4.1.6", "4.1.7", "4.1.8", "4.1.9") + val AVAILABLE_VERSION_MAP = mapOf(Pair("4.0.2", 40002), Pair("4.0.6", 40006), Pair("4.0.8", 40008), Pair("4.0.10", 40010), Pair("4.0.12", 40012), Pair("4.0.16", 40016), Pair("4.0.18", 40018), Pair("4.0.19", 40019), Pair("4.0.20", 40020), Pair("4.1.0", 40100), Pair("4.1.2", 40102), Pair("4.1.3", 40103), Pair("4.1.6", 40106), Pair("4.1.7", 40107), Pair("4.1.8", 40108), Pair("4.1.9", 40109)) const val PACKAGE_NAMES = "com.tencent.wework" const val WEWORK_NOTIFY = "wework_notify" const val BASE_LONG_INTERVAL = 5000L @@ -15,6 +16,7 @@ object Constant { var POP_WINDOW_INTERVAL = BASE_POP_WINDOW_INTERVAL private const val DEFAULT_HOST = "wss://worktool.asrtts.cn" + var version = Int.MAX_VALUE var myName = "" // var regTrimTitle = "(…$)|(-.*$)|(\\(.*?\\)$)".toRegex() var regMail = "\\S+@\\S+\\.\\S+".toRegex() diff --git a/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt b/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt index 327fcab..65fe7c4 100644 --- a/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt +++ b/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt @@ -114,6 +114,7 @@ class ListenActivity : AppCompatActivity() { LogUtils.i("当前企业微信版本已适配: $workVersionName") val tip = "$workVersionName 已适配,可放心使用~" tv_work_version.text = tip + Constant.version = Constant.AVAILABLE_VERSION_MAP[workVersionName] ?: Int.MAX_VALUE } else -> { LogUtils.e("当前企业微信版本未兼容: $workVersionName") @@ -121,6 +122,7 @@ class ListenActivity : AppCompatActivity() { tv_work_version.text = tip } } + LogUtils.i("Constant.version: ${Constant.version}") SPUtils.getInstance().put("appVersion", version) SPUtils.getInstance().put("workVersion", workVersionName) SPUtils.getInstance().put("deviceRooted", deviceRooted) 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 752c398..8be0dfd 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt @@ -2751,15 +2751,10 @@ object WeworkOperationImpl { return true } //添加联系人 - val imageView = - AccessibilityUtil.findOneByClazz(getRoot(), Views.ImageView) + val imageView = AccessibilityUtil.findOneByClazz(getRoot(), Views.ImageView) if (imageView != null) { - val textViewList = AccessibilityUtil.findAllOnceByClazz( - imageView.parent, - Views.TextView - ) - val filter = - textViewList.filter { it.text != null && it.text.toString() != "微信" } + val textViewList = AccessibilityUtil.findAllOnceByClazz(imageView.parent, Views.TextView) + val filter = textViewList.filter { it.text != null && it.text.toString() != "微信" } if (filter.isNotEmpty()) { val tvNick = filter[0] LogUtils.d("好友昵称或备注名: ${tvNick.text}") @@ -2800,14 +2795,20 @@ object WeworkOperationImpl { //不存在的标签先添加 for (tag in tagList) { if (!oldTagList.contains(tag)) { - AccessibilityUtil.findOneByText(getRoot(), "个人标签") - sleep(Constant.POP_WINDOW_INTERVAL) - val tempList = AccessibilityUtil.findBackNode( - AccessibilityUtil.findAllByText(getRoot(), "个人标签").lastOrNull()) - if (tempList != null && tempList.childCount > 0) { - AccessibilityUtil.performClick(tempList.getChild(0)) + if (Constant.version >= 40108) { + AccessibilityUtil.findTextAndClick(getRoot(), "    十    ") AccessibilityUtil.findTextInput(getRoot(), tag) AccessibilityUtil.findTextAndClick(getRoot(), "确定") + } else { + AccessibilityUtil.findOneByText(getRoot(), "个人标签") + sleep(Constant.POP_WINDOW_INTERVAL) + val tempList = AccessibilityUtil.findBackNode( + AccessibilityUtil.findAllByText(getRoot(), "个人标签").lastOrNull()) + if (tempList != null && tempList.childCount > 0) { + AccessibilityUtil.performClick(tempList.getChild(0)) + AccessibilityUtil.findTextInput(getRoot(), tag) + AccessibilityUtil.findTextAndClick(getRoot(), "确定") + } } } } @@ -2831,13 +2832,14 @@ object WeworkOperationImpl { } list.refresh() } - if (AccessibilityUtil.findTextAndClick(getRoot(), "确定")) { + if (AccessibilityUtil.findTextAndClick(getRoot(), "确定", "保存", exact = true)) { sleep(Constant.POP_WINDOW_INTERVAL) //可能有两次确定 另一次为添加新tag - val textNode = AccessibilityUtil.findOneByText(getRoot(), "确定", "个人信息") - if (textNode?.text?.toString() == "确定") { + val textNode = AccessibilityUtil.findOneByText(getRoot(), "确定", "保存", "个人信息", exact = true) + if (textNode?.text?.toString() in arrayOf("确定", "保存")) { AccessibilityUtil.performClick(textNode) } + LogUtils.d("设置标签完成") return true } }