X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/5bbfd3259891e18a11cb878e14a9c17990b13d79..7f64a9812ca5bb10e8f57cacf3d22b904bd200b4:/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 c7a3f891..814952aa 100644 --- a/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java +++ b/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java @@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import org.asamk.Signal; import org.asamk.signal.manager.Manager; +import org.asamk.signal.manager.api.RecipientIdentifier; +import org.signal.libsignal.metadata.ProtocolUntrustedIdentityException; import org.whispersystems.signalservice.api.messages.SignalServiceContent; import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope; import org.whispersystems.signalservice.api.util.InvalidNumberException; @@ -59,7 +61,9 @@ public class JsonMessageEnvelope { @JsonInclude(JsonInclude.Include.NON_NULL) final JsonTypingMessage typingMessage; - public JsonMessageEnvelope(SignalServiceEnvelope envelope, SignalServiceContent content, Manager m) { + public JsonMessageEnvelope( + SignalServiceEnvelope envelope, SignalServiceContent content, Throwable exception, Manager m + ) { if (!envelope.isUnidentifiedSender() && envelope.hasSource()) { var source = envelope.getSourceAddress(); this.source = getLegacyIdentifier(source); @@ -74,6 +78,14 @@ public class JsonMessageEnvelope { this.sourceUuid = source.getUuid().transform(UUID::toString).orNull(); this.sourceDevice = content.getSenderDevice(); this.relay = null; + } else if (exception instanceof ProtocolUntrustedIdentityException) { + var e = (ProtocolUntrustedIdentityException) exception; + final var source = m.resolveSignalServiceAddress(e.getSender()); + this.source = getLegacyIdentifier(source); + this.sourceNumber = source.getNumber().orNull(); + this.sourceUuid = source.getUuid().transform(UUID::toString).orNull(); + this.sourceDevice = e.getSenderDevice(); + this.relay = null; } else { this.source = null; this.sourceNumber = null; @@ -83,7 +95,7 @@ public class JsonMessageEnvelope { } String name; try { - name = m.getContactOrProfileName(this.source); + name = m.getContactOrProfileName(RecipientIdentifier.Single.fromString(this.source, m.getUsername())); } catch (InvalidNumberException | NullPointerException e) { name = null; }