diff options
Diffstat (limited to 'src/de/gultsch/chat/xmpp')
-rw-r--r-- | src/de/gultsch/chat/xmpp/MessagePacket.java | 32 | ||||
-rw-r--r-- | src/de/gultsch/chat/xmpp/XmppConnection.java | 13 |
2 files changed, 45 insertions, 0 deletions
diff --git a/src/de/gultsch/chat/xmpp/MessagePacket.java b/src/de/gultsch/chat/xmpp/MessagePacket.java index 313fb355..de486a5d 100644 --- a/src/de/gultsch/chat/xmpp/MessagePacket.java +++ b/src/de/gultsch/chat/xmpp/MessagePacket.java @@ -3,6 +3,8 @@ package de.gultsch.chat.xmpp; import de.gultsch.chat.xml.Element; public class MessagePacket extends Element { + public static final int TYPE_CHAT = 0; + private MessagePacket(String name) { super(name); } @@ -10,6 +12,10 @@ public class MessagePacket extends Element { public MessagePacket() { super("message"); } + + public String getTo() { + return getAttribute("to"); + } public String getFrom() { return getAttribute("from"); @@ -18,4 +24,30 @@ public class MessagePacket extends Element { public String getBody() { return this.findChild("body").getContent(); } + + public void setTo(String to) { + setAttribute("to", to); + } + + public void setFrom(String from) { + setAttribute("from",from); + } + + public void setBody(String text) { + Element body = new Element("body"); + body.setContent(text); + this.children.add(body); + } + + public void setType(int type) { + switch (type) { + case TYPE_CHAT: + this.setAttribute("type","chat"); + break; + + default: + this.setAttribute("type","chat"); + break; + } + } } diff --git a/src/de/gultsch/chat/xmpp/XmppConnection.java b/src/de/gultsch/chat/xmpp/XmppConnection.java index 441e4b2d..f82c401e 100644 --- a/src/de/gultsch/chat/xmpp/XmppConnection.java +++ b/src/de/gultsch/chat/xmpp/XmppConnection.java @@ -52,6 +52,8 @@ public class XmppConnection implements Runnable { private OnPresencePacketReceived presenceListener = null; private OnIqPacketReceived unregisteredIqListener = null; private OnMessagePacketReceived messageListener = null; + + private String resource = null; public XmppConnection(Account account, PowerManager pm) { this.account = account; @@ -96,6 +98,12 @@ public class XmppConnection implements Runnable { public void run() { while(shouldReConnect) { connect(); + try { + Thread.sleep(30000); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } } @@ -260,7 +268,9 @@ public class XmppConnection implements Runnable { this.sendIqPacket(iq, new OnIqPacketReceived() { @Override public void onIqPacketReceived(Account account, IqPacket packet) { + resource = packet.findChild("bind").findChild("jid").getContent().split("/")[1]; Log.d(LOGTAG,"answer for our bind was: "+packet.toString()); + Log.d(LOGTAG,"new resource is "+resource); } }); } @@ -291,15 +301,18 @@ public class XmppConnection implements Runnable { if (callback != null) { iqPacketCallbacks.put(id, callback); } + tagWriter.flush(); Log.d(LOGTAG,"sending: "+packet.toString()); } public void sendMessagePacket(MessagePacket packet) throws IOException { tagWriter.writeElement(packet); + tagWriter.flush(); } public void sendPresencePacket(PresencePacket packet) throws IOException { tagWriter.writeElement(packet); + tagWriter.flush(); } public void setOnMessagePacketReceivedListener(OnMessagePacketReceived listener) { |