aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/siacs/conversations/generator/PresenceGenerator.java
diff options
context:
space:
mode:
authoriNPUTmice <daniel@gultsch.de>2014-07-12 03:44:23 +0200
committeriNPUTmice <daniel@gultsch.de>2014-07-12 03:44:23 +0200
commit99935dd630b59d6cff05714c888b01e4c88c6351 (patch)
treee84968da60ea8bc8f117bed39cf430259f9958aa /src/eu/siacs/conversations/generator/PresenceGenerator.java
parent789383e5cb900baf55595e91f47f6d3ab4cec75e (diff)
moved most of the message/presence generation into seperate classes
Diffstat (limited to 'src/eu/siacs/conversations/generator/PresenceGenerator.java')
-rw-r--r--src/eu/siacs/conversations/generator/PresenceGenerator.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/eu/siacs/conversations/generator/PresenceGenerator.java b/src/eu/siacs/conversations/generator/PresenceGenerator.java
new file mode 100644
index 00000000..1ca8cd05
--- /dev/null
+++ b/src/eu/siacs/conversations/generator/PresenceGenerator.java
@@ -0,0 +1,51 @@
+package eu.siacs.conversations.generator;
+
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.xmpp.stanzas.PresencePacket;
+
+public class PresenceGenerator {
+
+ public PresencePacket requestPresenceUpdatesFrom(Contact contact) {
+ PresencePacket packet = new PresencePacket();
+ packet.setAttribute("type", "subscribe");
+ packet.setAttribute("to", contact.getJid());
+ packet.setAttribute("from", contact.getAccount().getJid());
+ return packet;
+ }
+
+ public PresencePacket stopPresenceUpdatesFrom(Contact contact) {
+ PresencePacket packet = new PresencePacket();
+ packet.setAttribute("type", "unsubscribe");
+ packet.setAttribute("to", contact.getJid());
+ packet.setAttribute("from", contact.getAccount().getJid());
+ return packet;
+ }
+
+ public PresencePacket stopPresenceUpdatesTo(Contact contact) {
+ PresencePacket packet = new PresencePacket();
+ packet.setAttribute("type", "unsubscribed");
+ packet.setAttribute("to", contact.getJid());
+ packet.setAttribute("from", contact.getAccount().getJid());
+ return packet;
+ }
+
+ public PresencePacket sendPresenceUpdatesTo(Contact contact) {
+ PresencePacket packet = new PresencePacket();
+ packet.setAttribute("type", "subscribed");
+ packet.setAttribute("to", contact.getJid());
+ packet.setAttribute("from", contact.getAccount().getJid());
+ return packet;
+ }
+
+ public PresencePacket sendPresence(Account account) {
+ PresencePacket packet = new PresencePacket();
+ packet.setAttribute("from", account.getFullJid());
+ String sig = account.getPgpSignature();
+ if (sig != null) {
+ packet.addChild("status").setContent("online");
+ packet.addChild("x", "jabber:x:signed").setContent(sig);
+ }
+ return packet;
+ }
+} \ No newline at end of file