Include `ephemeral` flag in individual messages

This commit is contained in:
Jon Chambers 2025-01-31 12:50:14 -05:00 committed by Jon Chambers
parent c84d96abee
commit 70ce6eff9e
3 changed files with 7 additions and 3 deletions

View File

@ -403,6 +403,7 @@ public class MessageController {
source.map(account -> account.getAuthenticatedDevice().getId()).orElse(null),
messages.timestamp() == 0 ? System.currentTimeMillis() : messages.timestamp(),
isStory,
messages.online(),
messages.urgent(),
reportSpamToken.orElse(null));
} catch (final IllegalArgumentException e) {

View File

@ -19,6 +19,7 @@ public record IncomingMessage(int type, byte destinationDeviceId, int destinatio
@Nullable Byte sourceDeviceId,
final long timestamp,
final boolean story,
final boolean ephemeral,
final boolean urgent,
@Nullable byte[] reportSpamToken) {
@ -35,6 +36,7 @@ public record IncomingMessage(int type, byte destinationDeviceId, int destinatio
.setServerTimestamp(System.currentTimeMillis())
.setDestinationServiceId(destinationIdentifier.toServiceIdentifierString())
.setStory(story)
.setEphemeral(ephemeral)
.setUrgent(urgent);
if (sourceAccount != null && sourceDeviceId != null) {

View File

@ -64,8 +64,6 @@ class OutgoingMessageEntityTest {
@Test
void entityPreservesEnvelope() {
final Random random = new Random();
final byte[] reportSpamToken = TestRandomUtil.nextBytes(8);
final Account account = new Account();
@ -79,11 +77,14 @@ class OutgoingMessageEntityTest {
(byte) 123,
System.currentTimeMillis(),
false,
false,
true,
reportSpamToken);
MessageProtos.Envelope envelope = baseEnvelope.toBuilder().setServerGuid(UUID.randomUUID().toString()).build();
assertEquals(envelope, OutgoingMessageEntity.fromEnvelope(envelope).toEnvelope());
// Note that outgoing message entities don't have an "ephemeral"/"online" flag
assertEquals(envelope.toBuilder().clearEphemeral().build(),
OutgoingMessageEntity.fromEnvelope(envelope).toEnvelope());
}
}