support for purge and delete

This commit is contained in:
Daniel Gultsch 2019-09-28 02:44:00 +02:00
parent 95bf66ca7d
commit f26e0720c6
2 changed files with 16 additions and 5 deletions

View file

@ -258,13 +258,22 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
private void parseDeleteEvent(final Element event, final Jid from, final Account account) {
final Element delete = event.findChild("delete");
if (delete == null) {
return;
}
String node = delete.getAttribute("node");
final String node = delete == null ? null : delete.getAttribute("node");
if (Namespace.NICK.equals(node)) {
Log.d(Config.LOGTAG, "parsing nick delete event from " + from);
setNick(account, from, null);
} else if (Namespace.BOOKMARK.equals(node) && account.getJid().asBareJid().equals(from)) {
account.setBookmarks(Collections.emptyMap());
Log.d(Config.LOGTAG,account.getJid().asBareJid()+": deleted bookmarks node");
}
}
private void parsePurgeEvent(final Element event, final Jid from, final Account account) {
final Element purge = event.findChild("purge");
final String node = purge == null ? null : purge.getAttribute("node");
if (Namespace.BOOKMARK.equals(node) && account.getJid().asBareJid().equals(from)) {
account.setBookmarks(Collections.emptyMap());
Log.d(Config.LOGTAG,account.getJid().asBareJid()+": purged bookmarks");
}
}
@ -859,6 +868,8 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
parseEvent(event, original.getFrom(), account);
} else if (event.hasChild("delete")) {
parseDeleteEvent(event, original.getFrom(), account);
} else if (event.hasChild("purge")) {
parsePurgeEvent(event, original.getFrom(), account);
}
}

View file

@ -1880,7 +1880,7 @@ public class XmppConnection implements Runnable {
}
public boolean bookmarks2() {
return true; //hasDiscoFeature(account.getJid().asBareJid(), Namespace.BOOKMARK);
return hasDiscoFeature(account.getJid().asBareJid(), Namespace.BOOKMARK);
}
}
}