- SignalServiceAddress source = envelope.getSourceAddress();
- this.source = source.getLegacyIdentifier();
- this.relay = source.getRelay().isPresent() ? source.getRelay().get() : null;
+ var source = envelope.getSourceAddress();
+ this.source = getLegacyIdentifier(source);
+ this.sourceNumber = source.getNumber().orNull();
+ this.sourceUuid = source.getUuid().transform(UUID::toString).orNull();
+ this.sourceDevice = envelope.getSourceDevice();
+ this.relay = source.getRelay().orNull();
+ } else if (envelope.isUnidentifiedSender() && content != null) {
+ final var source = content.getSender();
+ this.source = getLegacyIdentifier(source);
+ this.sourceNumber = source.getNumber().orNull();
+ this.sourceUuid = source.getUuid().transform(UUID::toString).orNull();
+ this.sourceDevice = content.getSenderDevice();
+ this.relay = null;
+ } else {
+ this.source = null;
+ this.sourceNumber = null;
+ this.sourceUuid = null;
+ this.sourceDevice = null;
+ this.relay = null;
+ }
+ String name;
+ try {
+ name = m.getContactOrProfileName(this.source);
+ } catch (InvalidNumberException | NullPointerException e) {
+ name = null;