From 33007de3fccdbe547ef303159601c30f5e31eb9b Mon Sep 17 00:00:00 2001 From: Yana Stamcheva Date: Fri, 11 Jun 2010 11:56:40 +0000 Subject: [PATCH] Checks if a contact is already added in the contact list before adding it after a metaContactAdded or metaContactGroupAdded event. --- .../gui/main/contactlist/TreeContactList.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java index 5fb4977c0..847fdb9f5 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java @@ -186,8 +186,14 @@ public void metaContactAdded(final MetaContactEvent evt) final MetaContact metaContact = evt.getSourceMetaContact(); final MetaContactGroup parentGroup = evt.getParentGroup(); - UIContact uiContact - = MetaContactListSource.createUIContact(metaContact); + UIContact uiContact = MetaContactListSource.getUIContact(metaContact); + + // If there's already an UIContact for this meta contact, we have + // nothing to do here. + if (uiContact != null) + return; + + uiContact = MetaContactListSource.createUIContact(metaContact); if (currentFilter.isMatching(uiContact)) { @@ -217,8 +223,14 @@ public void metaContactGroupAdded(MetaContactGroupEvent evt) { final MetaContactGroup metaGroup = evt.getSourceMetaContactGroup(); - UIGroup uiGroup - = MetaContactListSource.createUIGroup(metaGroup); + UIGroup uiGroup = MetaContactListSource.getUIGroup(metaGroup); + + // If there's already an UIGroup for this meta contact, we have + // nothing to do here. + if (uiGroup != null) + return; + + uiGroup = MetaContactListSource.createUIGroup(metaGroup); if (currentFilter.isMatching(uiGroup)) addGroup(uiGroup, true);