Fix a bug with tabs not sorted alphabetically.
--- 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();
}