diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java index 3c5b78760..8cd15df23 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java @@ -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 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()); diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/push/ReceiptSender.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/ReceiptSender.java index c6c8f0d5f..a193aba30 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/push/ReceiptSender.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/push/ReceiptSender.java @@ -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()); diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnection.java b/service/src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnection.java index ea656351a..f406f7843 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnection.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnection.java @@ -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); } diff --git a/service/src/main/proto/TextSecure.proto b/service/src/main/proto/TextSecure.proto index cf35801fe..8f1ac3605 100644 --- a/service/src/main/proto/TextSecure.proto +++ b/service/src/main/proto/TextSecure.proto @@ -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; diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/MessageControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/MessageControllerTest.java index 9c4945dc7..71b336f10 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/MessageControllerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/MessageControllerTest.java @@ -478,7 +478,7 @@ class MessageControllerTest { List 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 messages = new LinkedList() {{ 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))); diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnectionTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnectionTest.java index 52a18f718..95b32d686 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnectionTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnectionTest.java @@ -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); }