diff --git a/src/store.js b/src/store.js index ee1eaee7..46a2f90e 100644 --- a/src/store.js +++ b/src/store.js @@ -43,6 +43,8 @@ import NullChannelInfo from "./wfc/model/NullChannelInfo"; import ModifyGroupSettingNotification from "./wfc/messages/notification/modifyGroupSettingNotification"; import {storeToRefs} from 'pinia' import {pstore} from './pstore' +import CallStartMessageContent from "./wfc/av/messages/callStartMessageContent"; +import SoundMessageContent from "./wfc/messages/soundMessageContent"; /** * 一些说明 @@ -182,13 +184,13 @@ let store = { if (miscState.isMainWindow && !this.isConversationInCurrentWindow(msg.conversation)) { return; } - if (msg.messageContent instanceof DismissGroupNotification - || (msg.messageContent instanceof KickoffGroupMemberNotification && msg.messageContent.kickedMembers.indexOf(wfc.getUserId()) >= 0) - || (msg.messageContent instanceof QuitGroupNotification && msg.messageContent.operator === wfc.getUserId()) - ) { - this.setCurrentConversationInfo(null); - return; - } + if (msg.messageContent instanceof DismissGroupNotification + || (msg.messageContent instanceof KickoffGroupMemberNotification && msg.messageContent.kickedMembers.indexOf(wfc.getUserId()) >= 0) + || (msg.messageContent instanceof QuitGroupNotification && msg.messageContent.operator === wfc.getUserId()) + ) { + this.setCurrentConversationInfo(null); + return; + } if (!hasMore) { this._reloadConversation(msg.conversation) } @@ -837,6 +839,7 @@ let store = { }) } else { + message.messageContent = this._filterFowardMessageContent(message) wfc.sendConversationMessage(conversation, message.messageContent); } }); @@ -2136,6 +2139,15 @@ let store = { }) }, + _filterFowardMessageContent(message) { + let content = message.messageContent + if (content instanceof CallStartMessageContent) { + content = new TextMessageContent(content.digest(message)) + } else if (content instanceof SoundMessageContent) { + content = new TextMessageContent(content.digest(message) + ' ' + content.duration + "''"); + } + return content + } } diff --git a/src/ui/main/conversation/ConversationView.vue b/src/ui/main/conversation/ConversationView.vue index 94f019b5..af2c9d8e 100644 --- a/src/ui/main/conversation/ConversationView.vue +++ b/src/ui/main/conversation/ConversationView.vue @@ -151,7 +151,7 @@
  • {{ $t('common.quote') }}
  • -
  • +
  • {{ $t('common.multi_select') }}
  • @@ -229,6 +229,7 @@ import {imageThumbnail} from "../../util/imageUtil"; import GroupInfo from "../../../wfc/model/groupInfo"; import {vOnClickOutside} from '@vueuse/components' import WfcUtil from "../../../wfc/util/wfcUtil"; +import CallStartMessageContent from "../../../wfc/av/messages/callStartMessageContent"; var amr; export default { @@ -517,7 +518,8 @@ export default { }, isForwardable(message) { - if (message && message.messageContent instanceof SoundMessageContent) { + if (message + && ((message.messageContent instanceof SoundMessageContent) || (message.messageContent instanceof CallStartMessageContent))) { return false; } return true; @@ -578,7 +580,14 @@ export default { MessageContentType.Video, MessageContentType.Composite_Message, MessageContentType.Articles, - MessageContentType.CONFERENCE_CONTENT_TYPE_INVITE].indexOf(message.messageContent.type) <= -1; + MessageContentType.CONFERENCE_CONTENT_TYPE_INVITE].indexOf(message.messageContent.type) === -1; + }, + + isMulticheckable(message) { + if (!message) { + return false; + } + return [MessageContentType.Voice, MessageContentType.VOIP_CONTENT_TYPE_START].indexOf(message.messageContent.type) === -1; }, copy(message) {