update 可选不去重指令模式

This commit is contained in:
gallonyin
2023-09-04 00:34:14 +08:00
parent 42a80f2413
commit 8dcb91b5d7
2 changed files with 10 additions and 2 deletions

View File

@@ -104,6 +104,11 @@ object Constant {
var oldDevice: Boolean
get() = SPUtils.getInstance().getBoolean("oldDevice", false)
set(value) = SPUtils.getInstance().put("oldDevice", value)
var duplicationFilter: Boolean
get() = SPUtils.getInstance().getBoolean("apiDuplicationFilter", true)
set(value) {
SPUtils.getInstance().put("apiDuplicationFilter", value)
}
fun getWsUrl() = "$host/webserver/wework/$robotId"

View File

@@ -100,15 +100,18 @@ object MyLooper {
object : TypeToken<ArrayList<WeworkMessageBean>>() {}.type
)
}
val list = if (Constant.duplicationFilter) LinkedHashSet(messageList.list).toList() else messageList.list
//去重处理 丢弃之前的重复指令 丢弃之前的获取新消息指令
for (message in LinkedHashSet(messageList.list)) {
for (message in list) {
if (message.type == WeworkMessageBean.LOOP_RECEIVE_NEW_MESSAGE) {
WeworkController.enableLoopRunning = true
} else {
WeworkController.mainLoopRunning = false
LogUtils.v("加入指令到执行队列", if (message.fileBase64.isNullOrEmpty()) GsonUtils.toJson(message) else message.type)
val messageWhat = message.type * message.hashCode() / 1000 + text.length
if (Constant.duplicationFilter) {
getInstance().removeMessages(messageWhat)
}
getInstance().sendMessage(Message.obtain().apply {
what = messageWhat
obj = message.apply {