X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/425626ef9475cbc90ef8ada95dee172389baf521..1c5de83370e1108271bf72836c887fdea9cb46db:/src/main/java/org/asamk/signal/manager/Manager.java diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index 7ad7b888..e964d218 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -383,6 +383,28 @@ public class Manager implements Closeable { return account.isRegistered(); } + /** + * This is used for checking a set of phone numbers for registration on Signal + * + * @param numbers The set of phone number in question + * @return A map of numbers to booleans. True if registered, false otherwise. Should never be null + * @throws IOException if its unable to check if the users are registered + */ + public Map areUsersRegistered(Set numbers) throws IOException { + // Note "contactDetails" has no optionals. It only gives us info on users who are registered + List contactDetails = this.accountManager.getContacts(numbers); + + // Make the initial map with all numbers set to false for now + Map usersRegistered = numbers.stream().collect(Collectors.toMap(x -> x, x -> false)); + + // Override the contacts we did obtain + for (ContactTokenDetails contactDetail : contactDetails) { + usersRegistered.put(contactDetail.getNumber(), true); + } + + return usersRegistered; + } + public void register(boolean voiceVerification, String captcha) throws IOException { account.setPassword(KeyUtils.createPassword());