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(),
 | 
			
		||||
                                                                       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,
 | 
			
		||||
                                  message.get().getSource(),
 | 
			
		||||
                                  message.get().getTimestamp());
 | 
			
		||||
| 
						 | 
				
			
			@ -571,7 +571,7 @@ public class MessageController {
 | 
			
		|||
 | 
			
		||||
      if (message.isPresent()) {
 | 
			
		||||
        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());
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			@ -605,7 +605,7 @@ public class MessageController {
 | 
			
		|||
      Optional<byte[]> messageContent = getMessageContent(incomingMessage);
 | 
			
		||||
      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)
 | 
			
		||||
                    .setServerTimestamp(System.currentTimeMillis());
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,7 +43,7 @@ public class ReceiptSender {
 | 
			
		|||
                                                  .setSourceUuid(source.getUuid().toString())
 | 
			
		||||
                                                  .setSourceDevice((int) source.getAuthenticatedDevice().get().getId())
 | 
			
		||||
                                                  .setTimestamp(messageId)
 | 
			
		||||
                                                  .setType(Envelope.Type.RECEIPT);
 | 
			
		||||
                                                  .setType(Envelope.Type.SERVER_DELIVERY_RECEIPT);
 | 
			
		||||
 | 
			
		||||
    if (source.getRelay().isPresent()) {
 | 
			
		||||
      message.setRelay(source.getRelay().get());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -171,7 +171,7 @@ public class WebSocketConnection implements MessageAvailabilityListener, Displac
 | 
			
		|||
            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);
 | 
			
		||||
            sendDeliveryReceiptFor(message);
 | 
			
		||||
          }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,8 +25,10 @@ message Envelope {
 | 
			
		|||
    CIPHERTEXT          = 1;
 | 
			
		||||
    KEY_EXCHANGE        = 2;
 | 
			
		||||
    PREKEY_BUNDLE       = 3;
 | 
			
		||||
    RECEIPT             = 5;
 | 
			
		||||
    SERVER_DELIVERY_RECEIPT = 5;
 | 
			
		||||
    UNIDENTIFIED_SENDER = 6;
 | 
			
		||||
    reserved 7;
 | 
			
		||||
    PLAINTEXT_CONTENT = 8;  // for decryption error receipts
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  optional Type   type             = 1;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -478,7 +478,7 @@ class MessageControllerTest {
 | 
			
		|||
 | 
			
		||||
    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(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);
 | 
			
		||||
| 
						 | 
				
			
			@ -515,7 +515,7 @@ class MessageControllerTest {
 | 
			
		|||
 | 
			
		||||
    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(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);
 | 
			
		||||
| 
						 | 
				
			
			@ -546,7 +546,7 @@ class MessageControllerTest {
 | 
			
		|||
 | 
			
		||||
    when(messagesManager.delete(AuthHelper.VALID_UUID, 1, "+14152222222", 31338))
 | 
			
		||||
        .thenReturn(Optional.of(new OutgoingMessageEntity(31337L, true, null,
 | 
			
		||||
                                                          Envelope.Type.RECEIPT_VALUE,
 | 
			
		||||
                                                          Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE,
 | 
			
		||||
                                                          null, System.currentTimeMillis(),
 | 
			
		||||
                                                          "+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) {
 | 
			
		||||
    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);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue