]>
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
.stream
.Collectors
;
13 import static org
.asamk
.signal
.util
.Util
.getLegacyIdentifier
;
15 public class JsonQuote
{
25 final String authorNumber
;
28 final String authorUuid
;
34 @JsonInclude(JsonInclude
.Include
.NON_NULL
)
35 final List
<JsonMention
> mentions
;
38 final List
<JsonQuotedAttachment
> attachments
;
40 JsonQuote(SignalServiceDataMessage
.Quote quote
, Manager m
) {
41 this.id
= quote
.getId();
42 final var address
= m
.resolveSignalServiceAddress(quote
.getAuthor());
43 this.author
= getLegacyIdentifier(address
);
44 this.authorNumber
= address
.getNumber().orNull();
45 this.authorUuid
= address
.getUuid().toString();
46 this.text
= quote
.getText();
48 if (quote
.getMentions() != null && quote
.getMentions().size() > 0) {
49 this.mentions
= quote
.getMentions()
51 .map(quotedMention
-> new JsonMention(quotedMention
, m
))
52 .collect(Collectors
.toList());
57 if (quote
.getAttachments().size() > 0) {
58 this.attachments
= quote
.getAttachments()
60 .map(JsonQuotedAttachment
::new)
61 .collect(Collectors
.toList());
63 this.attachments
= new ArrayList
<>();