diff --git a/app/src/main/java/org/yameida/worktool/service/WeworkController.kt b/app/src/main/java/org/yameida/worktool/service/WeworkController.kt index 89eeb78..b17f456 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkController.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkController.kt @@ -67,8 +67,10 @@ object WeworkController { @RequestMapping fun sendMessage(message: WeworkMessageBean): Boolean { LogUtils.d("REQUEST sendMessage(): ${message.messageId} ${message.titleList} ${message.receivedContent} ${message.at} ${message.atList?.joinToString()}") - // 如果有待引用消息,自动使用引用回复 - val result = if (!lastReceivedMessage.isNullOrBlank() && !lastReceivedName.isNullOrBlank()) { + // 如果有待引用消息且有回复内容,才使用引用回复 + val result = if (!lastReceivedMessage.isNullOrBlank() + && !lastReceivedName.isNullOrBlank() + && !message.receivedContent.isNullOrBlank()) { LogUtils.d("使用引用回复: ${lastReceivedName} -> $lastReceivedMessage") val replyResult = WeworkOperationImpl.replyMessage( message, 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 ed4a8b5..6cb1d87 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkLoopImpl.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkLoopImpl.kt @@ -354,12 +354,14 @@ object WeworkLoopImpl { WeworkController.weworkService.webSocketManager.send(messageBean) // 保存最后收到的消息内容,用于回复时引用 val lastMsg = messageList.lastOrNull() - if (lastMsg != null && lastMsg.sender == 0) { - val msgContent = lastMsg.itemMessageList.lastOrNull()?.text ?: "" - val senderName = lastMsg.nameList.firstOrNull() ?: "" - WeworkController.lastReceivedMessage = msgContent - WeworkController.lastReceivedName = senderName - LogUtils.d("保存最后消息用于引用: $senderName: $msgContent") + if (lastMsg != null && lastMsg.sender == 0 && lastMsg.itemMessageList != null) { + val msgContent = lastMsg.itemMessageList.lastOrNull()?.text?.takeIf { it.isNotBlank() } ?: "" + val senderName = lastMsg.nameList?.firstOrNull()?.takeIf { it.isNotBlank() } ?: "" + if (msgContent.isNotBlank() && senderName.isNotBlank()) { + WeworkController.lastReceivedMessage = msgContent + WeworkController.lastReceivedName = senderName + LogUtils.d("保存最后消息用于引用: $senderName: $msgContent") + } } //推测是否回复并在房间等待指令 if (needInfer) {