update 删除联系人

This commit is contained in:
gallonyin
2023-08-01 00:28:14 +08:00
parent d4296dba9a
commit 58209d4961
4 changed files with 77 additions and 2 deletions

View File

@@ -44,6 +44,8 @@ public class WeworkMessageBean {
* 合并转发 RELAY_MERGE_MESSAGE
* 批量发送 SEND_MULTI_MESSAGE
* 合并发送 SEND_MERGE_MESSAGE
* 扫一扫 SCAN_QR_CODE
* 删除联系人 DELETE_CONTACT
* <p>
* 非操作类型 300
* 机器人普通日志记录 ROBOT_LOG
@@ -97,6 +99,7 @@ public class WeworkMessageBean {
public static final int VOICE_CALL = 231;
public static final int VIDEO_CALL = 232;
public static final int SCAN_QR_CODE = 233;
public static final int DELETE_CONTACT = 234;
public static final int ROBOT_LOG = 301;
public static final int ROBOT_ERROR_LOG = 302;

View File

@@ -193,6 +193,9 @@ object MyLooper {
WeworkMessageBean.SCAN_QR_CODE -> {
WeworkController.scanQrCode(message)
}
WeworkMessageBean.DELETE_CONTACT -> {
WeworkController.deleteContact(message)
}
WeworkMessageBean.DISMISS_GROUP -> {
WeworkController.dismissGroup(message)
}

View File

@@ -529,6 +529,17 @@ object WeworkController {
)
}
/**
* 删除联系人
* @see WeworkMessageBean.DELETE_CONTACT
* @param message#friend 待删除用户
*/
@RequestMapping
fun deleteContact(message: WeworkMessageBean): Boolean {
LogUtils.d("deleteContact(): ${message.friend}")
return WeworkOperationImpl.deleteContact(message, message.friend)
}
/**
* 获取群信息
* @see WeworkMessageBean.GET_GROUP_INFO

View File

@@ -1776,6 +1776,61 @@ object WeworkOperationImpl {
}
}
/**
* 删除联系人
* @see WeworkMessageBean.DELETE_CONTACT
* @param friend 待删除用户
*/
fun deleteContact(message: WeworkMessageBean, friend: WeworkMessageBean.Friend): Boolean {
val startTime = System.currentTimeMillis()
if (friend.phone == null && friend.name != null) {
if (getFriendInfo(friend.name) && AccessibilityExtraUtil.loadingPage("ContactDetailBaseContentActivity")) {
val imageView = AccessibilityUtil.findOneByClazz(getRoot(), Views.ImageView)
val frontNode = AccessibilityUtil.findFrontNode(imageView?.parent)
val textViewList = AccessibilityUtil.findAllOnceByClazz(frontNode, Views.TextView)
if (textViewList.size >= 2) {
val multiButton: AccessibilityNodeInfo = textViewList[textViewList.size - 1]
AccessibilityUtil.performClick(multiButton)
if (AccessibilityExtraUtil.loadingPage("ContactDetailSettingActivity")) {
val tvDelete = AccessibilityUtil.scrollAndFindByText(WeworkController.weworkService, getRoot(), "删除", exact = true)
if (tvDelete != null) {
AccessibilityUtil.performClick(tvDelete)
if (AccessibilityUtil.findTextAndClick(getRoot(), "确认删除", exact = true)) {
LogUtils.d("删除联系人成功: ${friend.name}")
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, listOf(friend.name), listOf())
return true
} else {
LogUtils.e("未找到确认删除按钮: ${friend.name}")
uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "未找到确认删除按钮: ${friend.name}", startTime, listOf(), listOf(friend.name))
return false
}
} else {
LogUtils.e("未找到删除按钮: ${friend.name}")
uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "未找到删除按钮: ${friend.name}", startTime, listOf(), listOf(friend.name))
return false
}
} else {
LogUtils.e("进入个人信息详情页失败: ${friend.name}")
uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "进入个人信息详情页失败: ${friend.name}", startTime, listOf(), listOf(friend.name))
return false
}
} else {
LogUtils.e("未找到更多按钮: ${friend.name}")
uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "未找到更多按钮: ${friend.name}", startTime, listOf(), listOf(friend.name))
return false
}
} else {
LogUtils.e("未找到用户: ${friend.name}")
uploadCommandResult(message, ExecCallbackBean.ERROR_TARGET, "未找到用户: ${friend.name}", startTime, listOf(), listOf(friend.name))
return false
}
} else {
LogUtils.e("数据异常: ${friend.name}")
uploadCommandResult(message, ExecCallbackBean.ERROR_ILLEGAL_DATA, "数据异常: ${friend.name}", startTime, listOf(), listOf(friend.name))
return false
}
}
/**
* 展示群信息
* @see WeworkMessageBean.SHOW_GROUP_INFO
@@ -2525,6 +2580,7 @@ object WeworkOperationImpl {
timeout = 2000,
root = false
)
var isSelect = false
if (selectListView != null && matchSelect != null) {
for (i in 0 until selectListView.childCount) {
val item = selectListView.getChild(i)
@@ -2534,12 +2590,14 @@ object WeworkOperationImpl {
item.refresh()
val imageView =
AccessibilityUtil.findOneByClazz(item, Views.ImageView, root = false)
AccessibilityUtil.performClick(imageView)
AccessibilityUtil.clickByNode(WeworkController.weworkService, imageView)
LogUtils.d("选择联系人")
isSelect = true
break
}
}
}
if (matchSelect != null) {
if (isSelect) {
LogUtils.d("找到搜索结果: $title")
return true
} else {