+ @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>();
+ if (numbers.isEmpty()) {
+ return results;
+ }
+
+ Map<String, Pair<String, UUID>> registered;
+ try {
+ registered = m.areUsersRegistered(new HashSet<>(numbers));
+ } catch (IOException e) {
+ throw new Error.Failure(e.getMessage());
+ }
+
+ return numbers.stream().map(number -> {
+ var uuid = registered.get(number).second();
+ return uuid != null;
+ }).collect(Collectors.toList());
+ }
+
+ @Override
+ public void updateProfile(
+ final String givenName,
+ final String familyName,
+ final String about,
+ final String aboutEmoji,
+ String avatarPath,
+ final boolean removeAvatar
+ ) {
+ try {
+ if (avatarPath.isEmpty()) {
+ avatarPath = null;
+ }
+ Optional<File> avatarFile = removeAvatar
+ ? Optional.absent()
+ : avatarPath == null ? null : Optional.of(new File(avatarPath));
+ m.setProfile(givenName, familyName, about, aboutEmoji, avatarFile);
+ } catch (IOException e) {
+ throw new Error.Failure(e.getMessage());
+ }
+ }
+