]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/ManagerImpl.java
Split given/family name in updateContact command
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / ManagerImpl.java
index 19ff8b54c1990e60ecbc9b4a8543ce3a6f00d154..dc7e743ec6221e0355636434a71c0396327aa3bf 100644 (file)
@@ -25,8 +25,9 @@ import org.asamk.signal.manager.api.InactiveGroupLinkException;
 import org.asamk.signal.manager.api.InvalidDeviceLinkException;
 import org.asamk.signal.manager.api.InvalidStickerException;
 import org.asamk.signal.manager.api.Message;
-import org.asamk.signal.manager.api.NotMasterDeviceException;
+import org.asamk.signal.manager.api.NotPrimaryDeviceException;
 import org.asamk.signal.manager.api.Pair;
+import org.asamk.signal.manager.api.ReceiveConfig;
 import org.asamk.signal.manager.api.RecipientIdentifier;
 import org.asamk.signal.manager.api.SendGroupMessageResults;
 import org.asamk.signal.manager.api.SendMessageResult;
@@ -65,6 +66,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.whispersystems.signalservice.api.SignalSessionLock;
 import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
+import org.whispersystems.signalservice.api.messages.SignalServicePreview;
 import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage;
 import org.whispersystems.signalservice.api.messages.SignalServiceTypingMessage;
 import org.whispersystems.signalservice.api.push.ACI;
@@ -241,9 +243,9 @@ class ManagerImpl implements Manager {
     @Override
     public void updateConfiguration(
             Configuration configuration
-    ) throws NotMasterDeviceException {
-        if (!account.isMasterDevice()) {
-            throw new NotMasterDeviceException();
+    ) throws NotPrimaryDeviceException {
+        if (!account.isPrimaryDevice()) {
+            throw new NotPrimaryDeviceException();
         }
 
         final var configurationStore = account.getConfigurationStore();
@@ -327,9 +329,9 @@ class ManagerImpl implements Manager {
     }
 
     @Override
-    public void setRegistrationLockPin(Optional<String> pin) throws IOException, NotMasterDeviceException {
-        if (!account.isMasterDevice()) {
-            throw new NotMasterDeviceException();
+    public void setRegistrationLockPin(Optional<String> pin) throws IOException, NotPrimaryDeviceException {
+        if (!account.isPrimaryDevice()) {
+            throw new NotPrimaryDeviceException();
         }
         if (pin.isPresent()) {
             context.getAccountHelper().setRegistrationPin(pin.get());
@@ -551,9 +553,8 @@ class ManagerImpl implements Manager {
             final SignalServiceDataMessage.Builder messageBuilder, final Message message
     ) throws AttachmentInvalidException, IOException, UnregisteredRecipientException, InvalidStickerException {
         messageBuilder.withBody(message.messageText());
-        final var attachments = message.attachments();
-        if (attachments != null) {
-            messageBuilder.withAttachments(context.getAttachmentHelper().uploadAttachments(attachments));
+        if (message.attachments().size() > 0) {
+            messageBuilder.withAttachments(context.getAttachmentHelper().uploadAttachments(message.attachments()));
         }
         if (message.mentions().size() > 0) {
             messageBuilder.withMentions(resolveMentions(message.mentions()));
@@ -590,7 +591,20 @@ class ManagerImpl implements Manager {
                     stickerPack.getPackKey(),
                     stickerId,
                     manifestSticker.emoji(),
-                    AttachmentUtils.createAttachment(streamDetails, Optional.empty())));
+                    AttachmentUtils.createAttachmentStream(streamDetails, Optional.empty())));
+        }
+        if (message.previews().size() > 0) {
+            final var previews = new ArrayList<SignalServicePreview>(message.previews().size());
+            for (final var p : message.previews()) {
+                final var image = p.image().isPresent() ? context.getAttachmentHelper()
+                        .uploadAttachment(p.image().get()) : null;
+                previews.add(new SignalServicePreview(p.url(),
+                        p.title(),
+                        p.description(),
+                        0,
+                        Optional.ofNullable(image)));
+            }
+            messageBuilder.withPreviews(previews);
         }
     }
 
@@ -691,20 +705,21 @@ class ManagerImpl implements Manager {
 
     @Override
     public void setContactName(
-            RecipientIdentifier.Single recipient, String name
-    ) throws NotMasterDeviceException, UnregisteredRecipientException {
-        if (!account.isMasterDevice()) {
-            throw new NotMasterDeviceException();
+            RecipientIdentifier.Single recipient, String givenName, final String familyName
+    ) throws NotPrimaryDeviceException, UnregisteredRecipientException {
+        if (!account.isPrimaryDevice()) {
+            throw new NotPrimaryDeviceException();
         }
-        context.getContactHelper().setContactName(context.getRecipientHelper().resolveRecipient(recipient), name);
+        context.getContactHelper()
+                .setContactName(context.getRecipientHelper().resolveRecipient(recipient), givenName, familyName);
     }
 
     @Override
     public void setContactsBlocked(
             Collection<RecipientIdentifier.Single> recipients, boolean blocked
-    ) throws NotMasterDeviceException, IOException, UnregisteredRecipientException {
-        if (!account.isMasterDevice()) {
-            throw new NotMasterDeviceException();
+    ) throws NotPrimaryDeviceException, IOException, UnregisteredRecipientException {
+        if (!account.isPrimaryDevice()) {
+            throw new NotPrimaryDeviceException();
         }
         if (recipients.size() == 0) {
             return;
@@ -734,9 +749,9 @@ class ManagerImpl implements Manager {
     @Override
     public void setGroupsBlocked(
             final Collection<GroupId> groupIds, final boolean blocked
-    ) throws GroupNotFoundException, NotMasterDeviceException, IOException {
-        if (!account.isMasterDevice()) {
-            throw new NotMasterDeviceException();
+    ) throws GroupNotFoundException, NotPrimaryDeviceException, IOException {
+        if (!account.isPrimaryDevice()) {
+            throw new NotPrimaryDeviceException();
         }
         if (groupIds.size() == 0) {
             return;
@@ -934,8 +949,8 @@ class ManagerImpl implements Manager {
     }
 
     @Override
-    public void setIgnoreAttachments(final boolean ignoreAttachments) {
-        context.getReceiveHelper().setIgnoreAttachments(ignoreAttachments);
+    public void setReceiveConfig(final ReceiveConfig receiveConfig) {
+        context.getReceiveHelper().setReceiveConfig(receiveConfig);
     }
 
     @Override