diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientUtil.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientUtil.java index a97b0b1f68..ab592705e1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientUtil.java @@ -37,6 +37,7 @@ import java.util.Collection; import java.util.List; import java.util.Optional; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; public class RecipientUtil { @@ -82,21 +83,21 @@ public class RecipientUtil { } } - public static @NonNull List toSignalServiceAddresses(@NonNull Context context, @NonNull List recipients) - throws IOException - { - return toSignalServiceAddressesFromResolved(context, Recipient.resolvedList(recipients)); - } - public static @NonNull List toSignalServiceAddressesFromResolved(@NonNull Context context, @NonNull List recipients) throws IOException { ensureUuidsAreAvailable(context, recipients); - return Stream.of(recipients) - .map(it -> it.live().resolve()) - .map(r -> new SignalServiceAddress(r.requireServiceId(), r.getE164().orElse(null))) - .toList(); + List latestRecipients = recipients.stream().map(it -> it.live().resolve()).collect(Collectors.toList()); + + if (latestRecipients.stream().anyMatch(it -> !it.getHasServiceId())) { + throw new NotFoundException("1 or more recipients are not registered!"); + } + + return latestRecipients + .stream() + .map(r -> new SignalServiceAddress(r.requireServiceId(), r.getE164().orElse(null))) + .collect(Collectors.toList()); } /**