CubeMessage.fromStanza constructor
CubeMessage.fromStanza(
- MessageStanza stanza
Implementation
CubeMessage.fromStanza(MessageStanza stanza) {
body = stanza.body;
XmppElement? stanzaExtraParams =
stanza.getChild(ExtraParamsElement.ELEMENT_NAME);
if (stanzaExtraParams != null) {
ExtraParamsElement extraParams =
ExtraParamsElement.fromStanza(stanzaExtraParams);
properties = extraParams.getParams();
dialogId = properties['dialog_id'];
var dateSentRaw = properties['date_sent'];
if (dateSentRaw != null) {
try {
dateSent = int.parse(dateSentRaw);
} catch (e) {
dateSent = double.parse(dateSentRaw).toInt();
}
}
attachments = extraParams.getAttachments();
}
String? packetId = stanza.id;
if (packetId != null) {
messageId =
ObjectId.isValid(packetId) ? packetId : properties['message_id'];
} else {
messageId = properties['message_id'];
}
markable = stanza.getChild('markable') != null;
XmppElement? destroyElement =
stanza.getChild(SelfDestroyElement.ELEMENT_NAME);
if (destroyElement != null) {
destroyAfter = SelfDestroyElement.fromStanza(destroyElement).after;
}
Jid? senderJid = stanza.fromJid;
if (senderJid != null) {
if (MessageStanzaType.CHAT == stanza.type) {
senderId = getUserIdFromJid(senderJid);
} else if (MessageStanzaType.GROUPCHAT == stanza.type) {
senderId = getUserIdFromGroupChatJid(senderJid);
} else if (MessageStanzaType.HEADLINE == stanza.type) {
senderId = getUserIdFromJid(senderJid);
}
}
Jid? receiverJid = stanza.toJid;
if (receiverJid != null) {
recipientId = getUserIdFromJid(receiverJid);
}
}