]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/ManagerImpl.java
Implement sending message quotes
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / ManagerImpl.java
index 93296a1c4f98775e5797c622926ad4a2bdde1246..84a866d00df9458fc7bd9dbe65a92d3a5f67ce87 100644 (file)
@@ -708,15 +708,27 @@ public class ManagerImpl implements Manager {
             messageBuilder.withAttachments(attachmentHelper.uploadAttachments(attachments));
         }
         if (message.mentions().size() > 0) {
-            final var mentions = new ArrayList<SignalServiceDataMessage.Mention>();
-            for (final var m : message.mentions()) {
-                final var recipientId = resolveRecipient(m.recipient());
-                mentions.add(new SignalServiceDataMessage.Mention(resolveSignalServiceAddress(recipientId).getAci(),
-                        m.start(),
-                        m.length()));
-            }
-            messageBuilder.withMentions(mentions);
+            messageBuilder.withMentions(resolveMentions(message.mentions()));
+        }
+        if (message.quote().isPresent()) {
+            final var quote = message.quote().get();
+            messageBuilder.withQuote(new SignalServiceDataMessage.Quote(quote.timestamp(),
+                    resolveSignalServiceAddress(resolveRecipient(quote.author())),
+                    quote.message(),
+                    List.of(),
+                    resolveMentions(quote.mentions())));
+        }
+    }
+
+    private ArrayList<SignalServiceDataMessage.Mention> resolveMentions(final List<Message.Mention> mentionList) throws IOException {
+        final var mentions = new ArrayList<SignalServiceDataMessage.Mention>();
+        for (final var m : mentionList) {
+            final var recipientId = resolveRecipient(m.recipient());
+            mentions.add(new SignalServiceDataMessage.Mention(resolveSignalServiceAddress(recipientId).getAci(),
+                    m.start(),
+                    m.length()));
         }
+        return mentions;
     }
 
     @Override