aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamian Minkov <damencho@jitsi.org>2011-12-28 16:39:07 +0000
committerDamian Minkov <damencho@jitsi.org>2011-12-28 16:39:07 +0000
commit67a97b2e16fe7e4417bb6b7bf4d5457e4161aaee (patch)
tree65d6eab3a42d4feddfcc37394e2c23f88393712d
parent969ddcc27051af25fcde70d7f24a71cd342c6961 (diff)
downloadjitsi-67a97b2e16fe7e4417bb6b7bf4d5457e4161aaee.zip
jitsi-67a97b2e16fe7e4417bb6b7bf4d5457e4161aaee.tar.gz
jitsi-67a97b2e16fe7e4417bb6b7bf4d5457e4161aaee.tar.bz2
Fixes problem with stored groups which are marked as non persistent.
-rw-r--r--src/net/java/sip/communicator/impl/protocol/icq/ContactGroupIcqImpl.java12
-rw-r--r--src/net/java/sip/communicator/impl/protocol/icq/ServerStoredContactListIcqImpl.java6
-rw-r--r--src/net/java/sip/communicator/impl/protocol/msn/ContactGroupMsnImpl.java12
-rw-r--r--src/net/java/sip/communicator/impl/protocol/msn/ServerStoredContactListMsnImpl.java8
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);