From 4054f6b85be3ca8482bf2f63de7cc82fdfab1ba9 Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Fri, 4 Nov 2011 15:20:41 +0000 Subject: [PATCH] Fixes some issues with jabber statuses and priority of resources. --- ...rationSetPersistentPresenceJabberImpl.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetPersistentPresenceJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetPersistentPresenceJabberImpl.java index 717211046..7a7d9663d 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetPersistentPresenceJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetPersistentPresenceJabberImpl.java @@ -946,7 +946,9 @@ void firePresenceStatusChanged(Presence presence) logger.debug("Received a status update for buddy=" + userID); // all contact statuses that are received from all its resources - // ordered by priority + // ordered by priority(higher first) and those with equal + // priorities order with the one that is most connected as + // first TreeSet userStats = statuses.get(userID); if(userStats == null) { @@ -954,22 +956,17 @@ void firePresenceStatusChanged(Presence presence) { public int compare(Presence o1, Presence o2) { - int res = o1.getPriority() - o2.getPriority(); + int res = o2.getPriority() - o1.getPriority(); // if statuses are with same priorities // return which one is more available // counts the JabberStatusEnum order if(res == 0) { - res = - jabberStatusToPresenceStatus( - o1, - parentProvider) - .getStatus() - - jabberStatusToPresenceStatus( - o2, - parentProvider) - .getStatus(); + res = jabberStatusToPresenceStatus( + o2, parentProvider).getStatus() + - jabberStatusToPresenceStatus( + o1, parentProvider).getStatus(); } return res;