protected internal virtual void SendEmoticonDefinitions(Contact remoteContact, List<Emoticon> emoticons, EmoticonType icontype) { EmoticonMessage emoticonMessage = new EmoticonMessage(emoticons, icontype); string to = ((int)remoteContact.ClientType).ToString() + ":" + remoteContact.Account; string from = ((int)Owner.ClientType).ToString() + ":" + Owner.Account; MultiMimeMessage mmMessage = new MultiMimeMessage(to, from); mmMessage.RoutingHeaders[MIMERoutingHeaders.From][MIMERoutingHeaders.EPID] = MachineGuid.ToString("B").ToLowerInvariant(); mmMessage.ContentKeyVersion = "2.0"; mmMessage.ContentHeaders[MIMEContentHeaders.MessageType] = MessageTypes.CustomEmoticon; mmMessage.ContentHeaders[MIMEContentHeaders.ContentType] = icontype == EmoticonType.AnimEmoticon ? "text/x-mms-animemoticon" : "text/x-mms-emoticon"; mmMessage.InnerBody = emoticonMessage.GetBytes(); NSMessage sdgPayload = new NSMessage("SDG"); sdgPayload.InnerMessage = mmMessage; MessageProcessor.SendMessage(sdgPayload); }
private MultiMimeMessage ParseSDGCustomEmoticonMessage(MultiMimeMessage multiMimeMessage) { EmoticonMessage emoticonMessage = new EmoticonMessage(); emoticonMessage.CreateFromParentMessage(multiMimeMessage); emoticonMessage.EmoticonType = multiMimeMessage.ContentHeaders[MIMEContentHeaders.ContentType] == "text/x-mms-animemoticon" ? EmoticonType.AnimEmoticon : EmoticonType.StaticEmoticon; return multiMimeMessage; }