version() -> version<s>::
* version : Version string of signal-cli
-isRegistred -> result<b>::
-* result : Currently always returns 1=true
+isRegistered() -> result<b>::
+isRegistered(number<s>) -> result<b>::
+isRegistered(numbers<as>) -> results<ab>::
+* number : Phone number
+* numbers : String array of phone numbers
+* result : true=number is registered, false=number is not registered
+* results : Boolean array of results
+
+Exception: InvalidNumber for an incorrectly formatted phone number. For unknown numbers, false is returned, but no exception is raised. If no number is given, returns whether you are registered (presumably true).
addDevice(deviceUri<s>) -> <>::
* deviceUri : URI in the form of tsdevice:/?uuid=... Normally received from Signal desktop or smartphone app
byte[] groupId, String name, List<String> members, String avatar
) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber, Error.GroupNotFound, Error.InvalidGroupId;
- boolean isRegistered();
+ boolean isRegistered() throws Error.Failure, Error.InvalidNumber;
+
+ boolean isRegistered(String number) throws Error.Failure, Error.InvalidNumber;
+
+ List<Boolean> isRegistered(List<String> numbers) throws Error.Failure, Error.InvalidNumber;
void addDevice(String uri) throws Error.InvalidUri;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
+import java.util.UUID;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Override
public boolean isRegistered() {
- return true;
+ var result = isRegistered(List.of(m.getUsername()));
+ return result.get(0);
+ }
+
+ @Override
+ public boolean isRegistered(String number) {
+ var result = isRegistered(List.of(number));
+ return result.get(0);
+ }
+
+ @Override
+ public List<Boolean> isRegistered(List<String> numbers) {
+ var results = new ArrayList<Boolean> ();
+ Map<String, Pair<String, UUID>> registered;
+ if (numbers.isEmpty()) {
+ return results;
+ }
+ try {
+ registered = m.areUsersRegistered(new HashSet<String>(numbers));
+ } catch (IOException e) {
+ throw new Error.Failure(e.getMessage());
+ }
+ for (String number : numbers) {
+ UUID uuid = registered.get(number).second();
+ results.add(uuid != null);
+ }
+ return results;
}
@Override