import org.whispersystems.signalservice.api.push.SignalServiceAddress;
-import java.util.HashSet;
import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
public abstract class GroupInfo {
@JsonIgnore
public Set<SignalServiceAddress> getMembersWithout(SignalServiceAddress address) {
- Set<SignalServiceAddress> members = new HashSet<>();
+ return getMembers().stream().filter(member -> !member.matches(address)).collect(Collectors.toSet());
+ }
+
+ @JsonIgnore
+ public Set<SignalServiceAddress> getMembersIncludingPendingWithout(SignalServiceAddress address) {
+ return Stream.concat(getMembers().stream(), getPendingMembers().stream())
+ .filter(member -> !member.matches(address))
+ .collect(Collectors.toSet());
+ }
+
+ @JsonIgnore
+ public boolean isMember(SignalServiceAddress address) {
for (SignalServiceAddress member : getMembers()) {
- if (!member.matches(address)) {
- members.add(member);
+ if (member.matches(address)) {
+ return true;
}
}
- return members;
+ return false;
}
@JsonIgnore
- public boolean isMember(SignalServiceAddress address) {
- for (SignalServiceAddress member : getMembers()) {
+ public boolean isPendingMember(SignalServiceAddress address) {
+ for (SignalServiceAddress member : getPendingMembers()) {
if (member.matches(address)) {
return true;
}