]>
nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonQuote.java
1 package org
.asamk
.signal
.json
;
3 import com
.fasterxml
.jackson
.annotation
.JsonInclude
;
4 import com
.fasterxml
.jackson
.annotation
.JsonProperty
;
6 import org
.asamk
.signal
.manager
.Manager
;
7 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceDataMessage
;
9 import java
.util
.ArrayList
;
10 import java
.util
.List
;
11 import java
.util
.UUID
;
12 import java
.util
.stream
.Collectors
;
14 import static org
.asamk
.signal
.util
.Util
.getLegacyIdentifier
;
16 public class JsonQuote
{
26 final String authorNumber
;
29 final String authorUuid
;
35 @JsonInclude(JsonInclude
.Include
.NON_NULL
)
36 final List
<JsonMention
> mentions
;
39 final List
<JsonQuotedAttachment
> attachments
;
41 JsonQuote(SignalServiceDataMessage
.Quote quote
, Manager m
) {
42 this.id
= quote
.getId();
43 final var address
= m
.resolveSignalServiceAddress(quote
.getAuthor());
44 this.author
= getLegacyIdentifier(address
);
45 this.authorNumber
= address
.getNumber().orNull();
46 this.authorUuid
= address
.getUuid().transform(UUID
::toString
).orNull();
47 this.text
= quote
.getText();
49 if (quote
.getMentions() != null && quote
.getMentions().size() > 0) {
50 this.mentions
= quote
.getMentions()
52 .map(quotedMention
-> new JsonMention(quotedMention
, m
))
53 .collect(Collectors
.toList());
58 if (quote
.getAttachments().size() > 0) {
59 this.attachments
= quote
.getAttachments()
61 .map(JsonQuotedAttachment
::new)
62 .collect(Collectors
.toList());
64 this.attachments
= new ArrayList
<>();