diff --git a/briar-android/src/net/sf/briar/android/groups/GroupNameComparator.java b/briar-android/src/net/sf/briar/android/groups/GroupNameComparator.java new file mode 100644 index 0000000000000000000000000000000000000000..47fdd6b538c7075e70d647e2d12f3ae569cc0769 --- /dev/null +++ b/briar-android/src/net/sf/briar/android/groups/GroupNameComparator.java @@ -0,0 +1,14 @@ +package net.sf.briar.android.groups; + +import java.util.Comparator; + +import net.sf.briar.api.messaging.Group; + +class GroupNameComparator implements Comparator<Group> { + + static final GroupNameComparator INSTANCE = new GroupNameComparator(); + + public int compare(Group a, Group b) { + return String.CASE_INSENSITIVE_ORDER.compare(a.getName(), b.getName()); + } +} diff --git a/briar-android/src/net/sf/briar/android/groups/WriteBlogPostActivity.java b/briar-android/src/net/sf/briar/android/groups/WriteBlogPostActivity.java index f620244855e902519c43fd425415905d1fe8e3fa..37c8c79c8897b90fc9d1f60614441a2e380a844e 100644 --- a/briar-android/src/net/sf/briar/android/groups/WriteBlogPostActivity.java +++ b/briar-android/src/net/sf/briar/android/groups/WriteBlogPostActivity.java @@ -224,15 +224,16 @@ implements OnItemSelectedListener, OnClickListener { runOnUiThread(new Runnable() { public void run() { if(groups.isEmpty()) finish(); - int index = -1; - for(LocalGroup g : groups) { - if(g.getId().equals(localGroupId)) { - localGroup = g; - index = toAdapter.getCount(); + toAdapter.clear(); + for(LocalGroup g : groups) toAdapter.add(g); + toAdapter.sort(GroupNameComparator.INSTANCE); + int count = toAdapter.getCount(); + for(int i = 0; i < count; i++) { + if(toAdapter.getItem(i).getId().equals(localGroupId)) { + toSpinner.setSelection(i); + break; } - toAdapter.add(g); } - if(index != -1) toSpinner.setSelection(index); } }); } diff --git a/briar-android/src/net/sf/briar/android/groups/WriteGroupPostActivity.java b/briar-android/src/net/sf/briar/android/groups/WriteGroupPostActivity.java index 18dbb71b885aac8011031aeea7bd5e610af72db0..e4f388f0ec53305455c77ecc9ce645cd99a5f993 100644 --- a/briar-android/src/net/sf/briar/android/groups/WriteGroupPostActivity.java +++ b/briar-android/src/net/sf/briar/android/groups/WriteGroupPostActivity.java @@ -229,15 +229,16 @@ implements OnItemSelectedListener, OnClickListener { runOnUiThread(new Runnable() { public void run() { if(groups.isEmpty()) finish(); - int index = -1; - for(Group g : groups) { - if(g.getId().equals(groupId)) { - group = g; - index = toAdapter.getCount(); + toAdapter.clear(); + for(Group g : groups) toAdapter.add(g); + toAdapter.sort(GroupNameComparator.INSTANCE); + int count = toAdapter.getCount(); + for(int i = 0; i < count; i++) { + if(toAdapter.getItem(i).getId().equals(groupId)) { + toSpinner.setSelection(i); + break; } - toAdapter.add(g); } - if(index != -1) toSpinner.setSelection(index); } }); }