aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/parser/AbstractParser.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2016-11-15 22:53:27 +0100
committerChristian Schneppe <christian@pix-art.de>2016-11-15 22:53:27 +0100
commit120c1d903b670f1621d9eea8cdbe94e6ec002ef1 (patch)
tree1d6b789d348801701aa9da7c34cb9abdaed03e3d /src/main/java/de/pixart/messenger/parser/AbstractParser.java
parentfae03f7b0b4c9491fb7ce57e94ab8148fb580b0d (diff)
extract affiliations from unavailable presence
Diffstat (limited to 'src/main/java/de/pixart/messenger/parser/AbstractParser.java')
-rw-r--r--src/main/java/de/pixart/messenger/parser/AbstractParser.java17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/main/java/de/pixart/messenger/parser/AbstractParser.java b/src/main/java/de/pixart/messenger/parser/AbstractParser.java
index f67a00a76..3ad20783b 100644
--- a/src/main/java/de/pixart/messenger/parser/AbstractParser.java
+++ b/src/main/java/de/pixart/messenger/parser/AbstractParser.java
@@ -74,19 +74,24 @@ public abstract class AbstractParser {
}
public static MucOptions.User parseItem(Conversation conference, Element item) {
+ return parseItem(conference, item, null);
+ }
+
+ public static MucOptions.User parseItem(Conversation conference, Element item, Jid fullJid) {
final String local = conference.getJid().getLocalpart();
final String domain = conference.getJid().getDomainpart();
String affiliation = item.getAttribute("affiliation");
String role = item.getAttribute("role");
String nick = item.getAttribute("nick");
- Jid fullJid;
- try {
- fullJid = nick != null ? Jid.fromParts(local, domain, nick) : null;
- } catch (InvalidJidException e) {
- fullJid = null;
+ if (nick != null && fullJid == null) {
+ try {
+ fullJid = Jid.fromParts(local, domain, nick);
+ } catch (InvalidJidException e) {
+ fullJid = null;
+ }
}
Jid realJid = item.getAttributeAsJid("jid");
- MucOptions.User user = new MucOptions.User(conference.getMucOptions(), nick == null ? null : fullJid);
+ MucOptions.User user = new MucOptions.User(conference.getMucOptions(), fullJid);
user.setRealJid(realJid);
user.setAffiliation(affiliation);
user.setRole(role);