X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/3c3d3e92dd68c381d3e03b6447a73614e6a86ff4..4377a2179b38360b00efc1c1db00a62f3f020db1:/src/main/java/org/asamk/signal/Main.java diff --git a/src/main/java/org/asamk/signal/Main.java b/src/main/java/org/asamk/signal/Main.java index c8963659..a9097fc9 100644 --- a/src/main/java/org/asamk/signal/Main.java +++ b/src/main/java/org/asamk/signal/Main.java @@ -460,11 +460,7 @@ public class Main { break; case "updateGroup": - if (dBusConn != null) { - System.err.println("updateGroup is not yet implemented via dbus"); - return 1; - } - if (!m.isRegistered()) { + if (dBusConn == null && !m.isRegistered()) { System.err.println("User is not registered."); return 1; } @@ -474,8 +470,23 @@ public class Main { if (ns.getString("group") != null) { groupId = decodeGroupId(ns.getString("group")); } - byte[] newGroupId = m.sendUpdateGroupMessage(groupId, ns.getString("name"), ns.getList("member"), ns.getString("avatar")); if (groupId == null) { + groupId = new byte[0]; + } + String groupName = ns.getString("name"); + if (groupName == null) { + groupName = ""; + } + List groupMembers = ns.getList("member"); + if (groupMembers == null) { + groupMembers = new ArrayList(); + } + String groupAvatar = ns.getString("avatar"); + if (groupAvatar == null) { + groupAvatar = ""; + } + byte[] newGroupId = ts.updateGroup(groupId, groupName, groupMembers, groupAvatar); + if (groupId.length != newGroupId.length) { System.out.println("Creating new group \"" + Base64.encodeBytes(newGroupId) + "\" …"); } } catch (IOException e) { @@ -927,8 +938,13 @@ public class Main { SignalServiceSyncMessage syncMessage = content.getSyncMessage().get(); if (syncMessage.getContacts().isPresent()) { - System.out.println("Received sync contacts"); - printAttachment(syncMessage.getContacts().get()); + final ContactsMessage contactsMessage = syncMessage.getContacts().get(); + if (contactsMessage.isComplete()) { + System.out.println("Received complete sync contacts"); + } else { + System.out.println("Received sync contacts"); + } + printAttachment(contactsMessage.getContactsStream()); } if (syncMessage.getGroups().isPresent()) { System.out.println("Received sync groups"); @@ -976,6 +992,16 @@ public class Main { System.out.println(" - " + number); } } + if (syncMessage.getVerified().isPresent()) { + System.out.println("Received sync message with verified identities:"); + final List verifiedList = syncMessage.getVerified().get(); + for (VerifiedMessage v : verifiedList) { + System.out.println(" - " + v.getDestination() + ": " + v.getVerified()); + String safetyNumber = formatSafetyNumber(m.computeSafetyNumber(v.getDestination(), v.getIdentityKey())); + System.out.println(" " + safetyNumber); + } + + } } } } else { @@ -1040,6 +1066,7 @@ public class Main { System.out.println(" Id: " + pointer.getId() + " Key length: " + pointer.getKey().length + (pointer.getRelay().isPresent() ? " Relay: " + pointer.getRelay().get() : "")); System.out.println(" Filename: " + (pointer.getFileName().isPresent() ? pointer.getFileName().get() : "-")); System.out.println(" Size: " + (pointer.getSize().isPresent() ? pointer.getSize().get() + " bytes" : "") + (pointer.getPreview().isPresent() ? " (Preview is available: " + pointer.getPreview().get().length + " bytes)" : "")); + System.out.println(" Voice note: " + (pointer.getVoiceNote() ? "yes" : "no")); File file = m.getAttachmentFile(pointer.getId()); if (file.exists()) { System.out.println(" Stored plaintext in: " + file);