1package eu.siacs.conversations.xmpp.pep;
2
3import android.os.Bundle;
4
5import eu.siacs.conversations.xml.Element;
6import eu.siacs.conversations.xml.Namespace;
7import eu.siacs.conversations.xmpp.stanzas.IqPacket;
8
9public class PublishOptions {
10
11 private PublishOptions() {
12
13 }
14
15 public static Bundle openAccess() {
16 final Bundle options = new Bundle();
17 options.putString("pubsub#access_model", "open");
18 return options;
19 }
20
21 public static Bundle persistentWhitelistAccess() {
22 final Bundle options = new Bundle();
23 options.putString("pubsub#persist_items", "true");
24 options.putString("pubsub#access_model", "whitelist");
25 return options;
26 }
27
28 public static Bundle persistentWhitelistAccessMaxItems() {
29 final Bundle options = new Bundle();
30 options.putString("pubsub#persist_items", "true");
31 options.putString("pubsub#access_model", "whitelist");
32 options.putString("pubsub#send_last_published_item", "never");
33 options.putString("pubsub#max_items", "max");
34
35 options.putString("pubsub#notify_delete", "true");
36 options.putString("pubsub#notify_retract", "true"); //one could also set notify=true on the retract
37
38 return options;
39 }
40
41 public static boolean preconditionNotMet(IqPacket response) {
42 final Element error = response.getType() == IqPacket.TYPE.ERROR ? response.findChild("error") : null;
43 return error != null && error.hasChild("precondition-not-met", Namespace.PUBSUB_ERROR);
44 }
45
46}