From 8d7727fcdc400dcd05babe4ec9b78fa0d1f56717 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sat, 26 Oct 2019 17:53:03 +0200 Subject: support for delete bookmarks2 --- .../messenger/generator/AbstractGenerator.java | 10 ++++++++-- .../de/pixart/messenger/generator/IqGenerator.java | 23 +++++++++++++++------- 2 files changed, 24 insertions(+), 9 deletions(-) (limited to 'src/main/java/de/pixart/messenger/generator') diff --git a/src/main/java/de/pixart/messenger/generator/AbstractGenerator.java b/src/main/java/de/pixart/messenger/generator/AbstractGenerator.java index 68a9ea213..545784586 100644 --- a/src/main/java/de/pixart/messenger/generator/AbstractGenerator.java +++ b/src/main/java/de/pixart/messenger/generator/AbstractGenerator.java @@ -19,6 +19,7 @@ import de.pixart.messenger.entities.Account; import de.pixart.messenger.services.XmppConnectionService; import de.pixart.messenger.utils.Namespace; import de.pixart.messenger.utils.PhoneHelper; +import de.pixart.messenger.xmpp.XmppConnection; import de.pixart.messenger.xmpp.jingle.stanzas.Content; public abstract class AbstractGenerator { @@ -38,7 +39,6 @@ public abstract class AbstractGenerator { "http://jabber.org/protocol/disco#info", "urn:xmpp:avatar:metadata+notify", Namespace.NICK + "+notify", - Namespace.BOOKMARK + "+notify", "urn:xmpp:ping", "jabber:iq:version", "http://jabber.org/protocol/chatstates" @@ -112,7 +112,8 @@ public abstract class AbstractGenerator { } public List getFeatures(Account account) { - ArrayList features = new ArrayList<>(Arrays.asList(FEATURES)); + final XmppConnection connection = account.getXmppConnection(); + final ArrayList features = new ArrayList<>(Arrays.asList(FEATURES)); if (mXmppConnectionService.confirmMessages()) { features.addAll(Arrays.asList(MESSAGE_CONFIRMATION_FEATURES)); } @@ -131,6 +132,11 @@ public abstract class AbstractGenerator { if (mXmppConnectionService.broadcastLastActivity()) { features.add(Namespace.IDLE); } + if (connection != null && connection.getFeatures().bookmarks2()) { + features.add(Namespace.BOOKMARK + "+notify"); + } else { + features.add(Namespace.BOOKMARKS + "+notify"); + } Collections.sort(features); return features; } diff --git a/src/main/java/de/pixart/messenger/generator/IqGenerator.java b/src/main/java/de/pixart/messenger/generator/IqGenerator.java index 812ffcb9e..bb6355688 100644 --- a/src/main/java/de/pixart/messenger/generator/IqGenerator.java +++ b/src/main/java/de/pixart/messenger/generator/IqGenerator.java @@ -58,12 +58,6 @@ public class IqGenerator extends AbstractGenerator { return packet; } - public IqPacket purgeOfflineMessages() { - final IqPacket packet = new IqPacket(IqPacket.TYPE.SET); - packet.addChild("offline", Namespace.FLEXIBLE_OFFLINE_MESSAGE_RETRIEVAL).addChild("purge"); - return packet; - } - public IqPacket versionResponse(final IqPacket request) { final IqPacket packet = request.generateResponse(IqPacket.TYPE.RESULT); Element query = packet.query("jabber:iq:version"); @@ -97,6 +91,12 @@ public class IqGenerator extends AbstractGenerator { return packet; } + public IqPacket purgeOfflineMessages() { + final IqPacket packet = new IqPacket(IqPacket.TYPE.SET); + packet.addChild("offline", Namespace.FLEXIBLE_OFFLINE_MESSAGE_RETRIEVAL).addChild("purge"); + return packet; + } + protected IqPacket publish(final String node, final Element item, final Bundle options) { final IqPacket packet = new IqPacket(IqPacket.TYPE.SET); final Element pubsub = packet.addChild("pubsub", Namespace.PUBSUB); @@ -142,6 +142,15 @@ public class IqGenerator extends AbstractGenerator { return packet; } + public IqPacket deleteItem(final String node, final String id) { + IqPacket packet = new IqPacket(IqPacket.TYPE.SET); + final Element pubsub = packet.addChild("pubsub", Namespace.PUBSUB); + final Element retract = pubsub.addChild("retract"); + retract.setAttribute("node", node); + retract.addChild("item").setAttribute("id", id); + return packet; + } + public IqPacket publishAvatar(Avatar avatar, Bundle options) { final Element item = new Element("item"); item.setAttribute("id", avatar.sha1sum); @@ -565,4 +574,4 @@ public class IqGenerator extends AbstractGenerator { } return packet; } -} +} \ No newline at end of file -- cgit v1.2.3