From f04c0aed99d672f31734765402acbfd807af27fd Mon Sep 17 00:00:00 2001 From: Finn Date: Sun, 19 Feb 2017 20:31:45 -0800 Subject: [PATCH] allow group updates over dbus --- src/main/java/org/asamk/Signal.java | 4 +++- src/main/java/org/asamk/signal/Manager.java | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/asamk/Signal.java b/src/main/java/org/asamk/Signal.java index a1c64121..0d2f91c2 100644 --- a/src/main/java/org/asamk/Signal.java +++ b/src/main/java/org/asamk/Signal.java @@ -21,9 +21,11 @@ public interface Signal extends DBusInterface { String getContactName(String number); + String getGroupName(byte[] groupId); + void setContactName(String number, String name); - String getGroupName(byte[] groupId); + void updateGroup(byte[] groupId, String name, List members, String avatar) throws IOException, EncapsulatedExceptions, GroupNotFoundException, AttachmentInvalidException; class MessageReceived extends DBusSignal { private long timestamp; diff --git a/src/main/java/org/asamk/signal/Manager.java b/src/main/java/org/asamk/signal/Manager.java index 321e46d7..40e0623e 100644 --- a/src/main/java/org/asamk/signal/Manager.java +++ b/src/main/java/org/asamk/signal/Manager.java @@ -805,6 +805,24 @@ class Manager implements Signal { save(); } + @Override + public void updateGroup(byte[] groupId, String name, List members, String avatar) throws IOException, EncapsulatedExceptions, GroupNotFoundException, AttachmentInvalidException { + String optName = null; + Collection optMembers = null; + String optAvatar = null; + if(!name.isEmpty()) { + optName = name; + } + if(members.size() > 0) { + optMembers = members; + } + if(!avatar.isEmpty()) { + optAvatar = avatar; + } + System.err.println("sendUpdateGroupMessage(" + Base64.encodeBytes(groupId) + ", " + optName + ", " + optMembers + ", " + optAvatar + ");"); + sendUpdateGroupMessage(groupId, optName, optMembers, null); + } + private void requestSyncGroups() throws IOException { SignalServiceProtos.SyncMessage.Request r = SignalServiceProtos.SyncMessage.Request.newBuilder().setType(SignalServiceProtos.SyncMessage.Request.Type.GROUPS).build(); SignalServiceSyncMessage message = SignalServiceSyncMessage.forRequest(new RequestMessage(r));