X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/3c3d3e92dd68c381d3e03b6447a73614e6a86ff4..23fcd8a23024cb92ef330662177302adaeb9c87c:/src/main/java/org/asamk/signal/Manager.java diff --git a/src/main/java/org/asamk/signal/Manager.java b/src/main/java/org/asamk/signal/Manager.java index 575bba22..a38d313f 100644 --- a/src/main/java/org/asamk/signal/Manager.java +++ b/src/main/java/org/asamk/signal/Manager.java @@ -558,7 +558,8 @@ class Manager implements Signal { if (mime == null) { mime = "application/octet-stream"; } - return new SignalServiceAttachmentStream(attachmentStream, mime, attachmentSize, Optional.of(attachmentFile.getName()), null); + // TODO mabybe add a parameter to set the voiceNote and preview option + return new SignalServiceAttachmentStream(attachmentStream, mime, attachmentSize, Optional.of(attachmentFile.getName()), false, Optional.absent(),null); } private Optional createGroupAvatarAttachment(byte[] groupId) throws IOException { @@ -836,7 +837,10 @@ class Manager implements Signal { } @Override - public void updateGroup(byte[] groupId, String name, List members, String avatar) throws IOException, EncapsulatedExceptions, GroupNotFoundException, AttachmentInvalidException { + public byte[] updateGroup(byte[] groupId, String name, List members, String avatar) throws IOException, EncapsulatedExceptions, GroupNotFoundException, AttachmentInvalidException { + if (groupId.length == 0) { + groupId = null; + } if (name.isEmpty()) { name = null; } @@ -846,7 +850,7 @@ class Manager implements Signal { if (avatar.isEmpty()) { avatar = null; } - sendUpdateGroupMessage(groupId, name, members, avatar); + return sendUpdateGroupMessage(groupId, name, members, avatar); } private void requestSyncGroups() throws IOException { @@ -1248,7 +1252,11 @@ class Manager implements Signal { File tmpFile = null; try { tmpFile = Util.createTempFile(); - DeviceContactsInputStream s = new DeviceContactsInputStream(retrieveAttachmentAsStream(syncMessage.getContacts().get().asPointer(), tmpFile)); + final ContactsMessage contactsMessage = syncMessage.getContacts().get(); + DeviceContactsInputStream s = new DeviceContactsInputStream(retrieveAttachmentAsStream(contactsMessage.getContactsStream().asPointer(), tmpFile)); + if (contactsMessage.isComplete()) { + contactStore.clear(); + } DeviceContact c; while ((c = s.read()) != null) { ContactInfo contact = contactStore.getContact(c.getNumber()); @@ -1503,7 +1511,7 @@ class Manager implements Signal { .withLength(contactsFile.length()) .build(); - sendSyncMessage(SignalServiceSyncMessage.forContacts(attachmentStream)); + sendSyncMessage(SignalServiceSyncMessage.forContacts(new ContactsMessage(attachmentStream, true))); } } } finally {