From d7bc205420bc07578aee49087b3988429e22372b Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Tue, 1 Aug 2017 13:19:11 +0200 Subject: use publish-options instead of always pushing node configuration --- .../de/pixart/messenger/generator/IqGenerator.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'src/main/java/de/pixart/messenger/generator') diff --git a/src/main/java/de/pixart/messenger/generator/IqGenerator.java b/src/main/java/de/pixart/messenger/generator/IqGenerator.java index 2e6d53402..f1c59e1c4 100644 --- a/src/main/java/de/pixart/messenger/generator/IqGenerator.java +++ b/src/main/java/de/pixart/messenger/generator/IqGenerator.java @@ -91,16 +91,24 @@ public class IqGenerator extends AbstractGenerator { return packet; } - protected IqPacket publish(final String node, final Element item) { + 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", "http://jabber.org/protocol/pubsub"); final Element publish = pubsub.addChild("publish"); publish.setAttribute("node", node); publish.addChild(item); + if (options != null) { + final Element publishOptions = pubsub.addChild("publish-options"); + publishOptions.addChild(Data.create(Namespace.PUBSUB_PUBLISH_OPTIONS, options)); + } return packet; } + protected IqPacket publish(final String node, final Element item) { + return publish(node, item, null); + } + protected IqPacket retrieve(String node, Element item) { final IqPacket packet = new IqPacket(IqPacket.TYPE.GET); final Element pubsub = packet.addChild("pubsub", @@ -184,7 +192,7 @@ public class IqGenerator extends AbstractGenerator { return packet; } - public IqPacket publishDeviceIds(final Set ids) { + public IqPacket publishDeviceIds(final Set ids, final Bundle publishOptions) { final Element item = new Element("item"); final Element list = item.addChild("list", AxolotlService.PEP_PREFIX); for (Integer id : ids) { @@ -192,11 +200,11 @@ public class IqGenerator extends AbstractGenerator { device.setAttribute("id", id); list.addChild(device); } - return publish(AxolotlService.PEP_DEVICE_LIST, item); + return publish(AxolotlService.PEP_DEVICE_LIST, item, publishOptions); } public IqPacket publishBundles(final SignedPreKeyRecord signedPreKeyRecord, final IdentityKey identityKey, - final Set preKeyRecords, final int deviceId) { + final Set preKeyRecords, final int deviceId, Bundle publishOptions) { final Element item = new Element("item"); final Element bundle = item.addChild("bundle", AxolotlService.PEP_PREFIX); final Element signedPreKeyPublic = bundle.addChild("signedPreKeyPublic"); @@ -215,7 +223,7 @@ public class IqGenerator extends AbstractGenerator { prekey.setContent(Base64.encodeToString(preKeyRecord.getKeyPair().getPublicKey().serialize(), Base64.DEFAULT)); } - return publish(AxolotlService.PEP_BUNDLES + ":" + deviceId, item); + return publish(AxolotlService.PEP_BUNDLES + ":" + deviceId, item, publishOptions); } public IqPacket publishVerification(byte[] signature, X509Certificate[] certificates, final int deviceId) { -- cgit v1.2.3