diff options
Diffstat (limited to 'src/eu/siacs/conversations/xmpp')
-rw-r--r-- | src/eu/siacs/conversations/xmpp/OnBindListener.java | 7 | ||||
-rw-r--r-- | src/eu/siacs/conversations/xmpp/XmppConnection.java | 10 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/eu/siacs/conversations/xmpp/OnBindListener.java b/src/eu/siacs/conversations/xmpp/OnBindListener.java new file mode 100644 index 00000000..f09cf33d --- /dev/null +++ b/src/eu/siacs/conversations/xmpp/OnBindListener.java @@ -0,0 +1,7 @@ +package eu.siacs.conversations.xmpp; + +import eu.siacs.conversations.entities.Account; + +public interface OnBindListener { + public void onBind(Account account); +} diff --git a/src/eu/siacs/conversations/xmpp/XmppConnection.java b/src/eu/siacs/conversations/xmpp/XmppConnection.java index 4d5d0ec2..1f0f23a2 100644 --- a/src/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/eu/siacs/conversations/xmpp/XmppConnection.java @@ -86,7 +86,8 @@ public class XmppConnection implements Runnable { private OnIqPacketReceived unregisteredIqListener = null; private OnMessagePacketReceived messageListener = null; private OnStatusChanged statusListener = null; - private OnTLSExceptionReceived tlsListener; + private OnTLSExceptionReceived tlsListener = null; + private OnBindListener bindListener = null; public XmppConnection(Account account, PowerManager pm) { this.account = account; @@ -540,6 +541,9 @@ public class XmppConnection implements Runnable { String resource = packet.findChild("bind").findChild("jid") .getContent().split("/")[1]; account.setResource(resource); + if (bindListener !=null) { + bindListener.onBind(account); + } account.setStatus(Account.STATUS_ONLINE); if (streamFeatures.hasChild("sm")) { EnablePacket enable = new EnablePacket(); @@ -693,6 +697,10 @@ public class XmppConnection implements Runnable { public void setOnTLSExceptionReceivedListener(OnTLSExceptionReceived listener) { this.tlsListener = listener; } + + public void setOnBindListener(OnBindListener listener) { + this.bindListener = listener; + } public void disconnect(boolean force) { changeStatus(Account.STATUS_OFFLINE); |