aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/generator/IqGenerator.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2017-08-01 13:19:11 +0200
committerChristian Schneppe <christian@pix-art.de>2017-08-01 13:19:11 +0200
commitd7bc205420bc07578aee49087b3988429e22372b (patch)
tree990bd1205488b516c9c7862f7c617866d541daae /src/main/java/de/pixart/messenger/generator/IqGenerator.java
parent7e0d6f846030ce6632e0071bfa0a9301a2ff778d (diff)
use publish-options instead of always pushing node configuration
Diffstat (limited to 'src/main/java/de/pixart/messenger/generator/IqGenerator.java')
-rw-r--r--src/main/java/de/pixart/messenger/generator/IqGenerator.java18
1 files changed, 13 insertions, 5 deletions
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<Integer> ids) {
+ public IqPacket publishDeviceIds(final Set<Integer> 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<PreKeyRecord> preKeyRecords, final int deviceId) {
+ final Set<PreKeyRecord> 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) {