private TextSecureSyncMessage createSynchronizeMessage(TextSecureEnvelope envelope, SyncMessage content)
        {
            if (content.HasSent)
            {
                SyncMessage.Types.Sent sentContent = content.Sent;
                return(TextSecureSyncMessage.forSentTranscript(new SentTranscriptMessage(sentContent.Destination,
                                                                                         sentContent.Timestamp,
                                                                                         createTextSecureMessage(envelope, sentContent.Message))));
            }

            if (content.HasRequest)
            {
                return(TextSecureSyncMessage.forRequest(new RequestMessage(content.Request)));
            }

            return(TextSecureSyncMessage.empty());
        }
        public async void sendMessage(TextSecureSyncMessage message)
        {
            byte[] content;

            if (message.getContacts().HasValue)
            {
                content = await createMultiDeviceContactsContent(message.getContacts().ForceGetValue().asStream());
            }
            else if (message.getGroups().HasValue)
            {
                content = await createMultiDeviceGroupsContent(message.getGroups().ForceGetValue().asStream());
            }
            else
            {
                throw new Exception("Unsupported sync message!");
            }

            await sendMessage(localAddress, KeyHelper.getTime(), content, false);
        }
Beispiel #3
0
 public TextSecureContent(TextSecureSyncMessage synchronizeMessage)
 {
     this.message            = May <TextSecureDataMessage> .NoValue;
     this.synchronizeMessage = synchronizeMessage == null ? May <TextSecureSyncMessage> .NoValue : new May <TextSecureSyncMessage>(synchronizeMessage);
 }