X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/c440520ea6351f3937b2f8bba60c96d16b76e891..b09677a46c4ecf07f305892b51a927e4d7341793:/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java diff --git a/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java b/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java index 4944a74d..40f5ed21 100644 --- a/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java +++ b/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java @@ -7,15 +7,20 @@ import org.asamk.Signal; import org.asamk.signal.manager.Manager; import org.whispersystems.signalservice.api.messages.SignalServiceContent; import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; +import org.whispersystems.signalservice.api.util.InvalidNumberException; import java.util.List; +import static org.asamk.signal.util.Util.getLegacyIdentifier; + public class JsonMessageEnvelope { @JsonProperty final String source; + @JsonProperty + final String sourceName; + @JsonProperty final Integer sourceDevice; @@ -48,12 +53,12 @@ public class JsonMessageEnvelope { public JsonMessageEnvelope(SignalServiceEnvelope envelope, SignalServiceContent content, Manager m) { if (!envelope.isUnidentifiedSender() && envelope.hasSource()) { - SignalServiceAddress source = envelope.getSourceAddress(); - this.source = source.getLegacyIdentifier(); + var source = envelope.getSourceAddress(); + this.source = getLegacyIdentifier(source); this.sourceDevice = envelope.getSourceDevice(); this.relay = source.getRelay().orNull(); } else if (envelope.isUnidentifiedSender() && content != null) { - this.source = content.getSender().getLegacyIdentifier(); + this.source = getLegacyIdentifier(content.getSender()); this.sourceDevice = content.getSenderDevice(); this.relay = null; } else { @@ -61,6 +66,13 @@ public class JsonMessageEnvelope { this.sourceDevice = null; this.relay = null; } + String name; + try { + name = m.getContactOrProfileName(this.source); + } catch (InvalidNumberException | NullPointerException e) { + name = null; + } + this.sourceName = name; this.timestamp = envelope.getTimestamp(); if (envelope.isReceipt()) { this.receiptMessage = JsonReceiptMessage.deliveryReceipt(timestamp, List.of(timestamp)); @@ -86,6 +98,7 @@ public class JsonMessageEnvelope { public JsonMessageEnvelope(Signal.MessageReceived messageReceived) { source = messageReceived.getSender(); + sourceName = null; sourceDevice = null; relay = null; timestamp = messageReceived.getTimestamp(); @@ -98,6 +111,7 @@ public class JsonMessageEnvelope { public JsonMessageEnvelope(Signal.ReceiptReceived receiptReceived) { source = receiptReceived.getSender(); + sourceName = null; sourceDevice = null; relay = null; timestamp = receiptReceived.getTimestamp(); @@ -110,6 +124,7 @@ public class JsonMessageEnvelope { public JsonMessageEnvelope(Signal.SyncMessageReceived messageReceived) { source = messageReceived.getSource(); + sourceName = null; sourceDevice = null; relay = null; timestamp = messageReceived.getTimestamp();