getEffectiveMessage function
返回消息当前应使用的有效内容对象。
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;
}