private OutgoingPushMessageList getEncryptedMessages(PushServiceSocket socket, SignalServiceAddress recipient, long timestamp, byte[] plaintext, bool legacy, bool silent) { List <OutgoingPushMessage> messages = new List <OutgoingPushMessage>(); bool myself = recipient.Equals(localAddress); if (!myself || CredentialsProvider.GetDeviceId() != SignalServiceAddress.DEFAULT_DEVICE_ID) { messages.Add(getEncryptedMessage(socket, recipient, SignalServiceAddress.DEFAULT_DEVICE_ID, plaintext, legacy, silent)); } foreach (uint deviceId in store.GetSubDeviceSessions(recipient.getNumber())) { if (!myself || deviceId != CredentialsProvider.GetDeviceId()) { messages.Add(getEncryptedMessage(socket, recipient, deviceId, plaintext, legacy, silent)); } } return(new OutgoingPushMessageList(recipient.getNumber(), (ulong)timestamp, recipient.getRelay().HasValue ? recipient.getRelay().ForceGetValue() : null, messages)); }
/// <summary> /// Send a delivery receipt for a received message. It is not necessary to call this /// when receiving messages through <see cref="SignalServiceMessagePipe"/> /// </summary> /// <param name="recipient">The sender of the received message you're acknowledging.</param> /// <param name="messageId">The message id of the received message you're acknowledging.</param> public void sendDeliveryReceipt(SignalServiceAddress recipient, ulong messageId) { this.socket.sendReceipt(recipient.getNumber(), messageId, recipient.getRelay()); }
private async Task <OutgoingPushMessageList> getEncryptedMessages(PushServiceSocket socket, SignalServiceAddress recipient, long timestamp, byte[] plaintext, bool legacy, bool silent) { List <OutgoingPushMessage> messages = new List <OutgoingPushMessage>(); if (!recipient.Equals(localAddress)) { messages.Add(await getEncryptedMessage(socket, recipient, SignalServiceAddress.DEFAULT_DEVICE_ID, plaintext, legacy, silent)); } foreach (uint deviceId in store.GetSubDeviceSessions(recipient.getNumber())) { messages.Add(await getEncryptedMessage(socket, recipient, deviceId, plaintext, legacy, silent)); } return(new OutgoingPushMessageList(recipient.getNumber(), (ulong)timestamp, recipient.getRelay().HasValue ? recipient.getRelay().ForceGetValue() : null, messages)); }