diff options
author | Damian Minkov <damencho@jitsi.org> | 2011-12-28 16:39:07 +0000 |
---|---|---|
committer | Damian Minkov <damencho@jitsi.org> | 2011-12-28 16:39:07 +0000 |
commit | 67a97b2e16fe7e4417bb6b7bf4d5457e4161aaee (patch) | |
tree | 65d6eab3a42d4feddfcc37394e2c23f88393712d | |
parent | 969ddcc27051af25fcde70d7f24a71cd342c6961 (diff) | |
download | jitsi-67a97b2e16fe7e4417bb6b7bf4d5457e4161aaee.zip jitsi-67a97b2e16fe7e4417bb6b7bf4d5457e4161aaee.tar.gz jitsi-67a97b2e16fe7e4417bb6b7bf4d5457e4161aaee.tar.bz2 |
Fixes problem with stored groups which are marked as non persistent.
4 files changed, 28 insertions, 10 deletions
diff --git a/src/net/java/sip/communicator/impl/protocol/icq/ContactGroupIcqImpl.java b/src/net/java/sip/communicator/impl/protocol/icq/ContactGroupIcqImpl.java index b428763..faee22f 100644 --- a/src/net/java/sip/communicator/impl/protocol/icq/ContactGroupIcqImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/icq/ContactGroupIcqImpl.java @@ -59,6 +59,11 @@ public class ContactGroupIcqImpl private ServerStoredContactListIcqImpl ssclCallback = null; /** + * Whether current group is persistent. + */ + private boolean isPersistent; + + /** * Creates an ICQ group using the specified <tt>joustSimGroup</tt> as * a source. The newly created group will always return the name of the * underlying joustSimGroup and would thus automatically adapt to changes. @@ -81,10 +86,12 @@ public class ContactGroupIcqImpl ContactGroupIcqImpl(MutableGroup joustSimGroup, Iterable<? extends Buddy> groupMembers, ServerStoredContactListIcqImpl ssclCallback, - boolean isResolved) + boolean isResolved, + boolean isPersistent) { this.joustSimSourceGroup = joustSimGroup; this.isResolved = isResolved; + this.isPersistent = isPersistent; this.ssclCallback = ssclCallback; //store a copy of the name now so that we can detect changes in the @@ -420,7 +427,7 @@ public class ContactGroupIcqImpl */ public boolean isPersistent() { - return !(joustSimSourceGroup instanceof VolatileGroup); + return isPersistent; } /** @@ -459,6 +466,7 @@ public class ContactGroupIcqImpl void setResolved(boolean resolved) { this.isResolved = resolved; + this.isPersistent = true; } /** diff --git a/src/net/java/sip/communicator/impl/protocol/icq/ServerStoredContactListIcqImpl.java b/src/net/java/sip/communicator/impl/protocol/icq/ServerStoredContactListIcqImpl.java index 2d63c21..f55fb93 100644 --- a/src/net/java/sip/communicator/impl/protocol/icq/ServerStoredContactListIcqImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/icq/ServerStoredContactListIcqImpl.java @@ -511,7 +511,7 @@ public class ServerStoredContactListIcqImpl { List<Buddy> emptyBuddies = new LinkedList<Buddy>(); theVolatileGroup = new ContactGroupIcqImpl( - new VolatileGroup(), emptyBuddies, this, false); + new VolatileGroup(), emptyBuddies, this, false, false); theVolatileGroup.addContact(newVolatileContact); this.rootGroup.addSubGroup(theVolatileGroup); @@ -575,7 +575,7 @@ public class ServerStoredContactListIcqImpl //First create the new volatile contact; List<Buddy> emptyBuddies = new LinkedList<Buddy>(); ContactGroupIcqImpl newUnresolvedGroup = new ContactGroupIcqImpl( - new VolatileGroup(groupName), emptyBuddies, this, false); + new VolatileGroup(groupName), emptyBuddies, this, false, true); this.rootGroup.addSubGroup(newUnresolvedGroup); @@ -816,7 +816,7 @@ public class ServerStoredContactListIcqImpl newGroup = new ContactGroupIcqImpl( (MutableGroup) group , buddies - , ServerStoredContactListIcqImpl.this, true); + , ServerStoredContactListIcqImpl.this, true, true); //this is the first group so insert at 0. rootGroup.addSubGroup(newGroup); diff --git a/src/net/java/sip/communicator/impl/protocol/msn/ContactGroupMsnImpl.java b/src/net/java/sip/communicator/impl/protocol/msn/ContactGroupMsnImpl.java index 4112214..519d1d5 100644 --- a/src/net/java/sip/communicator/impl/protocol/msn/ContactGroupMsnImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/msn/ContactGroupMsnImpl.java @@ -57,6 +57,11 @@ public class ContactGroupMsnImpl private final ServerStoredContactListMsnImpl ssclCallback; /** + * Whether this group is persistent. + */ + private boolean isPersistent; + + /** * Creates an Msn group using the specified <tt>RosterGroup</tt> as * a source. The newly created group will always return the name of the * underlying RosterGroup and would thus automatically adapt to changes. @@ -75,10 +80,12 @@ public class ContactGroupMsnImpl ContactGroupMsnImpl(MsnGroup msnGroup, MsnContact[] groupMembers, ServerStoredContactListMsnImpl ssclCallback, - boolean isResolved) + boolean isResolved, + boolean isPersistent) { this.msnGroup = msnGroup; this.isResolved = isResolved; + this.isPersistent = isPersistent; this.ssclCallback = ssclCallback; for (MsnContact groupMember : groupMembers) @@ -320,7 +327,7 @@ public class ContactGroupMsnImpl */ public boolean isPersistent() { - return !(msnGroup instanceof VolatileGroup); + return isPersistent; } /** @@ -359,6 +366,7 @@ public class ContactGroupMsnImpl return; this.isResolved = true; + this.isPersistent = true; this.msnGroup = msnGroup; diff --git a/src/net/java/sip/communicator/impl/protocol/msn/ServerStoredContactListMsnImpl.java b/src/net/java/sip/communicator/impl/protocol/msn/ServerStoredContactListMsnImpl.java index 8987e3a..59fe6f2 100644 --- a/src/net/java/sip/communicator/impl/protocol/msn/ServerStoredContactListMsnImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/msn/ServerStoredContactListMsnImpl.java @@ -454,7 +454,7 @@ public class ServerStoredContactListMsnImpl MsnContact[] emptyBuddies = new MsnContact[]{}; theVolatileGroup = new ContactGroupMsnImpl( - new VolatileGroup(), emptyBuddies, this, false); + new VolatileGroup(), emptyBuddies, this, false, false); theVolatileGroup.addContact(newVolatileContact); this.rootGroup.addSubGroup(theVolatileGroup); @@ -521,7 +521,7 @@ public class ServerStoredContactListMsnImpl //First create the new volatile contact; MsnContact[] emptyBuddies = new MsnContact[]{}; ContactGroupMsnImpl newUnresolvedGroup = new ContactGroupMsnImpl( - new VolatileGroup(groupName), emptyBuddies, this, false); + new VolatileGroup(groupName), emptyBuddies, this, false, true); this.rootGroup.addSubGroup(newUnresolvedGroup); @@ -627,7 +627,7 @@ public class ServerStoredContactListMsnImpl */ public void renameGroup(ContactGroupMsnImpl groupToRename, String newName) { - printList(); + //printList(); msnProvider.getMessenger(). renameGroup(groupToRename.getSourceGroup().getGroupId(), newName); } @@ -892,6 +892,7 @@ public class ServerStoredContactListMsnImpl item, item.getContacts(), ServerStoredContactListMsnImpl.this, + true, true); rootGroup.addSubGroup(newGroup); @@ -1094,6 +1095,7 @@ public class ServerStoredContactListMsnImpl new ContactGroupMsnImpl(group, new MsnContact[]{}, ServerStoredContactListMsnImpl.this, + true, true); rootGroup.addSubGroup(newGroup); |