package org.asamk.signal.json;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
import org.asamk.signal.manager.Manager;
import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
-public class JsonMention {
-
- @JsonProperty
- final String name;
-
- @JsonProperty
- final int start;
+import static org.asamk.signal.util.Util.getLegacyIdentifier;
- @JsonProperty
- final int length;
+public record JsonMention(@Deprecated String name, String number, String uuid, int start, int length) {
- JsonMention(SignalServiceDataMessage.Mention mention, Manager m) {
- this.name = m.resolveSignalServiceAddress(new SignalServiceAddress(mention.getUuid(), null))
- .getLegacyIdentifier();
- this.start = mention.getStart();
- this.length = mention.getLength();
+ static JsonMention from(SignalServiceDataMessage.Mention mention, Manager m) {
+ final var address = m.resolveSignalServiceAddress(new SignalServiceAddress(mention.getUuid()));
+ return new JsonMention(getLegacyIdentifier(address),
+ address.getNumber().orNull(),
+ address.getUuid().toString(),
+ mention.getStart(),
+ mention.getLength());
}
}