From 9cf32899bacdc7f0ec07a8db2ecb3d743adeeaac Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Thu, 21 Jun 2012 08:45:03 +0000 Subject: [PATCH] Sends status message with unavailable presence when logging off, this way the status will be available and when offline. --- .../ProtocolProviderServiceJabberImpl.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java index f306b8544..6352de04b 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java @@ -1353,7 +1353,22 @@ private void disconnectAndCleanConnection() // that maybe added even if its not connected try { - connection.disconnect(); + OperationSetPersistentPresenceJabberImpl opSet = + (OperationSetPersistentPresenceJabberImpl) + this.getOperationSet(OperationSetPersistentPresence.class); + + Presence unavailablePresence = + new Presence(Presence.Type.unavailable); + + if(opSet != null + && !net.java.sip.communicator.util.StringUtils + .isNullOrEmpty(opSet.getCurrentStatusMessage())) + { + unavailablePresence.setStatus( + opSet.getCurrentStatusMessage()); + } + + connection.disconnect(unavailablePresence); } catch (Exception e) {}