From 127981e3cbfca4b2bda85c93a0ad4877df0728a7 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Fri, 29 Jun 2018 22:52:50 +0200 Subject: do not include white listed domains in room list --- .../de/pixart/messenger/entities/MucOptions.java | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src/main/java/de/pixart/messenger/entities/MucOptions.java') diff --git a/src/main/java/de/pixart/messenger/entities/MucOptions.java b/src/main/java/de/pixart/messenger/entities/MucOptions.java index 39afe65a6..2ef23882f 100644 --- a/src/main/java/de/pixart/messenger/entities/MucOptions.java +++ b/src/main/java/de/pixart/messenger/entities/MucOptions.java @@ -306,6 +306,10 @@ public class MucOptions { } + public boolean isDomain() { + return realJid != null && realJid.getLocal() == null && role == Role.NONE; + } + @Override public int hashCode() { int result = role != null ? role.hashCode() : 0; @@ -609,17 +613,13 @@ public class MucOptions { public ArrayList getUsers(boolean includeOffline) { synchronized (users) { - if (includeOffline) { - return new ArrayList<>(users); - } else { - ArrayList onlineUsers = new ArrayList<>(); - for (User user : users) { - if (user.getRole().ranks(Role.PARTICIPANT)) { - onlineUsers.add(user); - } + ArrayList users = new ArrayList<>(); + for (User user : this.users) { + if (!user.isDomain() && (includeOffline || user.getRole().ranks(Role.PARTICIPANT))) { + users.add(user); } - return onlineUsers; } + return users; } } @@ -644,7 +644,7 @@ public class MucOptions { jids.add(account.getJid().asBareJid()); synchronized (users) { for(User user : users) { - if (user.getRealJid() == null || jids.add(user.getRealJid())) { + if (user.getRealJid() == null || (user.getRealJid().getLocal() != null && jids.add(user.getRealJid()))) { subset.add(user); } if (subset.size() >= max) { @@ -845,11 +845,11 @@ public class MucOptions { return this.conversation; } - public List getMembers() { + public List getMembers(final boolean includeDomains) { ArrayList members = new ArrayList<>(); synchronized (users) { for (User user : users) { - if (user.affiliation.ranks(Affiliation.MEMBER) && user.realJid != null) { + if (user.affiliation.ranks(Affiliation.MEMBER) && user.realJid != null && (!user.isDomain() || includeDomains)) { members.add(user.realJid); } } -- cgit v1.2.3