From 99935dd630b59d6cff05714c888b01e4c88c6351 Mon Sep 17 00:00:00 2001 From: iNPUTmice Date: Sat, 12 Jul 2014 03:44:23 +0200 Subject: moved most of the message/presence generation into seperate classes --- .../conversations/generator/MessageGenerator.java | 24 +++++++++- .../conversations/generator/PresenceGenerator.java | 51 ++++++++++++++++++++++ 2 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 src/eu/siacs/conversations/generator/PresenceGenerator.java (limited to 'src/eu/siacs/conversations/generator') diff --git a/src/eu/siacs/conversations/generator/MessageGenerator.java b/src/eu/siacs/conversations/generator/MessageGenerator.java index 28504b211..756a8738a 100644 --- a/src/eu/siacs/conversations/generator/MessageGenerator.java +++ b/src/eu/siacs/conversations/generator/MessageGenerator.java @@ -42,7 +42,7 @@ public class MessageGenerator { delay.setAttribute("stamp", mDateFormat.format(date)); } - public MessagePacket generateOtrChat(Message message) throws OtrException { + public MessagePacket generateOtrChat(Message message) { return generateOtrChat(message, false); } @@ -106,4 +106,26 @@ public class MessageGenerator { packet.setType(MessagePacket.TYPE_ERROR); return packet; } + + public MessagePacket confirm(Account account, String to, String id) { + MessagePacket packet = new MessagePacket(); + packet.setType(MessagePacket.TYPE_NORMAL); + packet.setTo(to); + packet.setFrom(account.getFullJid()); + Element received = packet.addChild("displayed", + "urn:xmpp:chat-markers:0"); + received.setAttribute("id", id); + return packet; + } + + public MessagePacket conversationSubject(Conversation conversation,String subject) { + MessagePacket packet = new MessagePacket(); + packet.setType(MessagePacket.TYPE_GROUPCHAT); + packet.setTo(conversation.getContactJid().split("/")[0]); + Element subjectChild = new Element("subject"); + subjectChild.setContent(subject); + packet.addChild(subjectChild); + packet.setFrom(conversation.getAccount().getJid()); + return packet; + } } diff --git a/src/eu/siacs/conversations/generator/PresenceGenerator.java b/src/eu/siacs/conversations/generator/PresenceGenerator.java new file mode 100644 index 000000000..1ca8cd05b --- /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 -- cgit v1.2.3