Implement receive handling for story messages

This commit is contained in:
AsamK
2022-08-08 18:12:30 +02:00
parent 81e36d4f9b
commit a593051512
12 changed files with 443 additions and 47 deletions

View File

@@ -68,6 +68,10 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
var message = envelope.data().get();
printDataMessage(writer, message);
}
if (envelope.story().isPresent()) {
var message = envelope.story().get();
printStoryMessage(writer.indentedWriter(), message);
}
if (envelope.sync().isPresent()) {
writer.println("Received a sync message");
var syncMessage = envelope.sync().get();
@@ -107,6 +111,11 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
final var groupContext = message.groupContext().get();
printGroupContext(writer.indentedWriter(), groupContext);
}
if (message.storyContext().isPresent()) {
writer.println("Story reply:");
final var storyContext = message.storyContext().get();
printStoryContext(writer.indentedWriter(), storyContext);
}
if (message.groupCallUpdate().isPresent()) {
writer.println("Group call update:");
final var groupCallUpdate = message.groupCallUpdate().get();
@@ -176,6 +185,28 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
}
}
private void printStoryMessage(
PlainTextWriter writer, MessageEnvelope.Story message
) {
writer.println("Story: with replies: {}", message.allowsReplies());
if (message.groupId().isPresent()) {
writer.println("Group info:");
printGroupInfo(writer.indentedWriter(), message.groupId().get());
}
if (message.textAttachment().isPresent()) {
writer.println("Body: {}", message.textAttachment().get().text().orElse(""));
if (message.textAttachment().get().preview().isPresent()) {
writer.println("Preview:");
printPreview(writer.indentedWriter(), message.textAttachment().get().preview().get());
}
}
if (message.fileAttachment().isPresent()) {
writer.println("Attachments:");
printAttachment(writer.indentedWriter(), message.fileAttachment().get());
}
}
private void printTypingMessage(
final PlainTextWriter writer, final MessageEnvelope.Typing typingMessage
) {
@@ -305,6 +336,10 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
var message = sentTranscriptMessage.message().get();
printDataMessage(writer.indentedWriter(), message);
}
if (sentTranscriptMessage.story().isPresent()) {
var message = sentTranscriptMessage.story().get();
printStoryMessage(writer.indentedWriter(), message);
}
}
if (syncMessage.blocked().isPresent()) {
writer.println("Received sync message with block list");
@@ -495,6 +530,13 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
writer.println("Type: {}", groupContext.isGroupUpdate() ? "UPDATE" : "DELIVER");
}
private void printStoryContext(
final PlainTextWriter writer, final MessageEnvelope.Data.StoryContext storyContext
) {
writer.println("Sender: {}", formatContact(storyContext.author()));
writer.println("Sent timestamp: {}", storyContext.sentTimestamp());
}
private void printGroupInfo(final PlainTextWriter writer, final GroupId groupId) {
writer.println("Id: {}", groupId.toBase64());