diff --git a/src/main/java/org/asamk/Signal.java b/src/main/java/org/asamk/Signal.java index 601360ac..8eff0510 100644 --- a/src/main/java/org/asamk/Signal.java +++ b/src/main/java/org/asamk/Signal.java @@ -95,7 +95,9 @@ public interface Signal extends DBusInterface { byte[] groupId, String name, List members, String avatar ) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber, Error.GroupNotFound; - boolean isRegistered(); + boolean isRegistered(String number); + + List isRegistered(List numbers); void updateProfile( String name, String about, String aboutEmoji, String avatarPath, boolean removeAvatar diff --git a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java index 44d80468..180610e9 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java @@ -512,8 +512,31 @@ public class DbusSignalImpl implements Signal { } @Override - public boolean isRegistered() { - return true; + public boolean isRegistered(String number) { + try { + Map registered; + List numbers = new ArrayList(); + numbers.add(number); + registered = m.areUsersRegistered(new HashSet(numbers)); + return registered.get(number); + } catch (IOException e) { + throw new Error.Failure(e.getMessage()); + } + } + + @Override + public List isRegistered(List numbers) { + try { + Map registered; + List results = new ArrayList (); + registered = m.areUsersRegistered(new HashSet(numbers)); + for (String number : numbers) { + results.add(registered.get(number)); + } + return results; + } catch (IOException e) { + throw new Error.Failure(e.getMessage()); + } } @Override