import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer;
import org.whispersystems.signalservice.api.messages.SignalServiceContent;
import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
+import org.whispersystems.signalservice.api.messages.SignalServiceEditMessage;
import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
import org.whispersystems.signalservice.api.messages.SignalServiceGroupContext;
Optional<Receipt> receipt,
Optional<Typing> typing,
Optional<Data> data,
+ Optional<Edit> edit,
Optional<Sync> sync,
Optional<Call> call,
Optional<Story> story
}
}
+ public record Edit(long targetSentTimestamp, Data dataMessage) {
+
+ public static Edit from(
+ final SignalServiceEditMessage editMessage,
+ RecipientResolver recipientResolver,
+ RecipientAddressResolver addressResolver,
+ final AttachmentFileProvider fileProvider
+ ) {
+ return new Edit(editMessage.getTargetSentTimestamp(),
+ Data.from(editMessage.getDataMessage(), recipientResolver, addressResolver, fileProvider));
+ }
+ }
+
public record Sync(
Optional<Sent> sent,
Optional<Blocked> blocked,
Optional<RecipientAddress> destination,
Set<RecipientAddress> recipients,
Optional<Data> message,
+ Optional<Edit> editMessage,
Optional<Story> story
) {
.collect(Collectors.toSet()),
sentMessage.getDataMessage()
.map(message -> Data.from(message, recipientResolver, addressResolver, fileProvider)),
+ sentMessage.getEditMessage()
+ .map(message -> Edit.from(message, recipientResolver, addressResolver, fileProvider)),
sentMessage.getStoryMessage().map(s -> Story.from(s, fileProvider)));
}
}
Optional<Receipt> receipt;
Optional<Typing> typing;
Optional<Data> data;
+ Optional<Edit> edit;
Optional<Sync> sync;
Optional<Call> call;
Optional<Story> story;
typing = content.getTypingMessage().map(Typing::from);
data = content.getDataMessage()
.map(dataMessage -> Data.from(dataMessage, recipientResolver, addressResolver, fileProvider));
+ edit = content.getEditMessage().map(s -> Edit.from(s, recipientResolver, addressResolver, fileProvider));
sync = content.getSyncMessage().map(s -> Sync.from(s, recipientResolver, addressResolver, fileProvider));
call = content.getCallMessage().map(Call::from);
story = content.getStoryMessage().map(s -> Story.from(s, fileProvider));
List.of(envelope.getTimestamp()))) : Optional.empty();
typing = Optional.empty();
data = Optional.empty();
+ edit = Optional.empty();
sync = Optional.empty();
call = Optional.empty();
story = Optional.empty();
receipt,
typing,
data,
+ edit,
sync,
call,
story);