# HG changeset patch # User Da Risk # Date 1335132858 -7200 # Node ID 2d28cb82891b9a9a6d1848efdda9c7e8a677fee0 # Parent 8f2689fb848807f2d340a9dd668d77a29417c830 Fix a bug with tabs not sorted alphabetically. diff -r 8f2689fb8488 -r 2d28cb82891b 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 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 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(); }