fetch new conference configuration on every conf update
This commit is contained in:
parent
9efef24a04
commit
f3ef8d4978
|
@ -127,7 +127,6 @@ public class MucOptions {
|
||||||
UNKNOWN
|
UNKNOWN
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final String STATUS_CODE_ROOM_CONFIG_CHANGED = "104";
|
|
||||||
public static final String STATUS_CODE_SELF_PRESENCE = "110";
|
public static final String STATUS_CODE_SELF_PRESENCE = "110";
|
||||||
public static final String STATUS_CODE_ROOM_CREATED = "201";
|
public static final String STATUS_CODE_ROOM_CREATED = "201";
|
||||||
public static final String STATUS_CODE_BANNED = "301";
|
public static final String STATUS_CODE_BANNED = "301";
|
||||||
|
|
|
@ -587,26 +587,27 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (conversation != null && mucUserElement != null && from.isBareJid()) {
|
if (conversation != null && mucUserElement != null && from.isBareJid()) {
|
||||||
if (mucUserElement.hasChild("status")) {
|
for (Element child : mucUserElement.getChildren()) {
|
||||||
for (Element child : mucUserElement.getChildren()) {
|
if ("status".equals(child.getName())) {
|
||||||
if (child.getName().equals("status")
|
try {
|
||||||
&& MucOptions.STATUS_CODE_ROOM_CONFIG_CHANGED.equals(child.getAttribute("code"))) {
|
int code = Integer.parseInt(child.getAttribute("code"));
|
||||||
mXmppConnectionService.fetchConferenceConfiguration(conversation);
|
if ((code >= 170 && code <= 174) || (code >= 102 && code <= 104)) {
|
||||||
}
|
mXmppConnectionService.fetchConferenceConfiguration(conversation);
|
||||||
}
|
break;
|
||||||
} else if (mucUserElement.hasChild("item")) {
|
|
||||||
for(Element child : mucUserElement.getChildren()) {
|
|
||||||
if ("item".equals(child.getName())) {
|
|
||||||
MucOptions.User user = AbstractParser.parseItem(conversation,child);
|
|
||||||
Log.d(Config.LOGTAG,account.getJid()+": changing affiliation for "
|
|
||||||
+user.getRealJid()+" to "+user.getAffiliation()+" in "
|
|
||||||
+conversation.getJid().toBareJid());
|
|
||||||
if (!user.realJidMatchesAccount()) {
|
|
||||||
conversation.getMucOptions().addUser(user);
|
|
||||||
mXmppConnectionService.getAvatarService().clear(conversation);
|
|
||||||
mXmppConnectionService.updateMucRosterUi();
|
|
||||||
mXmppConnectionService.updateConversationUi();
|
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
//ignored
|
||||||
|
}
|
||||||
|
} else if ("item".equals(child.getName())) {
|
||||||
|
MucOptions.User user = AbstractParser.parseItem(conversation,child);
|
||||||
|
Log.d(Config.LOGTAG,account.getJid()+": changing affiliation for "
|
||||||
|
+user.getRealJid()+" to "+user.getAffiliation()+" in "
|
||||||
|
+conversation.getJid().toBareJid());
|
||||||
|
if (!user.realJidMatchesAccount()) {
|
||||||
|
conversation.getMucOptions().addUser(user);
|
||||||
|
mXmppConnectionService.getAvatarService().clear(conversation);
|
||||||
|
mXmppConnectionService.updateMucRosterUi();
|
||||||
|
mXmppConnectionService.updateConversationUi();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue