Fix a bug with tabs not sorted alphabetically.
authorDa Risk <da_risk@beem-project.com>
Mon, 23 Apr 2012 00:14:18 +0200
changeset 997 2d28cb82891b
parent 996 8f2689fb8488
child 998 d8305c375b10
Fix a bug with tabs not sorted alphabetically.
src/com/beem/project/beem/ui/ContactList.java
--- a/src/com/beem/project/beem/ui/ContactList.java	Sun Apr 22 23:14:36 2012 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java	Mon Apr 23 00:14:18 2012 +0200
@@ -46,6 +46,7 @@
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
+import java.util.ListIterator;
 import java.util.Map;
 
 import android.app.Dialog;
@@ -94,7 +95,6 @@
 
 import org.jivesoftware.smack.util.StringUtils;
 
-
 /**
  * The contact list activity displays the roster of the user.
  */
@@ -251,9 +251,22 @@
 	    if (contactListAdapter == null) {
 		contactListAdapter = new ContactListAdapter(ContactList.this);
 		contactListAdapters.put(group, contactListAdapter);
+		List<GroupHolder> realGroups = mListGroup.subList(1, mListGroup.size() - 1);
 		if (!GroupHolder.contains(mListGroup, group)) {
 		    GroupHolder gh = new GroupHolder(group);
-		    mListGroup.add(mListGroup.size() - 1, gh);
+		    boolean added = false;
+		    // insert group in sorted list
+		    for (ListIterator<GroupHolder> iterator = realGroups.listIterator(); iterator.hasNext();) {
+			GroupHolder currentGroup = (GroupHolder) iterator.next();
+			if (currentGroup.group.compareTo(group) > 0) {
+			    iterator.previous();
+			    iterator.add(gh);
+			    added = true;
+			    break;
+			}
+		    }
+		    if (!added)
+			realGroups.add(gh);
 		    groupsPagesAdapter.notifyDataSetChanged();
 		    mAdapterBanner.notifyDataSetChanged();
 		}