getEffectiveMessage function

RCIMIWMessage getEffectiveMessage(
  1. RCIMIWMessage message
)

返回消息当前应使用的有效内容对象。

Wrapper 5.44.0 的修改成功事件可能保留顶层原消息正文,并仅在 modifyInfo.content 中提供新正文。更新中和失败态仍使用原消息,只有 成功态且内容类型一致时才切换到修改后的消息对象。

Implementation

RCIMIWMessage getEffectiveMessage(RCIMIWMessage message) {
  final modifyInfo = message.modifyInfo;
  final content = modifyInfo?.content;
  if (message.hasChanged != true ||
      modifyInfo?.status != RCIMIWMessageModifyStatus.success ||
      content == null) {
    return message;
  }
  if (message is RCIMIWTextMessage && content is RCIMIWTextMessage) {
    _restoreMessageEnvelope(content, message);
    return content;
  }
  if (message is RCIMIWReferenceMessage && content is RCIMIWReferenceMessage) {
    _restoreMessageEnvelope(content, message);
    return content;
  }
  return message;
}