update 优化自动加入群聊;settings页自动跳转
This commit is contained in:
@@ -126,7 +126,7 @@ fun getRoot(ignoreCheck: Boolean): AccessibilityNodeInfo {
|
|||||||
WeworkController.weworkService.currentPackage = root.packageName?.toString() ?: ""
|
WeworkController.weworkService.currentPackage = root.packageName?.toString() ?: ""
|
||||||
if (System.currentTimeMillis() % 30 == 0L) {
|
if (System.currentTimeMillis() % 30 == 0L) {
|
||||||
error("当前不在企业微信: ${root.packageName}")
|
error("当前不在企业微信: ${root.packageName}")
|
||||||
if (!root.packageName.contains("(worktool)|(settings)".toRegex())) {
|
if (!root.packageName.contains("worktool")) {
|
||||||
if (!FloatWindowHelper.isPause) {
|
if (!FloatWindowHelper.isPause) {
|
||||||
ToastUtils.show("当前不在企业微信: ${root.packageName}\n尝试跳转到企业微信")
|
ToastUtils.show("当前不在企业微信: ${root.packageName}\n尝试跳转到企业微信")
|
||||||
Utils.getApp().packageManager.getLaunchIntentForPackage(Constant.PACKAGE_NAMES)
|
Utils.getApp().packageManager.getLaunchIntentForPackage(Constant.PACKAGE_NAMES)
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ object WeworkLoopImpl {
|
|||||||
for (i in 0 until list.childCount) {
|
for (i in 0 until list.childCount) {
|
||||||
val item = list.getChild(childCount - 1 - i)
|
val item = list.getChild(childCount - 1 - i)
|
||||||
if (item != null && item.childCount > 0) {
|
if (item != null && item.childCount > 0) {
|
||||||
messageList.add(parseChatMessageItem(item, titleList, roomType, false))
|
messageList.add(parseChatMessageItem(item, titleList, roomType))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -198,7 +198,7 @@ object WeworkLoopImpl {
|
|||||||
for (i in 0 until childCount) {
|
for (i in 0 until childCount) {
|
||||||
val item = list2.getChild(childCount - 1 - i)
|
val item = list2.getChild(childCount - 1 - i)
|
||||||
if (item != null && item.childCount > 0) {
|
if (item != null && item.childCount > 0) {
|
||||||
val chatMessageItem = parseChatMessageItem(item, titleList, roomType, imageCheck)
|
val chatMessageItem = parseChatMessageItem(item, titleList, roomType, imageCheck, lastParse = true)
|
||||||
if (chatMessageItem.imageRepeat == true) {
|
if (chatMessageItem.imageRepeat == true) {
|
||||||
chatMessageItem.imageRepeat = null
|
chatMessageItem.imageRepeat = null
|
||||||
imageCheck = false
|
imageCheck = false
|
||||||
@@ -215,7 +215,7 @@ object WeworkLoopImpl {
|
|||||||
for (i in 0 until list2.childCount) {
|
for (i in 0 until list2.childCount) {
|
||||||
val item = list2.getChild(childCount - 1 - i)
|
val item = list2.getChild(childCount - 1 - i)
|
||||||
if (item != null && item.childCount > 0) {
|
if (item != null && item.childCount > 0) {
|
||||||
val chatMessageItem = parseChatMessageItem(item, titleList, roomType, imageCheck)
|
val chatMessageItem = parseChatMessageItem(item, titleList, roomType, imageCheck, lastParse = true)
|
||||||
if (chatMessageItem.sender == 0 && chatMessageItem.textType == WeworkMessageBean.TEXT_TYPE_IMAGE) {
|
if (chatMessageItem.sender == 0 && chatMessageItem.textType == WeworkMessageBean.TEXT_TYPE_IMAGE) {
|
||||||
imageCheck = false
|
imageCheck = false
|
||||||
}
|
}
|
||||||
@@ -627,7 +627,8 @@ object WeworkLoopImpl {
|
|||||||
node: AccessibilityNodeInfo,
|
node: AccessibilityNodeInfo,
|
||||||
titleList: ArrayList<String>,
|
titleList: ArrayList<String>,
|
||||||
roomType: Int,
|
roomType: Int,
|
||||||
imageCheck: Boolean
|
imageCheck: Boolean = false,
|
||||||
|
lastParse: Boolean = false
|
||||||
): WeworkMessageBean.SubMessageBean {
|
): WeworkMessageBean.SubMessageBean {
|
||||||
val message: WeworkMessageBean.SubMessageBean
|
val message: WeworkMessageBean.SubMessageBean
|
||||||
val nameList = arrayListOf<String>()
|
val nameList = arrayListOf<String>()
|
||||||
@@ -671,14 +672,14 @@ object WeworkLoopImpl {
|
|||||||
}
|
}
|
||||||
if (textType == WeworkMessageBean.TEXT_TYPE_LINK) {
|
if (textType == WeworkMessageBean.TEXT_TYPE_LINK) {
|
||||||
val tempList = itemMessageList.filter { it.feature != 0 }
|
val tempList = itemMessageList.filter { it.feature != 0 }
|
||||||
if (tempList.size == 2 && tempList[0].text.contains("邀请你加入群聊")
|
if (lastParse && tempList.size == 2 && tempList[0].text.contains("邀请你加入群聊")
|
||||||
&& SPUtils.getInstance("groupInvite").getInt(tempList[1].text, 0) == 0) {
|
&& SPUtils.getInstance("groupInvite").getInt(tempList[1].text, 0) == 0) {
|
||||||
LogUtils.d("邀请你加入群聊: ${tempList[1].text}")
|
LogUtils.d("邀请你加入群聊: ${tempList[1].text}")
|
||||||
AccessibilityUtil.performClickWithSon(relativeLayoutContent)
|
AccessibilityUtil.performClickWithSon(relativeLayoutContent)
|
||||||
if (AccessibilityExtraUtil.loadingPage("JsWebActivity")) {
|
if (AccessibilityExtraUtil.loadingPage("JsWebActivity")) {
|
||||||
val tvButton = AccessibilityUtil.findOneByText(getRoot(), "我知道了", "加入群聊", "你已接受过此邀请,无法再次加入", exact = true)
|
val tvButton = AccessibilityUtil.findOneByText(getRoot(), "我知道了", "加入群聊", "你已接受过此邀请,无法再次加入", "你已接受邀请", exact = true)
|
||||||
val text = tvButton?.text?.toString()
|
val text = tvButton?.text?.toString()
|
||||||
if (text == "我知道了" || text == "你已接受过此邀请,无法再次加入") {
|
if (text == "我知道了" || text?.startsWith("你已接受") == true) {
|
||||||
backPress()
|
backPress()
|
||||||
SPUtils.getInstance("groupInvite").put(tempList[1].text, 1)
|
SPUtils.getInstance("groupInvite").put(tempList[1].text, 1)
|
||||||
error("加入群聊失败: ${tempList[1].text}")
|
error("加入群聊失败: ${tempList[1].text}")
|
||||||
@@ -687,9 +688,11 @@ object WeworkLoopImpl {
|
|||||||
SPUtils.getInstance("groupInvite").put(tempList[1].text, 1)
|
SPUtils.getInstance("groupInvite").put(tempList[1].text, 1)
|
||||||
LogUtils.d("加入群聊: ${tempList[1].text}")
|
LogUtils.d("加入群聊: ${tempList[1].text}")
|
||||||
log("加入群聊: ${tempList[1].text}")
|
log("加入群聊: ${tempList[1].text}")
|
||||||
|
//该房间的信息读取任务会被强制中断并跳转到新房间且返回无效
|
||||||
} else {
|
} else {
|
||||||
LogUtils.e("加入群聊异常: ${tempList[1].text}")
|
LogUtils.e("加入群聊异常: ${tempList[1].text}")
|
||||||
error("加入群聊异常: ${tempList[1].text}")
|
error("加入群聊异常: ${tempList[1].text}")
|
||||||
|
backPress()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -972,8 +972,7 @@ object WeworkOperationImpl {
|
|||||||
val parseChatMessageItem = WeworkLoopImpl.parseChatMessageItem(
|
val parseChatMessageItem = WeworkLoopImpl.parseChatMessageItem(
|
||||||
item,
|
item,
|
||||||
titleList,
|
titleList,
|
||||||
WeworkMessageBean.ROOM_TYPE_EXTERNAL_GROUP,
|
WeworkMessageBean.ROOM_TYPE_EXTERNAL_GROUP
|
||||||
false
|
|
||||||
)
|
)
|
||||||
if (parseChatMessageItem.itemMessageList.find { it.feature == 2 && it.text?.toString() == startTime.toString() } != null) {
|
if (parseChatMessageItem.itemMessageList.find { it.feature == 2 && it.text?.toString() == startTime.toString() } != null) {
|
||||||
start = true
|
start = true
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ class WeworkService : AccessibilityService() {
|
|||||||
currentPackage = event.packageName?.toString() ?: ""
|
currentPackage = event.packageName?.toString() ?: ""
|
||||||
val className = event.className?.toString() ?: ""
|
val className = event.className?.toString() ?: ""
|
||||||
if (className.contains(currentPackage)) {
|
if (className.contains(currentPackage)) {
|
||||||
|
LogUtils.d("更新当前页面: currentPackage: ${event.packageName} className: ${event.className}")
|
||||||
currentClass = className
|
currentClass = className
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public class WebSocketManager {
|
|||||||
private static final ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
|
private static final ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
|
||||||
public static Map<String, WebSocketManager> webSocketManager = new ConcurrentHashMap<>();
|
public static Map<String, WebSocketManager> webSocketManager = new ConcurrentHashMap<>();
|
||||||
private static final int reconnectInt = 5000; //毫秒
|
private static final int reconnectInt = 5000; //毫秒
|
||||||
private static final long heartBeatRate = 10; //秒
|
private static final long heartBeatRate = 5; //秒
|
||||||
private Map<String, Long> messageIdMap = new ConcurrentHashMap<>();
|
private Map<String, Long> messageIdMap = new ConcurrentHashMap<>();
|
||||||
private ScheduledFuture task;
|
private ScheduledFuture task;
|
||||||
private WebSocket socket;
|
private WebSocket socket;
|
||||||
|
|||||||
Reference in New Issue
Block a user