[guardian-dev] [PATCH 1/3] XMPP: Fix contact list loading.
Adrian-Ken Rueegsegger
ken at codelabs.ch
Sat Nov 20 17:23:48 EST 2010
Contacts which have no assigned group are put into the default group.
Signed-off-by: Adrian-Ken Rueegsegger <ken at codelabs.ch>
---
.../android/im/plugin/xmpp/XmppConnection.java | 17 +++++++++++++----
1 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/src/org/gitian/android/im/plugin/xmpp/XmppConnection.java b/src/org/gitian/android/im/plugin/xmpp/XmppConnection.java
index 3f06184..ab9a277 100755
--- a/src/org/gitian/android/im/plugin/xmpp/XmppConnection.java
+++ b/src/org/gitian/android/im/plugin/xmpp/XmppConnection.java
@@ -640,10 +640,8 @@ public class XmppConnection extends ImConnection {
Roster roster = mConnection.getRoster();
roster.setSubscriptionMode(Roster.SubscriptionMode.manual);
listenToRoster(roster);
- boolean haveGroup = false;
Set<String> seen = new HashSet<String>();
for (Iterator<RosterGroup> giter = roster.getGroups().iterator(); giter.hasNext();) {
- haveGroup = true;
RosterGroup group = giter.next();
Collection<Contact> contacts = new ArrayList<Contact>();
for (Iterator<RosterEntry> iter = group.getEntries().iterator(); iter.hasNext();) {
@@ -669,9 +667,20 @@ public class XmppConnection extends ImConnection {
notifyContactListLoaded(cl);
notifyContactsPresenceUpdated(contacts.toArray(new Contact[0]));
}
- if (!haveGroup) {
+ if (roster.getUnfiledEntryCount() > 0) {
roster.createGroup("Friends");
- ContactList cl = new ContactList(mUser.getAddress(), "Friends" , true, new ArrayList<Contact>(), this);
+ Collection<Contact> contacts = new ArrayList<Contact>();
+ for (Iterator<RosterEntry> iter = roster.getUnfiledEntries().iterator(); iter.hasNext();) {
+ RosterEntry entry = iter.next();
+ String address = parseAddressBase(entry.getUser());
+ String name = entry.getName();
+ if (name == null)
+ name = address;
+ XmppAddress xaddress = new XmppAddress(name, address);
+ Contact contact = new Contact(xaddress, name);
+ contacts.add(contact);
+ }
+ ContactList cl = new ContactList(mUser.getAddress(), "Friends" , true, contacts, this);
mDefaultContactList = cl;
notifyContactListLoaded(cl);
}
--
1.6.5
More information about the Guardian-dev
mailing list