From 3a4a8c4ea1e3686ef52f335a4f988b5c9d2be07d Mon Sep 17 00:00:00 2001 From: akwizgran <michael@briarproject.org> Date: Sat, 13 Apr 2013 16:40:36 +0100 Subject: [PATCH] Sort group names alphabetically in composition activities. --- .../briar/android/groups/GroupNameComparator.java | 14 ++++++++++++++ .../android/groups/WriteBlogPostActivity.java | 15 ++++++++------- .../android/groups/WriteGroupPostActivity.java | 15 ++++++++------- 3 files changed, 30 insertions(+), 14 deletions(-) create mode 100644 briar-android/src/net/sf/briar/android/groups/GroupNameComparator.java 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 0000000000..47fdd6b538 --- /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 f620244855..37c8c79c88 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 18dbb71b88..e4f388f0ec 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); } }); } -- GitLab