wildfire-im-sdk
Version:
野火IM SDK for Vue3 projects
56 lines (47 loc) • 1.52 kB
JavaScript
/*
* Copyright (c) 2020 WildFireChat. All rights reserved.
*/
import MessageContent from '../../messages/messageContent';
import wfc from "../../client/wfc"
import {_patchToJavaLong, _reverseToJsLongString, longValue, stringValue} from '../../util/longUtil'
import MessageContentType from '../../messages/messageContentType';
export default class CallAnswerMessageContent extends MessageContent {
callId;
audioOnly;
inviteMessageUid;
constructor(mentionedType = 0, mentionedTargets = []) {
super(MessageContentType.VOIP_CONTENT_TYPE_ACCEPT, mentionedType, mentionedTargets);
}
digest() {
return '';
}
encode() {
let payload = super.encode();
payload.content = this.callId;
var obj;
if (this.audioOnly) {
obj = '1';
} else {
obj = '0';
}
payload.binaryContent = wfc.utf8_to_b64(obj);
let obj2 = {
u: stringValue(this.inviteMessageUid),
}
let str = JSON.stringify(obj2);
str = _patchToJavaLong(str, 'u');
payload.extra = str;
return payload;
}
decode(payload) {
super.decode(payload);
this.callId = payload.content;
let str = wfc.b64_to_utf8(payload.binaryContent);
this.audioOnly = (str === '1');
str = payload.extra;
if (str) {
str = _reverseToJsLongString(str, 'u');
this.inviteMessageUid = longValue(JSON.parse(str).u);
}
}
}