diff --git a/src/main/java/eu/siacs/conversations/entities/MucOptions.java b/src/main/java/eu/siacs/conversations/entities/MucOptions.java index 38e97957a29d706b5817bfaa3312c6f090697f49..0f6580005da1e6fe8e261b20b572026285c27958 100644 --- a/src/main/java/eu/siacs/conversations/entities/MucOptions.java +++ b/src/main/java/eu/siacs/conversations/entities/MucOptions.java @@ -18,6 +18,7 @@ import eu.siacs.conversations.xmpp.forms.Field; import eu.siacs.conversations.xmpp.pep.Avatar; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -192,6 +193,11 @@ public class MucOptions { } } + public boolean allowPmRaw() { + final Field field = getRoomInfoForm().getFieldByName("muc#roomconfig_allowpm"); + return field == null || Arrays.asList("anyone","participants").contains(field.getValue()); + } + public boolean participating() { return self.getRole().ranks(Role.PARTICIPANT) || !moderated(); } diff --git a/src/main/java/eu/siacs/conversations/ui/util/MucConfiguration.java b/src/main/java/eu/siacs/conversations/ui/util/MucConfiguration.java index 1b6c4e6d6ee391e91147c013c421b65fda20e5fd..f46b9ea28119c82e23d0346888730b0553e2ca84 100644 --- a/src/main/java/eu/siacs/conversations/ui/util/MucConfiguration.java +++ b/src/main/java/eu/siacs/conversations/ui/util/MucConfiguration.java @@ -57,7 +57,7 @@ public class MucConfiguration { mucOptions.nonanonymous(), mucOptions.participantsCanChangeSubject(), mucOptions.moderated(), - mucOptions.allowPm() + mucOptions.allowPmRaw() }; options = new Option[] {