From b35120a6e31a49c9712f4320e72d23b1f81aee52 Mon Sep 17 00:00:00 2001 From: gallonyin Date: Tue, 14 Mar 2023 00:21:59 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=AE=9E=E5=90=8D=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/yameida/worktool/service/MyLooper.kt | 1 + .../yameida/worktool/service/WeworkGetImpl.kt | 42 +++++++++++++++++-- .../worktool/service/WeworkLoopImpl.kt | 23 +++++++++- .../worktool/utils/envcheck/CheckRoot.java | 5 +++ 4 files changed, 66 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/yameida/worktool/service/MyLooper.kt b/app/src/main/java/org/yameida/worktool/service/MyLooper.kt index 7f5498d..b8ab56f 100644 --- a/app/src/main/java/org/yameida/worktool/service/MyLooper.kt +++ b/app/src/main/java/org/yameida/worktool/service/MyLooper.kt @@ -56,6 +56,7 @@ object MyLooper { SPUtils.getInstance("limit").clear() SPUtils.getInstance("groupInvite").clear() SPUtils.getInstance("lastImage").clear() + SPUtils.getInstance("myInfo").clear() } fun getInstance(): Handler { diff --git a/app/src/main/java/org/yameida/worktool/service/WeworkGetImpl.kt b/app/src/main/java/org/yameida/worktool/service/WeworkGetImpl.kt index 3396505..d3880f5 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkGetImpl.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkGetImpl.kt @@ -2,13 +2,11 @@ package org.yameida.worktool.service import com.blankj.utilcode.util.GsonUtils import com.blankj.utilcode.util.LogUtils +import com.blankj.utilcode.util.SPUtils import org.yameida.worktool.Constant import org.yameida.worktool.model.ExecCallbackBean import org.yameida.worktool.model.WeworkMessageBean -import org.yameida.worktool.utils.AccessibilityExtraUtil -import org.yameida.worktool.utils.AccessibilityUtil -import org.yameida.worktool.utils.Views -import org.yameida.worktool.utils.WeworkRoomUtil +import org.yameida.worktool.utils.* import java.lang.StringBuilder /** @@ -177,6 +175,14 @@ object WeworkGetImpl { LogUtils.v("corp", corp) LogUtils.v("info", info.toString()) } + if (tvList.size > 1) { + if (!SPUtils.getInstance("myInfo").getBoolean("realName", false)) { + AccessibilityUtil.performClick(tvList[1]) + getRealName(nickname) + } else { + LogUtils.d("已实名认证") + } + } } } Constant.myName = nickname @@ -232,6 +238,11 @@ object WeworkGetImpl { } } } + if (!SPUtils.getInstance("myInfo").getBoolean("realName", false)) { + getRealName(myInfo.name) + } else { + LogUtils.d("已实名认证") + } LogUtils.d("我的信息", GsonUtils.toJson(myInfo)) val weworkMessageBean = WeworkMessageBean() weworkMessageBean.type = WeworkMessageBean.GET_MY_INFO @@ -412,4 +423,27 @@ object WeworkGetImpl { return false } } + + /** + * 获取实名状态 + */ + private fun getRealName(nickname: String) { + if (AccessibilityExtraUtil.loadingPage("SettingMineInfoActivity")) { + if (AccessibilityUtil.findTextAndClick(getRoot(), "姓名", exact = true)) { + val realNameFlag = AccessibilityUtil.findOneByText(getRoot(), "实名认证", exact = true) + if (realNameFlag != null) { + val notRealName = AccessibilityUtil.findOnceByText(getRoot(), "未认证") + val realName = AccessibilityUtil.findOnceByClazz(AccessibilityUtil.findBackNode(realNameFlag, 1), Views.TextView) + if (notRealName != null) { + LogUtils.d("未实名认证: $nickname") + error("未实名认证: $nickname") + } else if (realName != null) { + LogUtils.d("实名认证: ${realName.text}") + log("实名认证: ${realName.text}") + SPUtils.getInstance("myInfo").put("realName", true) + } + } + } + } + } } \ No newline at end of file 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 35b64d4..a37ad9a 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkLoopImpl.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkLoopImpl.kt @@ -4,13 +4,16 @@ import android.os.Message import android.view.accessibility.AccessibilityNodeInfo import androidx.core.text.isDigitsOnly import com.blankj.utilcode.util.* +import com.hjq.toast.ToastUtils import org.yameida.worktool.Constant import org.yameida.worktool.Demo +import org.yameida.worktool.MyApplication import org.yameida.worktool.activity.GetScreenShotActivity import org.yameida.worktool.model.WeworkMessageBean import org.yameida.worktool.observer.MultiFileObserver import org.yameida.worktool.service.WeworkController.mainLoopRunning import org.yameida.worktool.utils.* +import org.yameida.worktool.utils.envcheck.CheckRoot import java.io.File import java.lang.Exception import java.lang.StringBuilder @@ -45,6 +48,9 @@ object WeworkLoopImpl { getChatroomList() if (!mainLoopRunning) break getFriendRequest() + if (!mainLoopRunning) break + checkRealName() + if (!mainLoopRunning) break sleep(300) } } catch (e: Exception) { @@ -59,10 +65,25 @@ object WeworkLoopImpl { } } + /** + * 检查账号是否已实名 + */ + private fun checkRealName(): Boolean { + if (!SPUtils.getInstance("myInfo").getBoolean("realName", false) + && CheckRoot.isDeviceRooted()) { + LogUtils.e("账号实名前请先关闭WorkTool主功能!") + ToastUtils.show("账号实名前请先关闭WorkTool主功能!") + MyApplication.launchIntent() + sleep(5000) + return false + } + return true + } + /** * 读取通讯录好友请求 */ - fun getFriendRequest(): Boolean { + private fun getFriendRequest(): Boolean { val list = AccessibilityUtil.findAllOnceByText(getRoot(), "通讯录", exact = true) for (item in list) { val childCount = item.parent?.parent?.parent?.childCount diff --git a/app/src/main/java/org/yameida/worktool/utils/envcheck/CheckRoot.java b/app/src/main/java/org/yameida/worktool/utils/envcheck/CheckRoot.java index b87a097..b74c3d4 100644 --- a/app/src/main/java/org/yameida/worktool/utils/envcheck/CheckRoot.java +++ b/app/src/main/java/org/yameida/worktool/utils/envcheck/CheckRoot.java @@ -18,19 +18,24 @@ public class CheckRoot { public static boolean isDeviceRooted() { if (checkDeviceDebuggable()) { + Log.i(LOG_TAG, "isDeviceRooted: checkDeviceDebuggable()"); return true; } if (checkSuperuserApk()) { + Log.i(LOG_TAG, "isDeviceRooted: checkSuperuserApk()"); return true; } if (checkRootPathSU()) { + Log.i(LOG_TAG, "isDeviceRooted: checkRootPathSU()"); return true; } if (checkRootWhichSU()) { + Log.i(LOG_TAG, "isDeviceRooted: checkRootWhichSU()"); return true; } if (checkAccessRootData()) { + Log.i(LOG_TAG, "isDeviceRooted: checkAccessRootData()"); return true; } return false;