Rename receipt type and add new client-to-client plaintext type for decryption error receipts
This commit is contained in:
		
							parent
							
								
									6456af6284
								
							
						
					
					
						commit
						164fc40990
					
				| 
						 | 
					@ -549,7 +549,7 @@ public class MessageController {
 | 
				
			||||||
                                                                       account.getAuthenticatedDevice().get().getId(),
 | 
					                                                                       account.getAuthenticatedDevice().get().getId(),
 | 
				
			||||||
                                                                       source, timestamp);
 | 
					                                                                       source, timestamp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (message.isPresent() && message.get().getType() != Envelope.Type.RECEIPT_VALUE) {
 | 
					      if (message.isPresent() && message.get().getType() != Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE) {
 | 
				
			||||||
        receiptSender.sendReceipt(account,
 | 
					        receiptSender.sendReceipt(account,
 | 
				
			||||||
                                  message.get().getSource(),
 | 
					                                  message.get().getSource(),
 | 
				
			||||||
                                  message.get().getTimestamp());
 | 
					                                  message.get().getTimestamp());
 | 
				
			||||||
| 
						 | 
					@ -571,7 +571,7 @@ public class MessageController {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (message.isPresent()) {
 | 
					      if (message.isPresent()) {
 | 
				
			||||||
        WebSocketConnection.recordMessageDeliveryDuration(message.get().getTimestamp(), account.getAuthenticatedDevice().get());
 | 
					        WebSocketConnection.recordMessageDeliveryDuration(message.get().getTimestamp(), account.getAuthenticatedDevice().get());
 | 
				
			||||||
        if (!Util.isEmpty(message.get().getSource()) && message.get().getType() != Envelope.Type.RECEIPT_VALUE) {
 | 
					        if (!Util.isEmpty(message.get().getSource()) && message.get().getType() != Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE) {
 | 
				
			||||||
          receiptSender.sendReceipt(account, message.get().getSource(), message.get().getTimestamp());
 | 
					          receiptSender.sendReceipt(account, message.get().getSource(), message.get().getTimestamp());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
| 
						 | 
					@ -605,7 +605,7 @@ public class MessageController {
 | 
				
			||||||
      Optional<byte[]> messageContent = getMessageContent(incomingMessage);
 | 
					      Optional<byte[]> messageContent = getMessageContent(incomingMessage);
 | 
				
			||||||
      Envelope.Builder messageBuilder = Envelope.newBuilder();
 | 
					      Envelope.Builder messageBuilder = Envelope.newBuilder();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      messageBuilder.setType(Envelope.Type.valueOf(incomingMessage.getType()))
 | 
					      messageBuilder.setType(Envelope.Type.forNumber(incomingMessage.getType()))
 | 
				
			||||||
                    .setTimestamp(timestamp == 0 ? System.currentTimeMillis() : timestamp)
 | 
					                    .setTimestamp(timestamp == 0 ? System.currentTimeMillis() : timestamp)
 | 
				
			||||||
                    .setServerTimestamp(System.currentTimeMillis());
 | 
					                    .setServerTimestamp(System.currentTimeMillis());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,7 +43,7 @@ public class ReceiptSender {
 | 
				
			||||||
                                                  .setSourceUuid(source.getUuid().toString())
 | 
					                                                  .setSourceUuid(source.getUuid().toString())
 | 
				
			||||||
                                                  .setSourceDevice((int) source.getAuthenticatedDevice().get().getId())
 | 
					                                                  .setSourceDevice((int) source.getAuthenticatedDevice().get().getId())
 | 
				
			||||||
                                                  .setTimestamp(messageId)
 | 
					                                                  .setTimestamp(messageId)
 | 
				
			||||||
                                                  .setType(Envelope.Type.RECEIPT);
 | 
					                                                  .setType(Envelope.Type.SERVER_DELIVERY_RECEIPT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (source.getRelay().isPresent()) {
 | 
					    if (source.getRelay().isPresent()) {
 | 
				
			||||||
      message.setRelay(source.getRelay().get());
 | 
					      message.setRelay(source.getRelay().get());
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -171,7 +171,7 @@ public class WebSocketConnection implements MessageAvailabilityListener, Displac
 | 
				
			||||||
            messagesManager.delete(account.getUuid(), device.getId(), storedMessageInfo.get().getGuid());
 | 
					            messagesManager.delete(account.getUuid(), device.getId(), storedMessageInfo.get().getGuid());
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          if (message.getType() != Envelope.Type.RECEIPT) {
 | 
					          if (message.getType() != Envelope.Type.SERVER_DELIVERY_RECEIPT) {
 | 
				
			||||||
            recordMessageDeliveryDuration(message.getTimestamp(), device);
 | 
					            recordMessageDeliveryDuration(message.getTimestamp(), device);
 | 
				
			||||||
            sendDeliveryReceiptFor(message);
 | 
					            sendDeliveryReceiptFor(message);
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,8 +25,10 @@ message Envelope {
 | 
				
			||||||
    CIPHERTEXT          = 1;
 | 
					    CIPHERTEXT          = 1;
 | 
				
			||||||
    KEY_EXCHANGE        = 2;
 | 
					    KEY_EXCHANGE        = 2;
 | 
				
			||||||
    PREKEY_BUNDLE       = 3;
 | 
					    PREKEY_BUNDLE       = 3;
 | 
				
			||||||
    RECEIPT             = 5;
 | 
					    SERVER_DELIVERY_RECEIPT = 5;
 | 
				
			||||||
    UNIDENTIFIED_SENDER = 6;
 | 
					    UNIDENTIFIED_SENDER = 6;
 | 
				
			||||||
 | 
					    reserved 7;
 | 
				
			||||||
 | 
					    PLAINTEXT_CONTENT = 8;  // for decryption error receipts
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  optional Type   type             = 1;
 | 
					  optional Type   type             = 1;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -478,7 +478,7 @@ class MessageControllerTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    List<OutgoingMessageEntity> messages = new LinkedList<>() {{
 | 
					    List<OutgoingMessageEntity> messages = new LinkedList<>() {{
 | 
				
			||||||
      add(new OutgoingMessageEntity(1L, false, messageGuidOne, Envelope.Type.CIPHERTEXT_VALUE, null, timestampOne, "+14152222222", sourceUuid, 2, "hi there".getBytes(), null, 0));
 | 
					      add(new OutgoingMessageEntity(1L, false, messageGuidOne, Envelope.Type.CIPHERTEXT_VALUE, null, timestampOne, "+14152222222", sourceUuid, 2, "hi there".getBytes(), null, 0));
 | 
				
			||||||
      add(new OutgoingMessageEntity(2L, false, null, Envelope.Type.RECEIPT_VALUE, null, timestampTwo, "+14152222222", sourceUuid, 2, null, null, 0));
 | 
					      add(new OutgoingMessageEntity(2L, false, null, Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE, null, timestampTwo, "+14152222222", sourceUuid, 2, null, null, 0));
 | 
				
			||||||
    }};
 | 
					    }};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    OutgoingMessageEntityList messagesList = new OutgoingMessageEntityList(messages, false);
 | 
					    OutgoingMessageEntityList messagesList = new OutgoingMessageEntityList(messages, false);
 | 
				
			||||||
| 
						 | 
					@ -515,7 +515,7 @@ class MessageControllerTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    List<OutgoingMessageEntity> messages = new LinkedList<OutgoingMessageEntity>() {{
 | 
					    List<OutgoingMessageEntity> messages = new LinkedList<OutgoingMessageEntity>() {{
 | 
				
			||||||
      add(new OutgoingMessageEntity(1L, false, UUID.randomUUID(), Envelope.Type.CIPHERTEXT_VALUE, null, timestampOne, "+14152222222", UUID.randomUUID(), 2, "hi there".getBytes(), null, 0));
 | 
					      add(new OutgoingMessageEntity(1L, false, UUID.randomUUID(), Envelope.Type.CIPHERTEXT_VALUE, null, timestampOne, "+14152222222", UUID.randomUUID(), 2, "hi there".getBytes(), null, 0));
 | 
				
			||||||
      add(new OutgoingMessageEntity(2L, false, UUID.randomUUID(), Envelope.Type.RECEIPT_VALUE, null, timestampTwo, "+14152222222", UUID.randomUUID(), 2, null, null, 0));
 | 
					      add(new OutgoingMessageEntity(2L, false, UUID.randomUUID(), Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE, null, timestampTwo, "+14152222222", UUID.randomUUID(), 2, null, null, 0));
 | 
				
			||||||
    }};
 | 
					    }};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    OutgoingMessageEntityList messagesList = new OutgoingMessageEntityList(messages, false);
 | 
					    OutgoingMessageEntityList messagesList = new OutgoingMessageEntityList(messages, false);
 | 
				
			||||||
| 
						 | 
					@ -546,7 +546,7 @@ class MessageControllerTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    when(messagesManager.delete(AuthHelper.VALID_UUID, 1, "+14152222222", 31338))
 | 
					    when(messagesManager.delete(AuthHelper.VALID_UUID, 1, "+14152222222", 31338))
 | 
				
			||||||
        .thenReturn(Optional.of(new OutgoingMessageEntity(31337L, true, null,
 | 
					        .thenReturn(Optional.of(new OutgoingMessageEntity(31337L, true, null,
 | 
				
			||||||
                                                          Envelope.Type.RECEIPT_VALUE,
 | 
					                                                          Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE,
 | 
				
			||||||
                                                          null, System.currentTimeMillis(),
 | 
					                                                          null, System.currentTimeMillis(),
 | 
				
			||||||
                                                          "+14152222222", sourceUuid, 1, null, null, 0)));
 | 
					                                                          "+14152222222", sourceUuid, 1, null, null, 0)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -823,7 +823,7 @@ public class WebSocketConnectionTest {
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private OutgoingMessageEntity createMessage(long id, boolean cached, String sender, UUID senderUuid, long timestamp, boolean receipt, String content) {
 | 
					  private OutgoingMessageEntity createMessage(long id, boolean cached, String sender, UUID senderUuid, long timestamp, boolean receipt, String content) {
 | 
				
			||||||
    return new OutgoingMessageEntity(id, cached, UUID.randomUUID(), receipt ? Envelope.Type.RECEIPT_VALUE : Envelope.Type.CIPHERTEXT_VALUE,
 | 
					    return new OutgoingMessageEntity(id, cached, UUID.randomUUID(), receipt ? Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE : Envelope.Type.CIPHERTEXT_VALUE,
 | 
				
			||||||
                                     null, timestamp, sender, senderUuid, 1, content.getBytes(), null, 0);
 | 
					                                     null, timestamp, sender, senderUuid, 1, content.getBytes(), null, 0);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue